web-dev-qa-db-ja.com

CSSをHTML本体要素に適用する方法は?

私はこれを取り除こうとしています:

document.body.className = "someclass";

これをCSSで実行したいと思います。

body.someclass {
.
.
.
}

残念ながら、Firefox、chromeではこれを機能させることができません。

私はここで何か間違ったことをしていますか? CSSクラスをbodyに適用する方法はありますか?

12
Manohar

あなたはそこで2つの異なることをしています。 JavaScriptは実際にはクラス「someclass」をbody要素に割り当てていますが、CSSはstylingクラス「someclass」のbody要素ですが、クラスは割り当てられません。 CSSのタスク。あなたはこのようにプレーンな(X)HTMLでそれをします:

<body class="someclass">
15
Dominik Honnef

問題の一部は、有効なXHTMLがドキュメントごとに1つの<body>要素しか持てないことです。クラスは通常、複数回発生する要素(または、複数回適用するスタイル)に起因します。

ボディは1つしかないため、IDやクラスを追加したことはありません。ただのスタイル:

body {
    background-color: red;
}

再利用したいクラスがある場合は、セレクターでコンマを使用します。

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

ただし、<body>タグに適用されたものはすべて、明示的にスタイル設定されていない限り、その子に継承されるため、これはすべて潜在的に無意味です。

8
Alex Mcp

ドキュメントには本文が1つしかないため、本文に関するクラスは必要ありません。なんらかの理由でJavaScriptクラスで変更して本文のスタイルを変更したい場合を除きます。

体にクラスを配置する必要がある場合は、次のようにします。

<body class="someclass">

次に、クラスにアクセスして、cssのスタイルを次のように変更します。

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

ただし、タグのすべての要素のスタイルを変更できます。本文は1つしかないため、これをcssに追加するだけで済みます。

body{
  ...(style parameters)
}

そして、htmlには何も追加しないでください。ただし、繰り返し発生するタグでは、ページで1回だけ使用されるスタイルにはclassを使用し、スタイルにはidを使用します。 HTMLで次のようなタグにIDを割り当てます。

<tag id="someid">
3
Hultner