2010-06-24 10 views
5

Me gustaría asignar un estilo a un elemento HTML, pero solo en el caso de que la etiqueta tenga algún contenido configurado.El selector de CSS solo funciona si <tag> tiene contenido</tag>

¿Es posible usar CSS puro? Idealmente, me gustaría evitar JS o cambios en el servidor a la estructura del HTML en sí.

+0

duplicado posible de [contenido CSS conscientes - aplicar el estilo sólo si el contenido está disponible] (http://stackoverflow.com/questions/9063446/content-aware-css-apply-style-only-if-content -is-available) – user

Respuesta

9

CSS3 tiene un :empty pseudo -class.

No veo ninguna forma de hacerlo en CSS2.1 puro.

+0

Tabla de compatibilidad: http://www.quirksmode.org/css/contents.html –

+0

No me di cuenta de que: existía una pseudoclase vacía ... buena :-) +1 –

8

Puede hacer esto con CSS3 combinando las pseudo-clases :not y :empty. Para navegadores que no son compatibles con ambos, deberá usar JS o una solución del lado del servidor.

div:not(:empty) { background-color:blue; } 
Cuestiones relacionadas