Como probablemente ya sepa, puede tener varias clases de elementos separados por un espacio.
Ejemplo
<div class="content main"></div>
Y con CSS puedes apuntar a eso div
con .content
o .main
. ¿Hay alguna forma de apuntar a él si y solo si ambas clases están presentes?
Ejemplo
<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>
¿Qué selector de CSS usaría para obtener div
solo el primero (supongo que no puedo usar .content:first-child
o algo similar)?
css
css-selectors
alex
fuente
fuente
Sólo por el bien de ella (que realmente no recomiendo hacer esto), no es otra manera de hacerlo:
.content[class~="main"] {}
O:
.main[class~="content"] {}
Referencia: http://www.w3.org/TR/CSS2/selector.html
Demostración: http://jsfiddle.net/eXrSg/
Por qué esto es realmente útil (al menos para IE6):
Dado que IE6 no admite múltiples clases, no podemos usar
.content.main
, pero hay algunas bibliotecas de javascript como IE-7.js que habilitan el selector de atributos, pero aún parecen fallar cuando se trata de múltiples clases. He probado esta solución en IE6 con javascript que habilita el selector de atributos, y es feo, pero funciona.Todavía tengo que encontrar un script que haga que IE6 admita múltiples selectores de clases, pero he encontrado muchos que habilitan los selectores de atributos. Si alguien sabe de uno que funciona , por favor dígame un mensaje en los comentarios para que pueda deshacerme de esta solución.
fuente