日期:2014-05-17  浏览次数:20660 次

这段代码在IE6下不正常,是IE6的bug么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<style type="text/css">
ul { 
width:200px;
LIST-STYLE-TYPE: none; 


ul li { 
float:left;
width:40%;
margin:5px;
background-color:#cccccc;

</style>


</head>

<body>
<ul>
<li><a href="#" target="_blank">111</a></li>
<li><a href="#">中文</a></li>
<li><a href="#" target="_blank">333</a></li>
<li><a href="#" target="_blank">444</a></li>

</ul>

</body>
</html>

以上代码,在IE8 IE9 Firefox Chrome均成正常显示,显示成:
111 中文
333 444

但在IE6下,显示成了:
111 中文
   333
444

即在“中文”后面空了一个位置。如果把中文改成 222 ,则又显示正常。

这是怎么回事,如何改?
ie6

------解决方案--------------------
加个height好像就可以了

ul li { 
    float:left;
    width:40%;
    margin:5px;    
    background-color:#cccccc;
    height:20px;
}
------解决方案--------------------
LZ 的代码有中文,但是没有设置中文的字体,给它设置个字体就行了。
另外在 IE6 下有个经典的 BUG,浮动产生的双倍边距,所以 LI 需要加上 display:inline;
------解决方案--------------------
具体原因我也不清楚,不过一般性都会默认设置字体吧。
------解决方案--------------------
引用:
LZ 的代码有中文,但是没有设置中文的字体,给它设置个字体就行了。
另外在 IE6 下有个经典的 BUG,浮动产生的双倍边距,所以 LI 需要加上 display:inline;


就像div,display:inline;设置 排列在一行