zoukankan      html  css  js  c++  java
  • IE6双倍margin间距两大解决方案转载

      IE6双倍margin间距解决方法

      方法1:

      假设:一个div代码为

    1. <divstyledivstyle="float:left;margin-left:10px;"> 
    2. div> 
    3.  

      当一个css样式同时设置了float和margin的属性的时候,在ie7+及火狐上,该元素显示正常  。但是在ie6下,将会出现双倍的margin-left属性值,也就是上面那段代码中的div在ie6下的实际margin-left的值是20px;

      解决此办法的最简单的方法是,在style中添加:display:inline;

      如上面的代码将改为

    1. <divstyledivstyle="float:left;display:inline;margin-left:10px;"> 
    2.  
    3. div> 
    4.  
    5.  

      方法2:

      可以使用以下办法来书写兼容浏览器的css代码:

      第一种

    1. :.div{  
    2. background:orange;/*ff*/  
    3. *background:green!important;/*ie7*/  
    4. *background:blue;/*ie6*/  
    5. }  
    6.  

      第二种

    1. :.div{  
    2. margin:10px;/*ff*/  
    3. *margin:15px;/*ie7*/  
    4. _margin:15px;/*ie6*/  
    5. }  
    6.  

      第三种

    1. :#div{color:#333;}/*ff*/  
    2. *html#div{color:#666;}/*IE6*/  
    3. *+html#div{color:#999;}/*IE7*/  

    为什么会出现双倍间距呢?

      这是因为块级元素的默认对象是block,当设置了浮动float的同时,那么他的外部边框就会出现这种情况。什么第二个对象和第一个对象之间就不存在双倍边距的BUG”?因为浮动都有其相对应的对象,只有相对于其父对象的浮动对象才会出现这样的问题。第一个对象是相对父对象的,而第二个对象是相对第一个对象的,所以第二个对象在设置后不会出现问题。另外在一些特殊布局中,可能需要组合使用display:block;和display:inline;才能达到预期效果。

  • 相关阅读:
    【C#】Dictionary使用汇总
    【C#】ArrayList使用汇总
    【C#】List使用汇总
    【WPF】ComboBox汇总
    【WPF】TextBox汇总
    【VS】VS2008 在文件中按 Ctrl + F 查找,不弹出查找框
    【VS】调试异常:CLR无法从COM上下文 0x622b440转换为COM上下文 0x622b5b0
    【C#】反序列化时程序集名称不同导致错误
    scrollTop兼容
    iOS下的 Fixed + Input(时间日期选择、select 选择等等) 出现的问题
  • 原文地址:https://www.cnblogs.com/2oveyou/p/2492663.html
Copyright © 2011-2022 走看看