Alternate table row color using CSS?

后端 未结 9 1764
囚心锁ツ
囚心锁ツ 2020-11-22 09:03

I am using a table with alternate row color with this.

相关标签:
9条回答
  • 2020-11-22 09:29

    Most of the above codes won't work with IE version. The solution that works for IE+ other browsers is this.

       <style type="text/css">
          tr:nth-child(2n) {
                 background-color: #FFEBCD;
            }
    </style>
    
    0 讨论(0)
  • 2020-11-22 09:31

    You can use nth-child(odd/even) selectors however not all browsers (ie 6-8, ff v3.0) support these rules hence why most solutions fall back to some form of javascript/jquery solution to add the classes to the rows for these non compliant browsers to get the tiger stripe effect.

    0 讨论(0)
  • 2020-11-22 09:34

    We can use odd and even CSS rules and jQuery method for alternate row colors

    Using CSS

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

    Using 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>

    0 讨论(0)
  • 2020-11-22 09:35

    can i write my html like this with use css ?

    Yes you can but then you will have to use the :nth-child() pseudo selector (which has limited support though):

    table.alternate_color tr:nth-child(odd) td{
       /* styles here */
    }
    table.alternate_color tr:nth-child(even) td{
       /* styles here */
    }
    
    0 讨论(0)
  • 2020-11-22 09:37

    There is a fairly easy way to do this in PHP, if I understand your query, I assume that you code in PHP and you are using CSS and javascript to enhance the output.

    The dynamic output from the database will carry a for loop to iterate through results which are then loaded into the table. Just add a function call to the like this:

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

    then add the function to the page or library file:

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

    }

    Now this will alternate dynamically between colors at each newly generated table row.

    It's a lot easier than messing about with CSS that doesn't work on all browsers.

    Hope this helps.

    0 讨论(0)
  • 2020-11-22 09:38

    $(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>

    There is a CSS selector, really a pseudo-selector, called nth-child. In pure CSS you can do the following:

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

    Note: No support in IE 8.

    Or, if you have jQuery:

    $(document).ready(function()
    {
      $("tr:even").css("background-color", "#000000");
    });
    
    0 讨论(0)
提交回复
热议问题