2016-08-30 53 views
1

tr元素的列表,我想對他們有以下模式添加CSS:交替只有1選擇每3個元素

  • 紅色
  • 紅色
  • 紅色
  • 紅色

我怎樣才能做到這一點?現在我一直在使用:

tr:nth-child(6n+1) { color: red; } 
tr:nth-child(6n+2) { color: red; } 
tr:nth-child(6n+3) { color: red; } 

...但我怎麼能只用一個選擇器呢?


編輯:這裏是一個鏈接的jsfiddle https://jsfiddle.net/1s5s05vk/2/

+0

下,你可以發佈您的代碼或鏈接的jsfiddle。 – Jainam

+0

所以你想要每個第6項,並總是添加1個? – utdev

+0

相當肯定你不能...沒有單一的選擇器爲AFAIK ..有趣的發現。 –

回答

0

我認爲它的運行速度更快,使用CSS。

.mytable tr:nth-child(6n+1), .mytable tr:nth-child(6n+2), .mytable tr:nth-child(6n+3) { 
    background-color: red; 
} 

但是,如果你想,你可以使用JavaScript來做到這一點。 正如我以前說過..你可以像「紅」一類添加到具有迭代%6(迭代器MOD 6)任何元素大於4

var rows = document.getElementsByTagName('tr'); 
for (var i = 0, len = rows.length; i < len; i++){ 
    if(i%6 < 4) { 
     rows[i].classList.add("red"); 
    } 
} 
-1

嘗試。也許它可以幫助你。

tr:nth-child(-n+3) { 
     background: red; 
    } 
    tr:nth-child(n+4) { 
     background: blue; 
    } 
+0

不起作用,它只把前3個紅色 – Squiller

-1

你想做的事不能用一個單獨的使用CSS的選擇器完成。

不過,可以縮短定義,所以你不要重複代碼:

tr:nth-child(6n+1), 
tr:nth-child(6n+2), 
tr:nth-child(6n+3) { 
    color: red; 
} 
+0

@Squiller編輯了答案。 – SeinopSys

+0

嗯,這是我的想法litterally。謝謝 ! :) – Squiller