Existe-t-il un moyen de colorer les étendues de colonnes tout en bas? Voir l'exemple de départ ci-dessous:
<table border="1">
<tr>
<th>Motor</th>
<th colspan="3">Engine</th>
<th>Car</th>
<th colspan="2">Body</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
<td>7</td>
</tr>
<tr>
<td>7</td>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
<td>5</td>
<td>6</td>
</tr>
</table>
Et je recherche un meilleur moyen (moins de code, coloration non individuelle) de colorer, par exemple, les travées "Moteur" et "Corps", y compris toutes les cellules situées en dessous dans #DDD
<style>
.color {
background-color: #DDD
}
</style>
<table border="1">
<tr>
<th>Motor</th>
<th colspan="3" class="color">Engine</th>
<th>Car</th>
<th colspan="2" class="color">Body</th>
</tr>
<tr>
<td>1</td>
<td class="color">2</td>
<td class="color">3</td>
<td class="color">4</td>
<td>5</td>
<td class="color">6</td>
<td class="color">7</td>
</tr>
<tr>
<td>7</td>
<td class="color">1</td>
<td class="color">2</td>
<td class="color">3</td>
<td>4</td>
<td class="color">5</td>
<td class="color">6</td>
</tr>
</table>
Réponses:
Oui, vous pouvez ... en utilisant l'
<col>
élément:Remarque : vous pouvez utiliser l'
span
attribut pour que la définition de col s'applique à plusieurs colonnes.Voir aussi :
<colgroup>
la source
<col span="3" />
des colonnes s'étendant.colgroup
qui contient toutes les colonnes.<tbody>
. Je préfère simplement préciser.col
balise n'est pas si courante, mais je l'utilise toujours pour les largeurs de colonneVous pouvez utiliser le
nth-child
sélecteur pour cela:la source
col
est bien meilleur que cela (plus propre et plus rapide).Il est généralement plus simple de styliser les cellules (par colonne si vous le souhaitez), mais les colonnes peuvent être stylisées de différentes manières. Un moyen simple consiste à envelopper les colonnes dans un
colgroup
élément et à y définir des styles. Exemple:la source
col
éléments individuels à l'intérieur ducolgroup
s n'ont pas besoin d'être stylisés individuellement, vous pouvez également définir l'span
attribut surcolgroup
lui-même -<colgroup span="2">
- au lieu de placer descol
éléments à l'intérieur.Vous pouvez utiliser CSS3: http://jsfiddle.net/snuggles08/bm98g8v8/
la source
J'utiliserais la
nth-child
pseudo-classe css pour cela:Afficher l'extrait de code
la source
L'implémentation suivante est le sélecteur nième enfant et devrait fonctionner ...
la source
>
entre tr et td, puisque vous vous êtes donné la peine de sélectionner des tds uniquement à l'intérieur des tables uniquement à l'intérieur des tables ... (attention aux groupes de tables.)table tr td
est redondant cartd
s sont toujours à l'intérieurtr
ettable
.Ma version utilisant les expressions nth-child:
Utiliser le concept CSS de règles en cascade pour colorer d'abord les cellules, puis décolorer celles que je veux être transparent. Le premier sélecteur sélectionne toutes les cellules après la première, et le second sélectionne la cinquième cellule pour être transparente.
Consultez cette référence intéressante: http://learn.shayhowe.com/advanced-html-css/complex-selectors/
la source
C'est une vieille question avec beaucoup de bonnes réponses. Je voulais juste ajouter les sélecteurs
-n
etnth-last-child
qui n'ont pas encore été mentionnés. Ils sont utiles lors de l'application du CSS à plusieurs colonnes, mais peuvent ne pas connaître le nombre de colonnes avant le style, ou avoir plusieurs tables avec des largeurs variables.jsFiddle: https://jsfiddle.net/3rpf5oht/2/
la source