使用CSS替代表格行颜色?

Kal*_*put 448 html css html-table

我正在使用具有交替行颜色的表格.

tr.d0 td {
  background-color: #CC9999;
  color: black;
}
tr.d1 td {
  background-color: #9999CC;
  color: black;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr class="d0">
    <td>One</td>
    <td>one</td>
  </tr>
  <tr class="d1">
    <td>Two</td>
    <td>two</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

这里我使用的是类tr,但我只想用于table.当我使用表格比这个适用于tr替代.

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

<table class="alternate_color">
    <tr><td>One</td><td>one</td></tr>
    <tr><td>Two</td><td>two</td></tr>
    </table>
Run Code Online (Sandbox Code Playgroud)

如何使用CSS使行具有"斑马条纹"?

Rus*_*ias 748

$(document).ready(function()
{
  $("tr:odd").css({
    "background-color":"#000",
    "color":"#fff"});
});
Run Code Online (Sandbox Code Playgroud)
tbody td{
  padding: 30px;
}

tbody tr:nth-child(odd){
  background-color: #4C8BF5;
  color: #fff;
}
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

有一个CSS选择器,实际上是一个伪选择器,称为nth-child.在纯CSS中,您可以执行以下操作:

tr:nth-child(even) {
    background-color: #000000;
}
Run Code Online (Sandbox Code Playgroud)

注意: IE 8中不支持.

或者,如果你有jQuery:

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

  • 很棒的答案!但只是为了获取信息,还有另一个可以使用的CSS选择器,即.`TR:第n的类型(奇/偶)` (4认同)
  • 2019年:这不再是最好的解决方案。使用[纯CSS](/sf/answers/215901311/)。 (4认同)
  • 这是IE7/8的另一个解决方案:http://stackoverflow.com/questions/4742450/ (2认同)
  • @عثمانغني:是的,您只需要`tr:nth-​​child(even)a` (2认同)

Álv*_*lez 145

你有:nth-​​child()伪类:

table tr:nth-child(odd) td{
    ...
}
table tr:nth-child(even) td{
    ...
}
Run Code Online (Sandbox Code Playgroud)

在早期:nth-child()浏览器支持是种不好.这就是设置:nth-child()成为一种常见技术的原因.在2013年底,我很高兴地说IE6和IE7终于死了(或者病态到足以停止关怀)但IE8仍然存在 - 幸运的是,这是唯一的例外.

  • 三年多以后,支持非常好. (7认同)
  • 首选答案,因为它不会将CSS应用于标头 (3认同)

小智 35

只需将以下内容添加到您的html代码中(随附<head>),您就完成了.

HTML:

<style>
      tr:nth-of-type(odd) {
      background-color:#ccc;
    }
</style>
Run Code Online (Sandbox Code Playgroud)

比jQuery示例更容易,更快捷.

  • 这应该是公认的答案。CSS 应该尽可能处理样式,而 javascript 可以处理其他事情。 (2认同)
  • @tommy.carstensen 它被称为“速记十六进制形式”。基本上`#ccc` 被扩展为`#cccccc`,这意味着每个RGB 颜色都有十六进制值`cc`,或十进制值`204`(即`rgb(204, 204, 204)`)。在此处阅读更多相关信息 -&gt; https://en.wikipedia.org/wiki/Web_colors#Shorthand_hexadecimal_form (2认同)

Sar*_*raz 13

我可以使用css写这样的html吗?

是的,你可以,但你必须使用:nth-child()伪选择器(虽然有限的支持):

table.alternate_color tr:nth-child(odd) td{
   /* styles here */
}
table.alternate_color tr:nth-child(even) td{
   /* styles here */
}
Run Code Online (Sandbox Code Playgroud)


San*_*lse 11

我们可以使用奇数和偶数CSS规则和jQuery方法来替换行颜色

使用CSS

table tr:nth-child(odd) td{
           background:#ccc;
}
table tr:nth-child(even) td{
            background:#fff;
}
Run Code Online (Sandbox Code Playgroud)

使用jQuery

$(document).ready(function()
{
  $("table tr:odd").css("background", "#ccc");
  $("table tr:even").css("background", "#fff");
});
Run Code Online (Sandbox Code Playgroud)

table tr:nth-child(odd) td{
           background:#ccc;
}
table tr:nth-child(even) td{
            background:#fff;
}
Run Code Online (Sandbox Code Playgroud)
<table>
  <tr>
    <td>One</td>
    <td>one</td>
   </tr>
  <tr>
    <td>Two</td>
    <td>two</td>
  </tr>
</table>
Run Code Online (Sandbox Code Playgroud)


Sri*_*ake 10

大多数上述代码不适用于IE版本.适用于IE +其他浏览器的解决方案就是这样.

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


Pra*_*ana 9

<script type="text/javascript">
$(function(){
  $("table.alternate_color tr:even").addClass("d0");
   $("table.alternate_color tr:odd").addClass("d1");
});
</script>
Run Code Online (Sandbox Code Playgroud)

  • 好的,我知道jQuery在这个网站上无处不在,但不管你不应该在没有解释的情况下发布jQuery.此脚本不能单独使用. (46认同)