如何将CSS应用于HTML body元素?

Man*_*har 11 html javascript css xhtml css3

我试图摆脱这个:

document.body.className = "someclass";
Run Code Online (Sandbox Code Playgroud)

我想在CSS中这样做.

body.someclass {
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法在Firefox,chrome中使用它.

我在这里做错了吗?我们有什么办法可以将CSS类应用到body中吗?

Dom*_*nef 15

你在做两件事.您的JavaScript实际上是将"someclass"类分配给您的body元素,而您的CSS使用类"someclass"为body元素设置样式,它不会将类分配给它,这不是CSS的任务.你可以用普通(X)HTML这样做:

<body class="someclass">
Run Code Online (Sandbox Code Playgroud)


Ale*_*Mcp 8

部分问题是有效的XHTML <body>每个文档只能有一个元素.类通常归因于多次出现的元素(或者更确切地说,是要多次应用的样式).

由于只有一个身体,我从未添加过身份证或课程.风格:

body {
    background-color: red;
}
Run Code Online (Sandbox Code Playgroud)

如果您有要重用的类,请在选择器中使用逗号:

.coolStyle, body {
    font-weight: bold;
    color: red;
    text-decoration: blink;
}
Run Code Online (Sandbox Code Playgroud)

但是,所有这些都可能毫无意义,因为应用于<body>标记的任何内容都将由其子项继承,除非另有明确的样式.


Hul*_*ner 7

由于文档中只有一个主体,因此不需要主体类。除非您出于某种原因想通过更改 JavaScript 类来更改正文的样式。

如果你必须在 body 上放置一个类,请像这样:

<body class="someclass">
Run Code Online (Sandbox Code Playgroud)

然后访问该类并修改 css 中的样式,如下所示:

body.someclass{
  ...(style parameters goes here)
}
Run Code Online (Sandbox Code Playgroud)

但是,您可以更改标记的所有元素的样式,并且由于您只有一个主体,因此您可以简单地将其添加到 css 中:

body{
  ...(style parameters)
}
Run Code Online (Sandbox Code Playgroud)

并且不要在 html 中添加任何内容。然而,对于重复出现的标签,请使用 class 作为将使用多次的样式,并使用 id 作为仅在页面上使用一次的样式。您可以在 html 中为标签分配一个 id,如下所示:

<tag id="someid">
Run Code Online (Sandbox Code Playgroud)