首页 > 其他 > 详细

IE6下margin时,float浮动产生双倍边距

时间:2015-03-25 20:50:39      阅读:91      评论:0      收藏:0      [点我收藏+]

  今天遇到了一个IE6下的兼容性问题,虽然IE6已经不被大众所期待了,用户也已基本上消失的所剩无几,但是,作为一个问题而存在,我们有必要尝试的去研究一下bug的改善方法

对元素float-left,然后再对元素设置margin-left:40px,调试时候,鬼一般的出现了双倍的margin-left,变为80px(同样如果是float-right,margin-right亦是如此)

效果如下:

  技术分享

  而在chrome,IE7+,均没有这个现象产生,现象如下:

技术分享

  后来,在样式中给元素添加了一个display:inline之后,就没有这个现象产生了,由于inline是使元素变成行内元素,那么什么是行内元素呢,其实就是内联元素,只是叫法不同,描述的都是一种状态,我们这么理解,然后当元素变为行内元素之后,会新开辟一个地方,而那个地方之前是没有元素的或者没有内联元素排在它的前面,那么这样,行内元素自然就会自动的浮动到我们父级元素的边框上,则双倍margin的现象就会消失,取而代之的是单倍margin正常显示,就这么理解。

技术分享

 

 

 

代码如下:

 

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title</title>
<meta name="Keywords" content="">
<meta name="Description" content="">
<link rel="stylesheet" type="text/css" href="css/inside.css" />

</head>
<body>
<div class="content clearFix">

<div class="main margin">

</div>
<div class="main margin">

</div>
</div>
</body>
<script type="text/javascript">
</script>
</html>

 

 

.main{
  margin-left: 40px;
  background-color: #a847c3;
  width: 80px;
  height: 80px;
  padding: 20px 20px;
  border: 1px solid #2C2C2C;
  float: left;
  display: inline;
}
.content{
  background-color: #2143fd;
  margin: 100px auto;
  width: 1000px;
  height: 120px;
}

.clearFix:after {
  clear: both;
  content: ".";
  display: block;
  height: 0;
  visibility: hidden
}

 

IE6下margin时,float浮动产生双倍边距

原文:http://www.cnblogs.com/cyh2009/p/4366544.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!