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

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

效果如下:

  

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

  后来,在样式中给元素添加了一个display:inline之后,就没有这个现象产生了,由于inline是使元素变成行内元素,那么什么是行内元素呢,其实就是内联元素,只是叫法不同,描述的都是一种状态,那么何为内联元素呢?就是说允许其他与之均为内联的元素都能够在同一行显示,如常见的<a>,<span>,当然,我们对其设置宽度和高度是不起作用的,除非我们再给他加入block;

  我们的标签我们这么理解,然后当元素变为行内元素之后,会新开辟一个地方,而那个地方之前是没有元素的或者没有内联元素排在它的前面,那么这样,行内元素自然就会自动的浮动到我们父级元素的边框上,则双倍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
}

  当然还有一个方法,就是我们将div改成<span>标签,这样的好处就在于,<span>标签本身就是具有内联属性的内联元素,那么问题又来了,内联元素对于宽度和高度是没有效果的,但是我们加了float之后元素就会呈现出来了,要是不加就不会出现,为什么呢(由于默认本身为内联,故没有加display:inline)?现象如下:

  加了float之后的现象:

  后来我上了百度搜索了一下,键入“加了float”,百度奇迹般的自动弹出

  看来这是一个大众耳熟能详的问题啊,笔者不禁为自己知识的浅陋而感慨

  然后得出的结果如下:

  由于对元素float之后,会使得元素自动变为block,因为几个元素之间的浮动,是需要紧挨着元素的边框,如果不是block,就不能实现浮动。然后内联元素会根据样式中设定的宽度和高度来调整自身的大小,如果样式中没有设定宽度和高度,那么就会自适应为其元素默认的宽度和高度。

  样式如下:

  .main{
    margin-left: 40px;
    background-color: #a847c3;
    width: 80px;
    height: 80px;
    padding: 20px 20px;
    border: 1px solid #2C2C2C;
    /*display: block;*/
    float: left;
    /*display: inline;*/
  }

IE6下margin时,float浮动产生双倍边距的更多相关文章

  1. 在IE6里面当元素浮动后再设置margin那么就会产生双倍边距

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. ie6下margin双倍距的问题

    今天中午休息时, 公司客服突然报出来一个bug, 一个用ie6的用户打开我们活动网站时, 发现内容都错乱了, 我赶紧上线一看, 发现是正常的. 找了台ie6的xp机器再看了下, 重现出了这个用户的问题 ...

  3. IE6下margin出现双边距

    在IE6下,块元素有浮动和横向margin的时候,横向的margin值会被放大成两倍 解决方法:添加display:inline; eg:下面的例子在IE6下会有两倍边距 <style> ...

  4. IE6下绝对定位元素和浮动元素并列绝对定位元素消失

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  5. IE6 margin 双倍边距解决方案

    一.什么是双边距Bug? 先来看图: 我们要让绿色盒模型在蓝色盒模型之内向左浮动,并且距蓝色盒模型左侧100像素.这个例子很常见,比如在网页布局中,侧边栏靠左侧内容栏浮动,并且要留出内容栏的宽度.要实 ...

  6. ie6下常见的bug 调整页面兼容性

    ie6下常见的bug 我们布局页面,首先符合标准,如何写一个页面的标准性? 但是ie6等浏览器本身就比较特殊,bug比较多,兵法云,知己知彼百战百胜.我们需要了解ie6的一些常见bug,这样,更好的调 ...

  7. 慎用margin系列2---ie6双倍边距问题

    IE6下有一个著名的margin双倍bug 一.什么是双边距Bug? 先来看图: 我们要让绿色盒模型在蓝色盒模型之内向左浮动,并且距蓝色盒模型左侧100像素.这个例子很常见,比如在网页布局中,侧边栏靠 ...

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

    (从已经死了一次又一次终于挂掉的百度空间人工抢救出来的,发表日期 2014-04-08) 一.IE6/IE7下margin-bottom失效兼容解决办法 1.用padding-bottom代替:2.在 ...

  9. 解决IE6下浮动层固定定位的经典方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

随机推荐

  1. vsftpd 配置:chroot_local_user与chroot_list_enable详解

    chroot_local_user,chroot_list_enable,chroot_list_file三个配置项的解释: chroot_local_user #是否将所有用户限制在主目录,YES为 ...

  2. .Net程序员之Python基础教程学习----字符串的使用 [Second Day]

         在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本 ...

  3. Hibernate一对一关联映射配置

    一.一对一关联 Hibernate提供了两种映射一对一关联关系的方式:按照外键映射和按照主键映射.下面以员工账号和员工档案表为例,介绍这两种映射方式,并使用这两种映射方式分别完成以下持久化操作: (1 ...

  4. win10的安装与下载

    1.下载介质创建工具 https://www.microsoft.com/zh-cn/software-download/windows10 2. 下载iso https://www.microsof ...

  5. bzoj1036 [ZJOI2008]树的统计Count

    1036: [ZJOI2008]树的统计Count Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 12646  Solved: 5085 [Subm ...

  6. 浅谈Android Fragment嵌套使用存在的一些BUG以及解决方法

    时间 2014-03-18 18:00:55 eoe博客 原文  http://my.eoe.cn/916054/archive/24053.html 主题 安卓开发 自从Android3.0引入了F ...

  7. PHP代码20个实用技巧(转)

    这些技巧特别是封装的,相对路径的还是挺好的,本身来自微信公众号,但是我担心以后删除,所以在我的博客上备份一下(微信公众号为:菜鸟教程) 在这篇文章中我们将看看一些关于PHP开发有用的提示和技巧,可以用 ...

  8. DEDECMS之九 文章采集

    到很多网友都为织梦(DEDECMS)的采集教程头疼,的确,官方出的教程太笼统了,什么都没说,换个网站你什么都做不了,这个教程是最详尽的教程,让你一看即会! 一.列表采集 第一步.我们打开织梦后台点击采 ...

  9. 让Bootstrap轮播插件carousel支持左右滑动手势的三种方法

    因为最近开发的项目涉及到移动设备上的 HTML5 开发,其中需要实现轮播效果.然后最快捷的方式,你知道的(Bootstrap),然后原生的 Bootstrap 的 carousel.js 插件并没有支 ...

  10. BZOJ 4003 【JLOI2015】城池攻占

    Description 小铭铭最近获得了一副新的桌游,游戏中需要用 m 个骑士攻占 n 个城池. 这 n 个城池用 1 到 n 的整数表示.除 1 号城池外,城池 i 会受到另一座城池 fi 的管辖, ...