尤其是在制作导航时,float(浮动)自适应居中是经常运用得到,无论使用text-align:center(文本居中),还是使用vertical-align:middle(中线对齐)都不起任何作用,今天我在制作手机站导航时也遇到了这个问题,弄了半天才终于找到了办法。

1.两层结构不能指定外层标签宽度

两层结构是指一般导航的ul与li标签组合。

首先给全局一个text-align: center(文本居中);

然后给ul一个display:inline-table/display:inline-block(显示内嵌表格/显示内嵌块)都可以。

最后就是定义li标签了,这里不是重点,重点就是前两点。

注意:这里的ul不能指定宽度,只能用自动或者无,否则浮动的li仍然不会居中,而ul只能随着li块的多少改变相应的宽度。

2.三层结构可以指定外层标签的宽度

三层结构是指在ul和li的外层多了一层标签,比如div。

同理首先给外层div一个text-align: center(文本居中);

然后依然给ul一个display:inline-table/display:inline-block(显示内嵌表格/显示内嵌块)都可以。

最后就是定义li,(不重要)。

注意:这里我们可以对外层的div宽度进行定义,但仍然无法去定义ul的宽度,依旧只有不设或者设为自动。

从上面我们可以看出来,不管标签是两层结构还是三层结构,实际上仍然是三层结构,虽然第一种看上去是两层标签,实际上加上全局定义就可以算是三层,我们仍然可以给全局设计一个宽度,只是这样设置后会影响到整个网页的布局,所以第一种方法不推荐使用。要实现li标签的浮动居中,最关键点就是外面两层的text-align:center(文本居中)和display:inline-table/display:inline-block(显示内嵌表格/显示内嵌块),但是可以别把顺序给弄错,最外层为text-align:center(文本居中),第二层为display:inline-table/display:inline-block(显示内嵌表格/显示内嵌块)。

注意:在实现li浮动居中时,所部署的网页代码一定要符合html标准,否则在IE浏览器中会产生错误,无法正常居中。

你可能想看:
文章来源:http://www.zhu-sir.com/jiaocheng/18.html
百度搜索本文
谷歌搜索本文

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。