Existe uma maneira de colorir vãos de colunas todo o caminho para baixo. Veja o exemplo inicial abaixo:
<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>
E estou procurando uma maneira melhor (menos código, coloração não individual) para colorir, por exemplo, extensões de "Motor" e "Corpo", incluindo todas as células abaixo delas em #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>
Respostas:
Sim, você pode ... usando o
<col>
elemento:Nota : Você pode usar o
span
atributo para fazer a definição de col se aplicar a mais de uma coluna.Veja também :
<colgroup>
fonte
<col span="3" />
para as colunas abrangentes.colgroup
que contenha todas as colunas.<tbody>
. Eu simplesmente prefiro especificar.col
tag não é tão comum, mas sempre a uso para larguras de colunaVocê pode usar o
nth-child
seletor para:fonte
col
se é muito melhor do que isso (mais limpo e mais rápido).Geralmente é mais simples estilizar células (por coluna, se desejado), mas as colunas podem ser estilizadas de maneiras diferentes. Uma maneira simples é envolver colunas em um
colgroup
elemento e definir estilos nele. Exemplo:fonte
col
elementos individuais dentro decolgroup
s não precisam ser estilizados individualmente, você também pode definir ospan
atributo emcolgroup
si -<colgroup span="2">
- em vez de colocarcol
elementos dentro dele.Você pode usar CSS3: http://jsfiddle.net/snuggles08/bm98g8v8/
fonte
Eu usaria a
nth-child
pseudoclasse css para isso:Exibir trecho de código
fonte
O seguinte implemento é o seletor enésimo filho e deve funcionar ...
fonte
>
entre tr e td, já que se deu ao trabalho de selecionar tds apenas dentro de trs apenas dentro de tabelas ... (preste atenção aos tablegroups.)table tr td
é redundante, poistd
s estão sempre dentro detr
etable
.Minha versão usando expressões enésimas crianças:
Usando o conceito CSS de regras em cascata para primeiro colorir as células e depois descolorir aquelas que quero que fiquem transparentes. O primeiro seletor seleciona todas as células após o primeiro, e o segundo seleciona a quinta célula para ser transparente.
Verifique esta referência interessante: http://learn.shayhowe.com/advanced-html-css/complex-selectors/
fonte
Esta é uma velha questão com muitas respostas excelentes. Só queria adicionar os seletores
-n
enth-last-child
que ainda não foram mencionados. Eles são úteis ao aplicar CSS a várias colunas, mas podem não saber o número de colunas antes do estilo ou ter várias tabelas com larguras variadas.jsFiddle: https://jsfiddle.net/3rpf5oht/2/
fonte