web-dev-qa-db-ja.com

CSSを使用した代替テーブル行の色

私はこれと交互の行の色を持つテーブルを使用しています。

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

ここでは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>

CSSを使用して、行に「ゼブラストライプ」を作成する方法を教えてください。

431
$(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セレクタ、実際にはnth-childという擬似セレクタがあります。純粋なCSSでは、次のことができます。

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

注: IE 8ではサポートされていません。

あるいは、jQueryがあるならば:

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

:nth-​​child() pseudo-class:があります。

table tr:nth-child(odd) td{
}
table tr:nth-child(even) td{
}

:nth-child()の初期の頃は ブラウザのサポート は貧弱でした。それがclass="odd"の設定がそのような一般的な手法になった理由です。 2013年の終わりごろには、IE6とIE7がようやく死んだ(あるいは気にするのを止めるほど病気になった)と言うのはうれしいことですが、IE8はまだまだあります - ありがたいことに、 唯一の例外

139

あなたのhtmlコードに(<head>を付けずに)以下を追加するだけで完了です。

HTML:

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

JQueryの例よりも簡単で速いです。

34
bmich72

私は使用CSSでこのように私のHTMLを書くことができますか?

はい、できますが、その場合は:nth-child()疑似セレクタを使用する必要があります(ただしサポートは限定的です)。

table.alternate_color tr:nth-child(odd) td{
   /* styles here */
}
table.alternate_color tr:nth-child(even) td{
   /* styles here */
}
12
Sarfraz

上記のコードのほとんどはIE versionでは動作しません。 IE +他のブラウザで機能する解決策はこれです。

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

行の代替色には、奇数と偶数のCSSルールとjQueryメソッドを使用できます。

CSSを使う

table tr:nth-child(odd) td{
           background:#ccc;
}
table tr:nth-child(even) td{
            background:#fff;
}

jQueryを使う

$(document).ready(function()
{
  $("table tr:odd").css("background", "#ccc");
  $("table tr:even").css("background", "#fff");
});
table tr:nth-child(odd) td{
           background:#ccc;
}
table tr:nth-child(even) td{
            background:#fff;
}
<table>
  <tr>
    <td>One</td>
    <td>one</td>
   </tr>
  <tr>
    <td>Two</td>
    <td>two</td>
  </tr>
</table>
9
Santosh Khalse
<script type="text/javascript">
$(function(){
  $("table.alternate_color tr:even").addClass("d0");
   $("table.alternate_color tr:odd").addClass("d1");
});
</script>
9
Pranay Rana

PHPでこれを行うにはかなり簡単な方法があります。クエリを理解できれば、PHPでコーディングし、出力を強化するためにCSSとJavaScriptを使用していると想定します。

データベースからの動的出力は、結果を繰り返し処理するためのforループを運び、その結果はテーブルにロードされます。以下のように関数呼び出しを追加するだけです。

echo "<tr style=".getbgc($i).">";  //this calls the function based on the iteration of the for loop.

その後、ページまたはライブラリファイルに関数を追加します。

function getbgc($trcount)
{

$blue="\"background-color: #EEFAF6;\"";
$green="\"background-color: #D4F7EB;\"";
$odd=$trcount%2;
    if($odd==1){return $blue;}
    else{return $green;}    

}

これで、新しく生成されたテーブル行ごとに色が動的に切り替わります。

すべてのブラウザで動作するわけではないCSSをめちゃくちゃにするよりもはるかに簡単です。

お役に立てれば。

3
mark

N番目の子(奇数/偶数)セレクタを使用できますが、すべてのブラウザ( 6-8、ff v3.0 )でこれらの規則がサポートされているわけではないため、ほとんどのソリューションは何らかの形のjavascript/jqueryソリューションに追加されますタイガーストライプ効果を得るためのこれらの非準拠ブラウザ用の行へのクラス。

3
redsquare