2011-03-13 17 views

Respuesta

-1

Prueba este

.testparent .test:first-child { 
    color: red; 
} 

<div class="testparent"> 
<div class="test">test</div> 
<div class="test">test</div> 
<div class="test">test</div> 
</div> 

el primer 'test' div tiene solamente el rojo.

+0

Um, no, eso coincide con el primer 'p' de cada' .test'. – BoltClock

+0

Sí, lo edité. parece que 'Peter Of The Corn' lo resolvió de otra manera ... –

+1

Y si el primer niño no tiene '.test', pero sí algún otro hermano, entonces no se selecciona nada. – BoltClock

42

Si necesita el primer elemento con una cierta clase entre sus hermanos, puede utilizar

.myclass { 
    /* styles of the first one */ 
} 

.myclass ~ .myclass { 
    /* styles of the others (must cancel the styles of the first rule) */ 
} 

No trate de usar .myclass:not(.myclass ~ .myclass) hacer esto en una sola regla, no va a funcionar desde :not() solo acepta selectores simples entre paréntesis.

Si quiere el primer .myclass en todo el documento, no hay forma de hacerlo solo con CSS.

Los :nth-of-type() o :nth-child() enfoques publicados son incorrectos, incluso si casualmente coinciden con los elementos que desea en su página.

Compatibilidad con el navegador del selector de hermanos (~): IE7 + y todos los demás.

+3

+1 Buen truco (sin perjuicio del navegador). – BoltClock

+1

El soporte del navegador es en realidad mejor que las pseudoclases estructurales de CSS. Editado mi respuesta para incluirlo. –

+0

Oh, eso es encantador. – BoltClock

-1
.class-name:first-of-type { 
    ⋮ declarations 
} 
+6

El selector ': first-of-type' se aplica a los nombres de los elementos, no a los nombres de las clases: https://developer.mozilla.org/en-US/docs/Web/CSS/:first-of-type –

Cuestiones relacionadas