2012-07-04 25 views
7

Tengo el siguiente fragmento de código HTML:CSS primer hijo de la clase específica

<span class="ui-icon ui-icon-triangle-1-s"></span> 
<span class="route-line">4</span> 
<span class="route-line">33</span> 

me gustaría añadir algo de estilo en la primera span con class="route-line". ¿Es posible con CSS? Es algo así como nth-of-type; si hubiera existido, se habría llamado nth-of-type-with-class.

¡Gracias!

Respuesta

3

primer tramo con la clase .route línea seguido por cualquier otro elemento que no tienen clase .route línea

*:not(.route-line) + span.route-line 
{ 
    background-color:yellow; 
} 
+0

Está funcionando, pero ¿el '*' no consume mucho tiempo? – linkyndy

+0

Puede reemplazar * con un lapso si nota alguna lentitud – Leo

+0

Correcto. Es similar a la respuesta aceptada anterior, pero creo que esta es más cercana a lo que necesito. ¡Gracias! – linkyndy

2

¿Por qué no aplica otra clase al elemento que desea diseñar?

<span class="ui-icon ui-icon-triangle-1-s"></span> 
<span class="route-line custom-route-line">4</span> 
<span class="route-line">33</span> 

Y el css se vería así

.custom-route-line{/*your styling goes here*/} 

Nota ambos estilos de clases (ruta de línea & medida ruta en línea) se aplicarán a ese elemento. Take a look here

+1

Lo sé, pero quería mantener el código HTML lo más limpio posible. – linkyndy

9

En tales casos, puede usar el selector de hermanos. De este modo:

.ui-icon + .route-line{ 
    color: red; 
} 

Será sólo el estilo de span que sigue el elemento con una clase ui-icon.

+0

+1 para la nueva técnica que no conocía. – menislici

+0

Probablemente me quedaré con esta solución hasta que encuentre una mejor. ¡Gracias! – linkyndy

1

Lo que estaba buscando es span.route-line:first-of-type, pero es escaso apoyo .

Cuestiones relacionadas