IE6下什么情况才会出现双倍边距问题

IE6下什么情况才会出现双倍边距问题:
只有知道问题出现的原因,才能够在出现问题前有意识的去避免问题的发生,或者能够第一时间查找到问题的所在。下面简单介绍一下IE6浏览器在什么情况下才会出现双边距问题。
下面看个例子:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.parent
{
  width:200px;
  height:200px;
  border:1px solid blue;
}
.children
{
  float:left;
  width:100px;
  height:100px;
  border:1px solid red;
  margin-left:10px;
}
</style>
</head>
<body>
<div class="parent">
  <div class="children"></div>
</div>
</body>
</html>

以上代码中,子div的左边距出现了加倍现象。也就是说当对象的浮动方向和外边距的方向一致时候会产生外边距加倍现象。
再来看一个例子:

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.51texiao.cn/" />
<title>蚂蚁部落</title>
<style type="text/css">
.parent
{
  width:400px;
  height:200px;
  border:1px solid green;
  overflow:hidden;
}
.left
{
  width:100px;
  height:50px;
  border:1px solid blue;
  float:left;
  margin-left:10px;
}
.middle
{
  width:100px;
  height:50px;
  border:1px solid blue;
  float:left;
  margin-left:10px;
}
.right
{
  width:80px;
  height:50px;
  border:1px solid red;
  float:left;
  margin-left:10px;
}
</style>
</head>
<body>
<div class="parent">
  <div class="left"></div>
  <div class="middle"></div>
  <div class="right"></div>
</div>
</body>
</html>

在上面的代码中,IE6浏览器下只有第一个子div产生了双倍边距现象,而第二个、第三个都没有产生,于是我们可以得出,在同一行的浮动div只有第一个可能产生双倍边距。
根据上面两个现象我们可以总结得出,对象浮动方向与外边距方向一致且是同一行中的中第一个浮动对象才会产生双倍边距。

原文地址是:http://www.51texiao.cn/div_cssjiaocheng/2015/0501/499.html

时间: 2024-10-10 14:31:46

IE6下什么情况才会出现双倍边距问题的相关文章

ie6下margin双倍距的问题

今天中午休息时, 公司客服突然报出来一个bug, 一个用ie6的用户打开我们活动网站时, 发现内容都错乱了, 我赶紧上线一看, 发现是正常的. 找了台ie6的xp机器再看了下, 重现出了这个用户的问题, 发现确实如此. 检查了一遍代码, 发现没有什么问题, 测来测去发现也只有ie6会这样, 而且距离始终多了一倍! 百思不解于是就上网搜了下, 发现原来是因为"大名鼎鼎"的ie6margin双倍bug. 解决方案: 解决方案还简单, 只要给对象的css属性加上 display:inline

IE6下margin双倍边距Bug的处理办法

改了一天,我才发现了问题,除了IE6双倍边距之外,其他的浏览器都没有问题,为此改了无数次的代码.为了修复双倍边距bug,整理了一下的资料. 一.什么是双边距Bug? 先来看图: 我们要让绿色盒模型在蓝色盒模型之内向左浮动,并且距蓝色盒模型左侧100像素.这个例子很常见,比如在网页布局中,侧边栏靠左侧内容栏浮动,并且要留出内容栏的宽度.要实现这样的效果,我们给绿色盒模型应用以下CSS属性: 以下为引用的内容:.floatbox { float: left; width: 150px; height

IE6/IE7下margin-bottom失效兼容解决办法及双倍边距问题

(从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在父标签中加入overflow:hidden:或zoom:100%示例代码: 不正常显示 ul{} li{ list-style:none; float:left; margin:10px;} 1. 你会发现左边10px 变成20px了, 解决办法:在li的CSS中加入:display:inline

IE6下兼容问题(转载)

()1.终极方法:条件注释 <!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本. <![endif]--> <!--[if gte IE 6]> 这段文字仅显示在 IE6及IE6以上版本. <![endif]--> <!--[if gt IE 6]> 这段文字仅显示在 IE6以上版本(不包含IE6). <![endif]--> <!--[if IE 5.5]> 这段文字仅显示在 IE5.5. &

CSS中IE6下双边距BUG解决方案

其实这个问题在刚学习CSS的时候就知道怎样解决了,但是一直不知道为什么会出现这种现象,今天顺便记录一下. 1.为什么会出现双边距BUG? <style type="text/css"> body,div{padding: 0;margin: 0;} .box{border: 10px solid black;float: left;} .inner{width: 100px;height: 100px;background: red;float: left;margin:

IE6下的bug

一.IE6双倍边距bug 当页面上的元素使用float浮动时,不管是向左还是向右浮动:只要该元素带有margin像素都会使该值乘以2,例如“margin-left:10px” 在IE6中,该值就会被解析为20px.想要解决这个BUG就需要在该元素中加入display:inline 或 display:block 明确其元素类型即可解决双倍边距的BUG 二.IE6中3像素问题及解决办法 当元素使用float浮动后,元素与相邻的元素之间会产生3px的间隙.诡异的是如果右侧的容器没设置高度时3px的间

IE6下的一些DIV适配总结

想到些以前的东西随便写下,在新丰两建网开发中,,使用了完全的div布局,由于对方要求,左侧应用栏要能活动,只能使用3列的方式.政府又广泛使用ie6,其实最好用table来做 这 时就暴露了IE6下div的一个适应问题,IE6下默认的margin-bottom不是0的,而是有一个固定的数,如果不制定div大小和相关属性,让 div在ie6下自动适配,那和火狐和ie9是不同的.最后的解决方法是全部div指定大小和相关属性.其实正确的方法是一开始开发的时候就进行处理, 在过程中还有个问题,就是在网站开

ie6下js更新元素display:block后,仍然不显示的hack办法

$hotGames.html(html).removeClass("hide").show();//代码执行到这里,在ie6下仍然无法正常显示 //只有执行了下边的两行代码后,才正常显示.if (isIE6 === true) { $hotGames.css({"position":"absolute"}); setTimeout(function(){$hotGames.css({"position":"stati

CSS中!important的用法和在IE6下的表现

!important的用法和在IE6下的表现:!important可以提高指定CSS语句的优先级,使用方法是在相应的CSS语句后面加上!important.例如: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.51texiao.cn/" /> &l