2009-08-09 14 views
9

Diciamo che voglio definire 2 stili.Ereditarietà stile CSS

.color_red { color: Red; } 
.banner { display: block; width: 100%; } 

C'è un modo in cui posso avere lo stile h1 ereditare lo stile color_red? Io non voglio avere a che fare

<div class="banner color_red">This is my banner.</div> 

Preferirei fare qualcosa di simile ...

.banner { ... inherit: color_red; } 
... 
<div class="banner">This is my banner.</div> 

E avere la bandiera hanno testo rosso.

+0

senza merito o ... – annakata

+0

Si potrebbe guardare in HSS: http://ncannasse.fr/projects/hss – Dykam

risposta

19

dovete scrivere:

 
.color_red, .banner { color: Red; } 
.banner { display: block; width: 100%; } 
+0

Questa è la cosa più vicina che potrei inventare. Credo che dovrò fare le cose in questo modo. –

16

No, non c'è modo di farlo direttamente, meglio condividere le definizioni di stile:

.color_red, 
.banner 
{ 
    color: red; 
} 

Tuttavia vorrei sottolineare che si stiamo avvicinando il problema dalla direzione sbagliata. Il tuo mark-up dovrebbe essere indipendente dallo stile e dovrebbe condurre idealmente lo stile in sviluppo. Ciò significa che la definizione di .color_red è un problema serio, perché non dice nulla sulla semantica del mark-up e su quanti problemi hai dovuto affrontare se hai bisogno di ridimensionare quel bit di mark-up blu?

Molto meglio per consentire al mark-up di esistere in questo modo:

<div class="banner highlight">I am a banner AND I am highlighted!</div> 

supportata da:

<style> 
.highlight 
{ 
    color: red; 
} 

.banner 
{ 
    display: block; 
    width: 100%; 
} 
</style> 
non
+1

Volevo questo per consentire la creazione di modelli di colori. Ad esempio avere un colore scuro 1 ecc. Il mio esempio usa colori espliciti per semplicità. Stavo cercando di ottenere lo stesso effetto delle classi parziali in C#. –