2010-04-06 5 views
6

Ich versuche, diese loszuwerden:Wie man CSS auf HTML body element anwendet?

document.body.className = "someclass"; 

ich dies in CSS tun will.

body.someclass { 
. 
. 
. 
} 

leider bin ich nicht in der Lage, dies in Firefox, Chrome zu arbeiten.

Mache ich hier etwas falsch? Gibt es eine Möglichkeit, eine CSS-Klasse auf den Körper anzuwenden?

Antwort

14

Sie machen zwei verschiedene Dinge dort. Ihr JavaScript weist Ihrem body-Element die Klasse "someclass" zu, während Ihr CSS ein Body-Element mit der Klasse "someclass" ist, es wird die Klasse nicht zuweisen, das ist nicht die Aufgabe von CSS. Sie würden es in Ebene (X) HTML wie folgt tun:

<body class="someclass"> 
+0

Ich habe dies bereits verwendet und es funktioniert. +1 – pixeltocode

+0

Danke dafür, ich konnte mich auf diese Weise bewerben. – Manohar

6

Ein Teil des Problems ist, dass gültiges XHTML nur ein <body> Element pro Dokument haben kann. Eine Klasse wird im Allgemeinen einem Element zugeordnet, das mehrfach vorkommt (oder vielmehr einem Stil, der mehrmals angewendet werden soll).

Da es nur einen Körper gibt, habe ich nie eine ID oder eine Klasse hinzugefügt. Gerade Stil:

body { 
    background-color: red; 
} 

Wenn Sie eine Klasse, die Sie wiederverwenden möchten haben, ein Komma in Ihrem Selektor:

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

All dies ist möglicherweise bedeutungslos, aber, weil irgendetwas mit dem Tag <body> angewendet wird von seinen Kindern geerbt, wenn sie nicht ausdrücklich anders gekennzeichnet sind.

+0

Vielleicht ändert er später die Klasse mithilfe von JavaScript und möchte nur einen Standard in einer ausführlichen Weise bereitstellen? Natürlich mache ich dort nur Vermutungen. –

+0

Ich denke, es ist wichtig zu beachten, dass es nur ein Body-Tag gibt, aber wenn Sie eine externe CSS-Datei verknüpfen, kann diese Datei möglicherweise mehrere verschiedene Webseiten, die das Body-Tag anders gestylt müssen. Es ist auch etwas problematisch, wenn Sie den CSS-Stil der Dokument-Ebene im Header verwenden, anstatt Klassen für Body-Tags in der externen CSS-Datei hinzuzufügen. – Nitrodist

1

Es ist keine Klasse am Körper erforderlich, da Sie nur einen Körper in Ihrem Dokument haben. Es sei denn vielleicht möchten Sie den Stil des Körpers ändern, indem Sie aus irgendeinem Grund mit der JavaScript-Klasse wechseln.

Wenn Sie eine Klasse auf Körper gelegt haben tun es wie folgt aus:

<body class="someclass"> 

Und dann die Klasse zugreifen und den Stil in Ihrem CSS wie folgt ändern:

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

Allerdings können Sie Ändern Sie den Stil aller Elemente eines Tags, und da Sie nur einen Körper haben, können Sie dies einfach zum css hinzufügen:

Und nichts zu dem HTML hinzufügen. Bei wiederholenden Tags verwenden Sie jedoch die Klasse für einen Stil, der mehrmals verwendet wird, und die ID für einen Stil, der nur einmal auf einer Seite verwendet wird. Sie vergeben eine ID zu einem Tag wie folgt in der html:

<tag id="someid">