Eu tenho o seguinte código HTML em uma página:
<h4>Some text</h4>
<p>
Some more text!
</p>
No meu .css
, tenho o seguinte seletor para estilizar o h4
elemento. O código HTML acima é apenas uma pequena parte de todo o código; há vários div
outros agrupados pertencentes a uma caixa de sombra:
#sb-wrapper #sb-wrapper-inner #sb-body #myDiv h4
{
color : #614E43;
margin-top : 5px;
margin-left : 6px;
}
Portanto, tenho o estilo correto para meu h4
elemento, mas também quero estilizar a p
tag no meu HTML.
Isso é possível com seletores CSS? E se sim, como posso fazer isso?
html
css
css-selectors
Roubar
fonte
fonte
h4
elementos, caminhar até o próximo irmão e adicionar uma classe CSS a ele. Com jQuery, isso seria simplesmente$('#sb-wrapper #sb-wrapper-inner #sb-body #myDiv h4').next().addClass('shadowbox-h4-p');
Para seu exemplo literal, você deseja usar o seletor adjacente (+).
No entanto, se você quiser selecionar todos os parágrafos sucessivos, precisará usar o seletor geral de irmãos (~).
Infelizmente, ele tem bugs no IE 7+ .
fonte
Apenas bato nisso quando tento resolver esse tipo de coisa sozinho.
Fiz um seletor que trata do elemento depois de ser algo diferente de um p.
Espero que ajude quem o encontrar :)
fonte
*
corresponde a qualquer elemento conforme descrito no título. Foi um lembrete útil para mim.Simplyfing para os iniciantes:
Se você quiser selecionar um elemento imediatamente após outro elemento, use o
+
seletor.Por exemplo:
div + p
O elemento "+" seleciona todos os<p>
elementos que são colocados imediatamente após os<div>
elementosSe você quiser aprender mais sobre seletores use esta tabela
fonte
Eu uso o CSS mais recente e "+" não funcionou para mim, então acabei com
:primeiro filho
fonte