2010-04-06 11 views
6

Sto cercando di sbarazzarsi di questo:Come applicare i CSS per elemento del corpo HTML?

document.body.className = "someclass"; 

io voglio fare questo in CSS.

body.someclass { 
. 
. 
. 
} 

sfortunatamente non riesco a farlo funzionare in Firefox, Chrome.

Sto facendo qualcosa di sbagliato qui? C'è un modo per applicare una classe CSS al corpo?

risposta

14

Si sta facendo due cose diverse lì. Il tuo JavaScript sta effettivamente assegnando la classe "someclass" al tuo elemento body, mentre il tuo CSS è styling un elemento body con la classe "someclass", non assegnerà la classe ad esso, che non è compito del CSS. Si potrebbe farlo in pianura (X) HTML come questo:

<body class="someclass"> 
+0

ho usato questo prima e funziona. +1 – pixeltocode

+0

Grazie per questo, sono stato in grado di applicare in questo modo. – Manohar

6

Parte del problema è che validato XHTML può avere un solo <body> elemento per documento. Una classe è generalmente attribuita a un elemento che si verifica più volte (o, meglio, per uno stile che si desidera applicare più volte).

dato che c'è sempre e solo un corpo, non ho mai aggiunto un ID o una classe ad esso. Stile Basta:

body { 
    background-color: red; 
} 

Se si dispone di una classe che si desidera riutilizzare, utilizzare una virgola nel selettore:

.coolStyle, body { 
    font-weight: bold; 
    color: red; 
    text-decoration: blink; 
} 

Tutto questo è potenzialmente senza senso, però, perché nulla applicato al tag <body> sarà ereditato dai suoi figli se non diversamente indicato diversamente.

+0

forse è tardi cambiando la classe utilizzando JavaScript e vuole solo fornire un default in modo dettagliato? ovviamente sto solo facendo delle supposizioni lì. –

+0

Penso che sia importante notare che esiste un solo tag body, ma se si collega a un file css esterno, quel file potrebbe potenzialmente incontrare diverse pagine Web che richiedono lo stile del tag body in modo diverso. È anche un po 'discutibile se si utilizza lo stile css a livello di documento nell'intestazione invece di aggiungere classi per i tag del corpo nel file css esterno. – Nitrodist

1

Non è necessario un corso sul corpo poiché nel documento è presente un solo corpo. A meno che non si desideri modificare lo stile del corpo cambiando con la classe JavaScript per qualche motivo.

Se si deve mettere una classe sul corpo fare in questo modo:

<body class="someclass"> 

E poi accedere alla classe e modificare lo stile nel CSS in questo modo:

body.someclass{ 
    ...(style parameters goes here) 
} 

Tuttavia è possibile cambia lo stile di tutti gli elementi di un tag e dato che avrai un solo corpo potresti semplicemente aggiungere questo al css:

body{ 
    ...(style parameters) 
} 

E non aggiungere nulla all'html. Tuttavia con i tag ricorrenti si usa la classe per uno stile che verrà usato più volte e l'id per uno stile che verrà usato una sola volta su una pagina. Assegni un id a un tag come questo nel codice html:

<tag id="someid"> 
Problemi correlati