2010-06-30 22 views
4

這是HTML。如何獲得純CSS和IE 7支持的替代顏色div?

<div class="container"> 
      <div> background of this i need in white </div> 
      <div> background of this i need in red </div> 
      <div> background of this i need in white </div> 
      <div> background of this i need in red </div> 
     </div> 

我想選擇替代div而不添加class或id。

是否有可能與IE 7支持

回答

5

IE7不支持您需要的選擇器,即:nth-child()

通常你會使用

.container div:nth-child(even) { 
    background: red; 
} 

IE7 does not support it,很遺憾。

您將需要使用JavaScript,或者向每個奇數行或偶數行(可能使用服務器端語言)添加一個類。

+0

我們不能選擇'div class =「container」>'裏面的每一秒'div'嗎? http://www.webcredible.co.uk/user-friendly-resources/css/ie7-commands.shtml – 2010-06-30 06:47:12

+0

@ metal-gear-solid如果瀏覽器支持,我們可以。 – alex 2010-06-30 06:49:08

+0

好的,那麼IE8和9呢? – 2010-06-30 06:55:50

1

這不能做CSS只(沒有使用Javascript)。

+0

不可能與任何CSS選擇器組合?不需要IE6支持 – 2010-06-30 06:45:46

0
div:nth-child(odd) { background-color:#ffffff; } 
div:nth-child(even) { background-color:#ff0000; } 

但我不知道(也不能測試)如果這在IE7中工作 - 如果沒有,你將不得不使用不同的類爲div。

1

使用內嵌式樣標籤,如 以下作品在IE 7 未經其他人測試。

<div style="background-color:#ffff00" > Hello YOU div</div> 
+2

我想說添加一個類將是一個更好的主意。 – alex 2010-06-30 07:00:27

3

我們不能選擇內部<div class="container"> [與IE7推出的CSS2選擇]每第二個div?

好樣的,與鄰接選擇:

.container div { background: white; } 
.container div+div { background: red; } 
.container div+div+div { background: white; } 
.container div+div+div+div { background: red; } 

但是,這意味着寫出(越來越笨拙的長度)爲每一個孩子的規則。以上內容涵蓋了帶有四個孩子的示例標記,因此它適用於短小的固定數量的孩子元素,但對於擁有大量或無限數量的孩子的元素來說不切實際。