*{
margin:0;
padding: 0;
}
ul{
border: 1px solid #000;
height:100px;
list-style: none;
}
ul li{
float:left;
width:120px;
height:40px;
margin-left: 40px;
background-color:orange;
}
</style>
</head>
<body>
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
以上代码在IE6中会出现双倍margin bug:
当出现两个以上连续浮动的元素,携带和浮动方向相同的margin时,队首的元素会双倍margin。
解决方案:
- 使浮动的方向和margin的方向相反(前端工程师特别喜欢这样做。)
float:left;
margin-right:40px;
- 使用hack(没必要):单独给队首的元素写一个一半的margin
<li class="no1"></li>
ul li.no1{
_margin-left:20px;
}
IE6的3px bug
*{
margin:0;
padding: 0;
}
div{
width:400px;
height:400px;
background-color:orange;
}
div p{
margin-left:20px;
width:100px;
height:100px;
background-color:green;
}
以上代码在IE6中margin-left会变成23px
解决方法:不用管,因为根本不允许用儿子踹父亲。如果你出现了3px bug,说明你的代码不标准。