Como você provavelmente já sabe, você pode ter várias classes em elementos separados por um espaço.
Exemplo
<div class="content main"></div>
E com CSS você pode direcionar isso div
com .content
ou .main
. Existe uma maneira de direcioná-lo se e somente se ambas as classes estiverem presentes?
Exemplo
<div class="content main">I want this div</div>
<div class="content">I don't care about this one</div>
<div class="main">I don't want this</div>
Qual seletor de CSS eu usaria para obter div
apenas o primeiro (suponha que não posso usar .content:first-child
ou semelhante)?
css
css-selectors
alex
fonte
fonte
Só por causa dele (eu realmente não recomendo que você faça isso), não é uma outra maneira de fazê-lo:
.content[class~="main"] {}
Ou:
.main[class~="content"] {}
Referência: http://www.w3.org/TR/CSS2/selector.html
Demo: http://jsfiddle.net/eXrSg/
Por que isso é realmente útil (pelo menos para o IE6):
Como o IE6 não oferece suporte a várias classes, não podemos usar
.content.main
, mas existem algumas bibliotecas javascript como o IE-7.js que habilitam o seletor de atributos, mas ainda parecem falhar quando se trata de várias classes. Eu testei essa solução alternativa no IE6 com javascript habilitando o seletor de atributos, e é feia, mas funciona.Ainda estou para encontrar um script que faça com que o IE6 suporte vários seletores de classe, mas encontrei muitos que permitem seletores de atributo. Se alguém souber de algum que funcione , diga-me nos comentários para que eu possa me livrar dessa solução alternativa.
fonte