2009-08-09 13 views
9

Powiedzmy, że chcę zdefiniować 2 style.Dziedziczenie stylu CSS

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

Czy istnieje sposób, że mogę mieć styl h1 ​​dziedziczy styl color_red? Nie chcę mieć zrobić

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

wolałbym zrobić coś takiego ...

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

i mają mieć sztandar czerwony tekst.

+0

nie bez zasługi albo ... – annakata

+0

Można zajrzeć do HSS: http://ncannasse.fr/projects/hss – Dykam

Odpowiedz

19

Trzeba napisać:

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

To jest najbliższa rzecz, którą mogę wymyślić. Chyba będę musiał robić to w ten sposób. –

16

Nie, nie ma sposobu, aby to zrobić bezpośrednio, lepiej dzielić definicje stylów:

.color_red, 
.banner 
{ 
    color: red; 
} 

Jednak chciałbym podkreślić, że ciebie "podchodzimy do problemu z niewłaściwego kierunku. Twoja marża powinna być niezależna od stylu i powinna idealnie prowadzić styl do rozwoju. Oznacza to, że zdefiniowanie .color_red jest poważnym problemem, ponieważ nie mówi nic o semantyce marży i o tym, jak duży problem napotykasz, jeśli chcesz nadać tej kreacji nieco na niebiesko?

Daleko lepiej umożliwić mark-up istnieć tak:

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

wspierane przez:

<style> 
.highlight 
{ 
    color: red; 
} 

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

Chciałem, aby to pozwoliło na szablonowanie kolorów. Takich jak ciemny kolor 1 itd. Mój przykład używa prostych kolorów dla uproszczenia. Próbowałem osiągnąć ten sam efekt, co częściowe klasy w języku C#. –