2010-04-06 22 views
6

Estoy tratando de deshacerse de este:¿Cómo aplicar CSS al elemento del cuerpo HTML?

document.body.className = "someclass"; 

Quiero hacer esto en el CSS.

body.someclass { 
. 
. 
. 
} 

lamentablemente no puedo hacer que esto funcione en Firefox, chrome.

¿Estoy haciendo algo mal aquí? ¿Hay alguna manera en que podamos aplicar una clase de CSS al cuerpo?

Respuesta

14

Usted está haciendo dos cosas diferentes allí. Su JavaScript en realidad está asignando la clase "someclass" a su elemento body, mientras que su CSS es styling un elemento del cuerpo con la clase "someclass", no le asignará la clase, esa no es la tarea de CSS. Que lo haría en la llanura (X) HTML así:

<body class="someclass"> 
+0

lo he usado antes y funciona. +1 – pixeltocode

+0

Gracias por eso, pude aplicar de esta manera. – Manohar

6

Parte del problema es que XHTML válido sólo puede tener un elemento de <body> por documento. Una clase generalmente se atribuye a un elemento que ocurre varias veces (o, más bien, a un estilo que desea aplicar varias veces).

DESDE que solo haya un cuerpo, nunca he agregado una identificación o clase. estilo simplemente:

body { 
    background-color: red; 
} 

Si usted tiene una clase desea volver a utilizar, use una coma en el selector:

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

Todo esto es potencialmente sin sentido, sin embargo, porque cualquier cosa aplica a la etiqueta <body> será heredado por sus hijos, a menos que se especifique lo contrario.

+0

¿Tal vez más tarde está cambiando la clase usando JavaScript y solo quiere proporcionar un valor predeterminado de manera detallada? por supuesto, solo estoy haciendo suposiciones allí. –

+0

Creo que es importante tener en cuenta que solo hay una etiqueta corporal, pero si enlaza a un archivo css externo, ese archivo podría encontrar varias páginas web diferentes que necesitan una etiqueta corporal diferente. También es un poco discutible si utiliza el estilo css de nivel de documentos en el encabezado en lugar de agregar clases para etiquetas corporales en el archivo css externo. – Nitrodist

1

No hay necesidad de una clase en el cuerpo ya que solo tendrá un cuerpo en su documento. A menos que quieras cambiar el estilo del cuerpo cambiando la clase de JavaScript por alguna razón.

Si usted tiene que poner una clase en el cuerpo de hacerlo de esta manera:

<body class="someclass"> 

y luego acceder a la clase y modificar el estilo en su css de esta manera:

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

Sin embargo, puede cambie el estilo de todos los elementos de una etiqueta y como solo tendrá un cuerpo, simplemente puede agregar esto al css:

body{ 
    ...(style parameters) 
} 

Y no agrega nada al html. Sin embargo, con las etiquetas recurrentes, utilice la clase para un estilo que se usará varias veces y la id para un estilo que solo se usará una vez en una página. Usted asigna una identificación a una etiqueta como esta en html:

<tag id="someid"> 
Cuestiones relacionadas