J'utilise une table avec une couleur de rangée différente avec ceci.
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>
Ici, j'utilise la classe pour tr
, mais je veux utiliser uniquement pour table
. Quand j'utilise class pour table, cela s'applique à tr
alternative.
Puis-je écrire mon code HTML comme ceci en utilisant CSS?
<table class="alternate_color">
<tr><td>One</td><td>one</td></tr>
<tr><td>Two</td><td>two</td></tr>
</table>
Comment faire en sorte que les lignes comportent des "zébrures" à l'aide de CSS?
$(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>
Il existe un sélecteur CSS, en réalité un pseudo-sélecteur, appelé nth-child. En CSS pur, vous pouvez effectuer les opérations suivantes:
tr:nth-child(even) {
background-color: #000000;
}
Remarque: Pas de support dans IE 8.
Ou, si vous avez jQuery:
$(document).ready(function()
{
$("tr:even").css("background-color", "#000000");
});
Vous avez la pseudo-classe :nth-child()
:
table tr:nth-child(odd) td{
...
}
table tr:nth-child(even) td{
...
}
Au début de :nth-child()
sa support du navigateur était plutôt pauvre. C'est pourquoi la configuration de class="odd"
est devenue une technique si courante. Fin 2013, je suis heureux de dire qu'IE6 et IE7 sont enfin morts (ou suffisamment malades pour cesser de s'en préoccuper), mais IE8 est toujours là - heureusement, c'est la seule exception.
Ajoutez simplement ce qui suit à votre code html (avec le <head>
]) et vous avez terminé.
HTML:
<style>
tr:nth-of-type(odd) {
background-color:#ccc;
}
</style>
Plus facile et plus rapide que les exemples jQuery.
puis-je écrire mon code HTML comme celui-ci avec css?
Oui, vous pouvez, mais vous devrez alors utiliser le :nth-child()
pseudo-sélecteur (qui a cependant un support limité):
table.alternate_color tr:nth-child(odd) td{
/* styles here */
}
table.alternate_color tr:nth-child(even) td{
/* styles here */
}
La plupart des codes ci-dessus ne fonctionneront pas avec la version IE. La solution qui fonctionne pour IE + les autres navigateurs est la suivante.
<style type="text/css">
tr:nth-child(2n) {
background-color: #FFEBCD;
}
</style>
Nous pouvons utiliser des règles CSS impaires et régulières et la méthode jQuery pour les couleurs de ligne alternatives
tilisation de CSS
table tr:nth-child(odd) td{
background:#ccc;
}
table tr:nth-child(even) td{
background:#fff;
}
tilisation de 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>
<script type="text/javascript">
$(function(){
$("table.alternate_color tr:even").addClass("d0");
$("table.alternate_color tr:odd").addClass("d1");
});
</script>
Il existe un moyen assez facile de faire cela en PHP. Si je comprends votre requête, je suppose que vous codez en PHP et que vous utilisez CSS et javascript pour améliorer le résultat.
La sortie dynamique de la base de données comportera une boucle for pour parcourir les résultats qui seront ensuite chargés dans la table. Ajoutez simplement un appel de fonction à ceci:
echo "<tr style=".getbgc($i).">"; //this calls the function based on the iteration of the for loop.
ajoutez ensuite la fonction au fichier de page ou de bibliothèque:
function getbgc($trcount)
{
$blue="\"background-color: #EEFAF6;\"";
$green="\"background-color: #D4F7EB;\"";
$odd=$trcount%2;
if($odd==1){return $blue;}
else{return $green;}
}
Maintenant, cela alternera dynamiquement entre les couleurs de chaque nouvelle ligne du tableau généré.
C'est beaucoup plus facile que de jouer avec CSS qui ne fonctionne pas sur tous les navigateurs.
J'espère que cela t'aides.
Vous pouvez utiliser les sélecteurs nth-child (impair/pair), mais tous les navigateurs ( c.-à-d. 6-8, ff v3. ) ne prennent pas en charge ces règles, raison pour laquelle la plupart des solutions ont recours à une forme de javascript/jquery. solution pour ajouter les classes aux lignes pour que ces navigateurs non conformes obtiennent l’effet rayure tigre.