2013-10-02 148 views
2

我有一個奇怪的問題(ie7只)右側浮動元素的左側浮動子元素沒有被限制到其父元素的寬度,而是將所有元素方式到父母的父母的最左邊,並停在最接近的左浮動div。例如,您可以參考以下小提琴代碼。在所有其他瀏覽器中看起來很好,但不幸的是我必須支持ie7。IE7錯誤 - 浮動:浮動左邊的孩子:右邊父母

有沒有辦法解決這個問題,但沒有在兩個浮動子項的父級上設置明確的寬度,也沒有改變標記結構?從小提琴

http://jsfiddle.net/s89XZ/

代碼下面附:

<style> 
     .wrapper{ 
      position: relative; 
      width: 500px; 
      min-height: 18px; 
      margin: 0 auto; 
      padding: 14px 0; 
      background-color: red; 
     } 
     .menu_L{ 
      color: #504A43; 
      height: 18px; 
      float: left; 
      width: 100px; 
      background-color: blue; 
     } 
     .menu_R_wrapper{ 
      float: right; 
     } 
     .menu_R{ 
      position: relative; 
      float: right; 
     } 
     .menu_R .item_L, 
     .menu_R .item_R{ 
      width: 50px; 
      height: 18px; 
     } 
     .menu_R .item_L{ 
      float: left; 
      background-color: orange; 
     } 
     .menu_R .item_R{ 
      float: right; 
      background-color: green; 
     } 
    </style> 
    <div class="wrapper"> 
     <div class="menu_L"></div> 
     <div class="menu_R_wrapper"> 
      <div class="menu_R"> 
       <div class="item_L"></div> 
       <div class="item_R"></div> 
      </div> 
     </div> 
    </div> 
+0

此外,位置:親屬必須在那裏能夠定位兒童元素abso相對於父容器而言相對較弱 –

回答

1

您對設置在這些較小的IE浮動父的寬度:請參閱http://jsfiddle.net/s89XZ/1/未加入該寬度(它應該是100px的在這裏,但105px是更好地顯示它的作品):

.menu_R { 
    width: 105px; 
} 
+0

有沒有在父級上設置明確寬度的方法? –

+0

我不這麼認爲(我在VM IE7上用http://jsfiddle.net/s89XZ/2/到/ 5/+「embedded/result /」嘗試過)。這些舊的IE真的想要一個寬度與浮動功能正常... ... – FelipeAls