2010-06-24 22 views
5

Vorrei assegnare uno stile a un elemento HTML, ma solo nel caso in cui il tag abbia impostato alcuni contenuti.Il selettore CSS funziona solo se <tag> ha contenuto</tag>

È possibile utilizzare puro CSS? Idealmente vorrei evitare JS o modifiche lato server alla struttura del codice HTML stesso.

+0

Eventuali duplicati di [Content consapevoli CSS - applicare lo stile solo se il contenuto è disponibile] (http://stackoverflow.com/questions/9063446/content-aware-css-apply-style-only-if-content -è disponibile) – user

risposta

9

CSS3 ha un :empty pseudo -class.

Non riesco a vedere alcun modo di farlo in puro CSS2.1.

+0

Tabella di compatibilità: http://www.quirksmode.org/css/contents.html –

+0

Non si rendeva conto che: esisteva una pseudo-classe vuota ... bella :-) +1 –

8

È possibile farlo con CSS3 combinando le pseudo-classi :not e :empty. Per i browser che non supportano entrambi dovrai utilizzare JS o una soluzione lato server.

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