首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

margin bug (二) IE6双边距bug

2012-09-15 
margin bug (2)IE6双边距bug发生情况:当给父元素的第一个浮动元素设置margin-left或者margin-right时,元素

margin bug (2) IE6双边距bug

发生情况:当给父元素的第一个浮动元素设置margin-left或者margin-right时,元素相应float ?left或right,这是margin会加倍

?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>marginTest2</title><style>.left{background-color:gray;float: left;}.margin{margin-left: 20px;}.backcolor{float:left;background-color: red;}</style></head><body><div >ssssss</div></div></body></html>
?

正常表现:


margin bug (二)  IE6双边距bug

IE6下表现:


margin bug (二)  IE6双边距bug
?解决方法:给浮动元素加上display:inline; ?或者将margin-left改成padding-left

?

http://www.hicss.net/do-not-tell-me-you-understand-margin/ 写道原理分析:
块级对象默认的display属性值是block,当设置了浮动的同时,还设置了它的外边距就会出现这种情况。也许你会问:“为什么之后的对象和第一个对象之间就不存在双倍边距的Bug”?因为浮动都有其相对应的对象,只有相对于其父对象的浮动对象才会出现这样的问题。第一个对象是相对父对象的,而之后对象是相对第一个对象的,所以之后对象在设置后不会出现问题。为什么display:inline可以解决这个双边距bug,首先是inline元素或inline-block元素是不存在双边距问题的。然后,float:left等浮动属性可以让inline元素haslayout,会让inline元素表现得跟inline-block元素的特性一样,支持高宽,垂直margin和padding等,所以div class的所有样式可以用在这个display inline的元素上。??

热点排行