是不是改变了HTML / CSS标准的身体?

时间:2011-03-14 21:55:59

标签: html css

我经常看到这样的事情:

<body>
  <div class="container">
  </div>
</body>

为什么不这样做:

<body class="container">
</body>

3 个答案:

答案 0 :(得分:4)

您可以完全自由地执行以下任何操作:

  • class元素添加idbody属性;
  • 直接将CSS应用于body元素,包含或不包含classid属性;或
  • 直接将CSS应用于html元素,但没有 classid属性以及some important caveats

其中任何一种都是CSS和HTML的完全合法用法。

为什么<div id="container"/>?多年来,许多CSS技术使用任意容器元素来简化概念,避免某些跨浏览器的不一致,或者因为它们太复杂而无法实现。一些更微妙的原因包括在旧版浏览器中,无法直接将CSS应用于html元素,并且这些元素存在(并且是)某些不寻常或受限制的属性 - 通常用于obvious reasons 。 (出于这个原因,他们是sometimes described as being "magic"。)

这些都是为了创造一种能够实现几乎任何中等复杂布局的情况,从一开始就用一个干净利落的容器元素开始不可避免地要容易得多。虽然这种做法最初是作为一种手段而结束的,但它很快就成了风景的一部分,现在很多开发人员都不会再考虑添加额外的标记。

答案 1 :(得分:2)

不,没有任何内容表明你不能在课堂上添加课程。

将一个类附加到正文实际上在各种CMS中很常见,并且非常方便用于主题或样式化特定页面。

从你的例子来看,如果你只是想把身体当作一个容器,为什么还要打扰这个课?应该只有一个body元素,所以只需在选择器中调用它。

答案 2 :(得分:1)

Walter,如果你需要将一个稍微不同的样式子集应用到带有自定义body标签的页面,这可能是有意义的。

使用包装div通常是出于某种表现的原因,并且在语义上没有意义;如果您的项目不需要它,请不要使用它。有时只使用body标签来包含页面对于某些布局来说太不灵活了,而且Jordan说一些旧的浏览器不能将CSS应用到根元素。