我使用的表与交替行颜色与此。

t.d. d0 t.d. background-color: # CC9999; 颜色:黑; 的 tr.d1 td background-color: # 9999CC; 颜色:黑; 的 < table > < tr =“d0级> 一号< td > < / td > 一号< td > < / td > < / tr > < tr课=“d1”> 二< td > < / td > 二< td > < / td > < / tr > - < table >

在这里,我将class用于tr,但我只想用于table。当我使用类表比这适用于tr替代。

我可以写我的HTML像这样使用CSS吗?

<table class="alternate_color">
    <tr><td>One</td><td>one</td></tr>
    <tr><td>Two</td><td>two</td></tr>
    </table>

我如何能使行有“斑马条纹”使用CSS?


当前回答

以上大部分代码都不能在IE版本下使用。适用于IE+其他浏览器的解决方案是这样的。

   <style type="text/css">
      tr:nth-child(2n) {
             background-color: #FFEBCD;
        }
</style>

其他回答

以上大部分代码都不能在IE版本下使用。适用于IE+其他浏览器的解决方案是这样的。

   <style type="text/css">
      tr:nth-child(2n) {
             background-color: #FFEBCD;
        }
</style>
<script type="text/javascript">
$(function(){
  $("table.alternate_color tr:even").addClass("d0");
   $("table.alternate_color tr:odd").addClass("d1");
});
</script>

$(document).ready(function() { $("tr:odd").css({ "background-color":"#000", "color":"#fff"}); }); tbody td{ padding: 30px; } tbody tr:nth-child(odd){ background-color: #4C8BF5; color: #fff; } <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table border="1"> <tbody> <tr> <td>1</td> <td>2</td> <td>3</td> <td>4</td> </tr> <tr> <td>5</td> <td>6</td> <td>7</td> <td>8</td> </tr> <tr> <td>9</td> <td>10</td> <td>11</td> <td>13</td> </tr> </tbody> </table>

有一个CSS选择器,其实是个伪选择器,叫做n -child。在纯CSS中,你可以做到以下几点:

tr:nth-child(even)
    background-color: #000000;
}

注意:IE 8不支持。

或者,如果你有jQuery:

$(document).ready(function()
{
    $("tr:even").css("background-color", "#000000");
});

交替行选择器

以下是它的工作原理,以及如何使用模来在不同颜色的行之间交替(这里是3):

ol >李:nth-child (3 n + 1) { 背景颜色:蓝色; } ol >李:nth-child (3 n + 2) { 背景颜色:绿色; } /*下面的选择器等价于"n -child(3n)"* / ol >李:nth-child (3 n + 3) { 背景颜色:红色; } < ol > <李/ > <李/ > <李/ > <李/ > <李/ > <李/ > <李/ > <李/ > <李/ > < / ol >

如前所述,选择器中使用的行索引从1开始(而不是0),这就是为什么第1、4、7行的选择器是第n -child(3n+1)。

选择器如何读取

对于索引i的行,选择器n -child(Mn+k)读起来就像(i % M == k)。例如,如果我们想选择所有以3为底取模等于2的行,我们可以在CSS中写n -child(3n+2),换句话说,选择器是这样做的:

const M = 3;
const k = 2;

for (let i = 1; i < 10; i+=1){
    // The `nth-child(Mn+k)` selector: 
    if (i % M == k){
        console.log(`${i} selected`);
    }
}

输出

2 selected
5 selected
8 selected

你可以使用n -child(奇数/偶数)选择器,但不是所有的浏览器(如6-8,ff v3.0)都支持这些规则,因此,为什么大多数解决方案都退回到某种形式的javascript/jquery解决方案,为这些不兼容的浏览器添加类行,以获得老虎条纹效果。