Como posso selecionar todos os tr
elementos, exceto o primeiro tr
de uma tabela com CSS?
Eu tentei usar esse método, mas achei que não funcionava.
css
css-selectors
Alexander Abakumov
fonte
fonte
<tr>
e uma classe diferente para o restante.Respostas:
Adicionando uma classe ao primeiro
tr
ou aotr
s subsequente . Não existe uma maneira entre navegadores de selecionar as linhas que você deseja apenas com CSS.No entanto, se você não se importa com o Internet Explorer 6, 7 ou 8:
fonte
tr:not(:first-of-type)
como uma solução em potencial, se você está procurando a primeira instância de um seletor específico e não o primeiro filho generalizado.Estou surpreso que ninguém tenha mencionado o uso de combinadores de irmãos, suportados pelo IE7 e posterior:
Ambos funcionam exatamente da mesma maneira (no mesmo contexto das tabelas HTML) como:
fonte
elem + elem
é uma ótima solução geral para quando os elementos que você deseja segmentar não são os únicos filhos. Por exemplo, se a<h2>
for seguido por várias<p>
tags, o primeiro<p>
não será o primeiro filho nesse caso.solução ideal, mas não suportada no IE
a segunda solução seria estilizar todos os trs e substituir o css pelo primeiro filho:
fonte
parece que a 'primeira linha' da qual você está falando é o cabeçalho da tabela - então você deve realmente pensar em usar
thead
etbody
em sua marcação ( clique aqui ) o que resultaria em uma marcação 'melhor' (semanticamente correta, útil para itens como leitores de tela) ) e possibilidades mais fáceis e compatíveis com vários navegadores para seleção de css (table thead ... { ... }
)fonte
Embora a pergunta já tenha uma resposta decente, só quero enfatizar que a
:first-child
tag segue o tipo de item que representa os filhos.Por exemplo, no código:
Se você deseja afetar apenas os dois segundos elementos com uma margem, mas não o primeiro, você faria:
isto é, como
input
s são filhos, você colocariafirst-child
na parte de entrada do seletor.fonte
Desculpe, eu sei que isso é antigo, mas por que não estilizar todos os elementos tr da maneira que você deseja, exceto o primeiro e usar a classe psuedo: first-child, em que você revoga o que especificou para todos os elementos tr.
Melhor descrito por este exemplo:
http://jsfiddle.net/DWTr7/1/
/ Patrik
fonte
Como
tr:not(:first-child)
não é suportado pelo IE 6, 7, 8. Você pode usar a ajuda do jQuery. Você pode encontrá-lo aquifonte
Outra opção:
fonte
Pode ser que alguém possa se beneficiar, abaixo está o que eu usei
fonte
Você também pode usar um seletor de pseudo classe no seu CSS assim:
Isso não aplicará a classe ao primeiro elemento da classe .desc.
Aqui está um JSFiddle com um exemplo: http://jsfiddle.net/YYTFT/ , e esta é uma boa fonte para explicar os seletores de pseudo classe: http://css-tricks.com/pseudo-class-selectors/
fonte
first-child
ignora classes.Você pode criar uma classe e usá-la quando definir todos os seus futuros que deseja (ou não deseja) que sejam selecionados pelo CSS.
Isso seria feito escrevendo
e depois no seu css com as linhas (e usando o comando text-align como exemplo):
fonte