Alternatywny kolor wiersza tabeli za pomocą CSS?

Używam tabeli z alternatywnym kolorem wiersza z tym.

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>

Tutaj używam klasy dla tr, ale chcę używać tylko dla table. Kiedy używam class for table, to stosuje się to w tr alternative.

Czy mogę tak napisać mój HTML używając CSS?

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

Jak mogę sprawić, by wiersze miały "paski zebry" za pomocą CSS?

Author: Laurel, 2010-06-21

9 answers

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

Istnieje selektor CSS, tak naprawdę pseudo-selektor, zwany NTH-child. W czystym CSS możesz wykonać następujące czynności:

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

Uwaga: brak wsparcia w IE 8.

Lub, jeśli masz jQuery:

$(document).ready(function()
{
  $("tr:even").css("background-color", "#000000");
});
 716
Author: Russell Dias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-15 09:48:39

Masz : NTH-child() pseudo-Klasa:

table tr:nth-child(odd) td{
}
table tr:nth-child(even) td{
}
W pierwszych dniach :nth-child() jego Obsługa przeglądarki była trochę słaba. Dlatego ustawienie class="odd" stało się tak powszechną techniką. Pod koniec 2013 roku z radością mogę powiedzieć, że IE6 i IE7 są w końcu martwe (lub wystarczająco chore, aby przestać się troszczyć), ale IE8 nadal jest w pobliżu-na szczęście jest to jedyny wyjątek.
 120
Author: Álvaro González,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-04 16:30:20

Po prostu dodaj poniższy kod html (z <head>) i gotowe.

HTML:

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

Łatwiejsze i szybsze niż przykłady jQuery.

 30
Author: bmich72,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-21 20:02:33

Czy mogę tak napisać swój html używając css ?

Tak, możesz, ale wtedy będziesz musiał użyć :nth-child() pseudo selektor (który ma jednak ograniczone wsparcie):

table.alternate_color tr:nth-child(odd) td{
   /* styles here */
}
table.alternate_color tr:nth-child(even) td{
   /* styles here */
}
 12
Author: Sarfraz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-21 11:45:24
<script type="text/javascript">
$(function(){
  $("table.alternate_color tr:even").addClass("d0");
   $("table.alternate_color tr:odd").addClass("d1");
});
</script>
 9
Author: Pranay Rana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-21 11:43:34

Większość powyższych kodów nie będzie działać z wersją IE. Rozwiązaniem, które działa dla IE+ innych przeglądarek jest to.

   <style type="text/css">
      tr:nth-child(2n) {
             background-color: #FFEBCD;
        }
</style>
 9
Author: Sriwantha Attanayake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-23 08:06:31

Możemy użyć nieparzystych i parzystych reguł CSS i metody jQuery dla alternatywnych kolorów wiersza

Using CSS

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

Korzystanie z 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>
 7
Author: Santosh Khalse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-17 07:36:46

Możesz używać selektorów NTH-child (nieparzyste/parzyste), jednak nie wszystkie przeglądarki (ie 6-8, FF v3.0) obsługują te reguły, dlatego większość rozwiązań wraca do jakiejś formy rozwiązania javascript/jquery, aby dodać klasy do wierszy dla tych niezgodnych przeglądarek, aby uzyskać efekt tiger stripe.

 3
Author: redsquare,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-06-21 11:41:55

Jest dość łatwy sposób, aby to zrobić w PHP, jeśli rozumiem twoje zapytanie, zakładam, że kodujesz w PHP i używasz CSS i javascript, aby zwiększyć wydajność.

Dynamiczne wyjście z bazy danych będzie zawierało pętlę for do iteracji wyników, które są następnie ładowane do tabeli. Po prostu dodaj wywołanie funkcji do tego typu:

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

Następnie dodaj funkcję do strony lub pliku biblioteki:

function getbgc($trcount)
{

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

}

Teraz to zmieni się dynamicznie pomiędzy kolory w każdym nowo wygenerowanym wierszu tabeli.

To o wiele łatwiejsze niż grzebanie w CSS, który nie działa na wszystkich przeglądarkach.

Mam nadzieję, że to pomoże.
 3
Author: mark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-13 16:06:11