2012-02-09 13 views
5

Sto realizzando un set di pulsanti per il mio sito e ho bisogno di alcune informazioni professionali.Sto sottoclassi correttamente il mio CSS?

Per ridurre il numero di colori CSS, voglio sottoclassi i miei pulsanti per diversi colori, ex .button.blue.

Si verificheranno problemi in futuro? (supponendo che non crei una classe di solo .blue) Devo usare qualcosa come .button.button-blue invece?

.button { 
    display:inline-block; 
    padding: 9px 18px; 
    margin: 20px; 
    text-decoration: none; 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 12px; 
    font-weight: bold; 
    text-align: center; 
    background: #FFE150; 
} 
.button.blue { 
    background: #49b8e7; 
    border:1px solid #54abcf; 
    border-bottom:1px solid #398fb4; 
    color:#FFF 
    text-shadow: 0 1px 0 rgba(255,255,255, 0.5); 
} 
.header{ 
    height: 50px; 
} 
.header.blue { 
    background: blue; 
    color: #fff; 
} 
+3

Non c'è alcun concetto di * * sottoclassi in CSS. Puoi solo * aggiungere * classi aggiuntive. –

risposta

8

Quello che hai lì con le pluriclassi funzionerà benissimo supponendo che si desidera loro di lavorare in questo modo:

<div class="button blue"> 
Will use .button and .button.blue 
</div> 

<div class="button"> 
Will only use .button 
</div> 

<div class="header blue"> 
Will use .header and .header.blue 
</div> 

<div class="header"> 
Will only use .header 
</div> 

<div class="blue"> 
Will use neither of the .blue declarations because it doesn't contain header or button. 
</div> 
+0

Grazie, questo mi ha fatto davvero pensare ... il vero problema con il mio codice sopra è se un altro deviava una classe .blue distruggere l'intero sito. Dove come .btn-blue sarà contenuto solo in quel "modulo". – SkinnyG33k

+0

Esattamente. Sicuramente causerà alcuni problemi se viene creato un file .blue standalone. –

1

Un selettore come .button.blue effettivamente seleziona un elemento con che ha sia "blu" e "pulsante" come classi, non una classe denominata .button.blue. Vedi http://www.w3.org/TR/CSS21/selector.html#class-html.

Puoi usare la regola di stile .button.blue che hai elencato, ma dovrai riorganizzare il codice HTML in modo che tu abbia qualcosa come <button type="button" class="button blue"/>. Tuttavia, non è davvero necessario avere una classe pulsante poiché è un pulsante (o <input type="submit">, ecc.) Sufficiente per essere utilizzato nel selettore. Potresti scrivere una regola CSS che sia semplicemente button.blue, input[type=submit].blue{}

+0

Cool, non ho pensato di aggiungere l'input [type = submit] like that =) – SkinnyG33k

0

Sembra sufficiente button.blue.

L'unica differenza tra i due è se si utilizza <button class="button blue"> o <button class="button button-blue">.

Puoi anche non è necessario duplicare il dipinto di blu ... Si può solo fare qualcosa di simile:

.button 
{ 
// button style 
} 

.header 
{ 
// header style 
} 

.blue 
{ 
    background: blue; 
    color: #fff; 
} 

Naturalmente se si aggiunge la classe blu a ciascuno di essi. (<div class="header blue"> e <button class="button blue">)

0

combinare le classi che applicano il colore che si desidera tema.

HTML:

<input type="text" class="text-field-required default" .../> 
<select class="autocomplete-drop-down blue">...</select> 
<a href="#" class="button-link green" .../> 

CSS:

.text-field-required { 
    //component css theme without colors 
} 
.default { 
    //default color css theme for any component 
} 
.blue { 
    //blue css theme for any component 
} 
.green { 
    //green css theme for any component 
} 
Problemi correlati