2010-04-06 57 views
6

我想摆脱这样的:如何将CSS应用到HTML body元素?

document.body.className = "someclass"; 

我想这样做在CSS。

body.someclass { 
. 
. 
. 
} 

不幸的是,我无法在Firefox中使用这个工具。

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

回答

14

你正在做两件不同的事情。您的JavaScript实际上是将类“someclass”分配给您的body元素,而您的CSS是样式具有“someclass”类的body元素,它不会将类分配给它,这不是CSS的任务。你会做纯(X)HTML这样的:问题的

<body class="someclass"> 
+0

我以前用过这个,它工作。 +1 – pixeltocode 2010-04-06 12:11:35

+0

谢谢,我可以通过这种方式申请。 – Manohar 2010-04-08 06:36:01

6

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

因为只有一个身体,我从来没有添加过ID或一个类。只是风格:

body { 
    background-color: red; 
} 

如果你想重用的一类,在您选择使用逗号:

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

所有这一切都可能毫无意义,但是,因为应用到<body>标签什么将被其子女继承,除非另有明确说明。

+0

也许他以后用JavaScript改变了这个类,只是想以一种冗长的方式提供一个默认值?当然,我只是在那里做假设。 – 2010-04-06 04:15:51

+0

我认为重要的是要注意,只有一个身体标记,但是如果您链接到外部css文件,那么该文件可能会遇到几个不同的网页,需要不同的身体标记样式。如果你在头文件中使用文档级CSS样式,而不是在外部CSS文件中添加正文标签的类,那也是一种模拟。 – Nitrodist 2010-04-07 07:04:20

1

由于在文档中只有一个主体,因此不需要关于主体的类。除非你想通过改变JavaScript class来改变身体的风格。

如果你必须把一类的身体做这样的:

<body class="someclass"> 

,然后访问类和修改样式在你的CSS这样的:

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

但是你可以改变一个标签的所有元素的风格,因为你只有一个身体,你可以简单地将此添加到CSS:

body{ 
    ...(style parameters) 
} 

而不是添加任何东西到HTML。然而,使用重新定位的标签时,会使用类来使用多次使用的样式,并使用id作为仅在页面上使用一次的样式。你在html中为这样的标签分配一个id:

<tag id="someid"> 
相关问题