05
2007
12

列表样式书写规范

 由于现在的浏览器版本过多。做网页如果稍微不注意的话,就会出现在本机上完好的网页到其他机器凌乱的局面。今天碰到两个很明显的问题跟大家分享以下。
新建一个简单的HTML测试文件,下面来测试ul li标签
引用
<ul>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
<li><a href="#">菜单一</a></li>
</ul>
测试一,定义css为如下代码,效果如下
引用
body{font-size:12px;margin:0}
ul{list-style:none;margin:0;padding:0;width:120px;}
ul li{background:green;height:20px;}
ul li a{color:#fff;padding:0 0 0 10px;}
发现在IE5和IE5.5下左边都产生了空白,并且在IE5下,LI之间的行距产生空白,如下图
uploads/200704/13_011917_snap3.gif

测试二,定义css为如下代码,
引用
body{font-size:12px;margin:0}
ul{list-style:none;margin:0;padding:0;}
ul li{background:green;height:20px;width:120px;}
ul li a{color:#fff;padding:0 0 0 10px;}
和测试一相比,只是将width:120px;从ul的定义放置到li的定义,解决了IE5和IE5.5左边产生空白的问题,而IE5的li之间的间距还是有,如下图
uploads/200704/13_012050_snap2.gif

测试三,定义css为如下代码,(最佳写法)
引用
body{font-size:12px;margin:0}
ul{list-style:none;margin:0;padding:0;}
ul li{background:green;height:20px;width:120px;vertical-align: bottom;}
ul li a{color:#fff;padding:0 0 0 10px;}
和测试二比较,在li的定义中加上vertical-align: bottom;ie5下正常,li之间的空白行距消失了,取得各个浏览器的效果一样,如下图
uploads/200704/13_012538_snap1.gif

总结
1.解决li在IE5下产生空白行距的方法:如果li定义了宽度,那么需要在li里面再定义vertical-align: bottom;
2.宽度最好不要定义在UL,定义在LI或者UL外层的DIV里面
3. 书写LI的最佳方式,li里面要书写高度和宽度,以及vertical-align: bottom;(for ie5/win bug),或者在ul外面加上一层div,并定义宽度,那么在li里面不用定义宽度和vertical-align: bottom;,也显示正常(IE5下不会产生空白行距),不过高度还是要定义一下的。(这点大家一定要注意。书写要规范。这样才能兼容其他浏览器)
 
« 上一篇下一篇 »

相关文章:

CSS控制未知高度网页垂直居中  (2008-6-2 16:41:24)

csshoues 用CSS+DIV建造的房屋  (2008-5-28 15:53:1)

div+css命名规则-增强SEO(转)  (2008-4-10 21:46:42)

DIV+CSS网页对网站SEO的五大影响  (2008-3-10 23:45:58)

新主题出炉  (2008-3-7 15:31:12)

W3C机构正式公布HTML5.0草案  (2008-3-3 22:47:7)

再写CSS三栏布局  (2008-2-29 0:48:12)

Xhtml css网站布局  (2008-2-26 23:20:7)

SEO工具,站长必备  (2008-2-19 22:55:22)

css三栏布局浏览器兼容问题   (2008-1-15 10:18:24)

评论列表:

发表评论:

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