1. 程式人生 > >IE6下margin雙倍邊距

IE6下margin雙倍邊距

開始工作之後任務都是要求相容所有瀏覽器,之前都在IE8+版本上相容,大概瞭解些IE6的bug但一直也沒實際遇到過 .. 藉此機會,把我遇到的所有ie bug記錄下來 ~ 共勉 !

觸發條件:

  • 浮動元素的浮動方向和margin的方向一致 .

    { float : right; margin-right:100px;}
    { float : left; margin-left:100px;}
    
  • 只有第一個元素會這樣

解決辦法

  1. 給元素加display:inline

    { float : left; margin-left:-100px; display:inline}
    
  2. 加一個hack,取值為正常值的一半

    { float : left; margin-left : -100px; margin-left : -50px;}
    
  3. padding-替代margin- (結合實際佈局)

我是在三欄佈局中遇到左浮動第一欄在IE6下消失的問題,試了一會才想起來應該是margin雙邊距問題, 確實如此。

.left-container {
    float:left;
    width:350px;
    margin-left:-350px;
    display:inline;
}
.main-container { 
    float:left;
    min-width:1350px;
    padding-left:350px;
    padding-right:330px;
}
.right-container { 
    float:left;
    width:330px;
    margin-right:-330px;
}

原因

大大說是由於BFC特性,我再好好學習一下。