Eu tenho uma div
tag contendo várias ul
tags.
Eu sou capaz de definir propriedades CSS apenas para a primeira ul
tag:
div ul:first-child {
background-color: #900;
}
No entanto, minhas tentativas a seguir para definir propriedades CSS para cada outra ul
tag, exceto a primeira, não funcionam:
div ul:not:first-child {
background-color: #900;
}
div ul:not(:first-child) {
background-color: #900;
}
div ul:first-child:after {
background-color: #900;
}
Como posso escrever em CSS: "cada elemento, exceto o primeiro"?
fonte
Esta solução CSS2 ("qualquer
ul
após a outraul
") também funciona e é suportada por mais navegadores.Ao contrário
:not
e:nth-sibling
, o selector de irmão adjacente é suportado por IE 7 +.Se o JavaScript alterar essas propriedades após o carregamento da página, observe alguns erros conhecidos nas implementações do IE7 e IE8 . Veja este link .
Para qualquer página estática da web, isso deve funcionar perfeitamente.
fonte
ul ul div ul
(onde esses elementos são irmãos), apenas o segundo ul será selecionado, pois o último não possui umul
anterior a si próprioComo
:not
não é aceito pelo IE6-8 , sugiro o seguinte:Então você escolhe cada
ul
elemento pai, exceto o primeiro .Consulte o artigo "Útil: Receitas da nona criança" de Chris Coyer para obter mais
nth-child
exemplos .fonte
Suporta IE7
fonte
not(:first-child)
parece não funcionar mais. Pelo menos com as versões mais recentes do Chrome e Firefox.Em vez disso, tente o seguinte:
fonte
ul:not(:first-child)
significa literalmente "qualquerul
elemento que não seja o primeiro filho de seu pai", portanto, ele não corresponderá nem ao primeiroul
se for precedido por outro elemento (p
, cabeçalho etc.). Pelo contrário,ul:not(:first-of-type)
significa "qualquerul
elemento, exceto o 1ºul
no contêiner". Você está certo de que o OP provavelmente precisava do último comportamento, mas sua explicação é bastante enganadora.Você pode usar qualquer seletor com
not
fonte
Não tive sorte com algumas das opções acima,
Este foi o único que realmente funcionou para mim
ul:not(:first-of-type) {}
Isso funcionou para mim quando eu estava tentando fazer com que o primeiro botão exibido na página não fosse afetado por uma opção de margem esquerda.
esta foi a opção que tentei primeiro, mas não funcionou
ul:not(:first-child)
fonte
Você pode usar o seletor com o
:not
seguinte, você pode usar qualquer seletor dentro do:not()
Mais exemplos
fonte
Como eu usei
ul:not(:first-child)
é uma solução perfeita.Por que isso é perfeito porque, usando
ul:not(:first-child)
, podemos aplicar CSS em elementos internos. Comoli, img, span, a
tags etc.Mas quando usadas outras soluções:
e
e
e
Eles restringem apenas o nível ul do CSS. Suponha que não possamos aplicar CSS
li
como `div ul + ul li '.Para elementos de nível interno, a primeira solução funciona perfeitamente.
e assim por diante ...
fonte