HTML5标签不是块级元素吗?

时间:2010-07-30 17:14:54

标签: html css html5

如果我有一个HTML元素<header>并通过CSS将一些边距应用于此HTML5元素:

header{
  margin:10px 0;
}

<header>元素与其余元素的间距不是10 px。但如果我修改我的CSS规则如下:

header{
  margin:10px 0;
  display:block;
}

然后<header>元素相应地间隔开。

所以,我的问题是,我是否需要手动设置display:block;才能将边距/填充设置为HTML5元素,例如<header>

PS:澄清一下,这不是生产代码/实时网站的一部分。我只是在试验HTML5标签。 :)

4 个答案:

答案 0 :(得分:6)

规范似乎将header列为块级元素http://www.whatwg.org/specs/web-apps/2007-10-26/multipage/section-documents0.html#block-level0

但是,由于HTML5尚未最终确定,因此用户代理供应商不会自动使其成为块级别是可以理解的。因此,您应该制定规则,将规范中定义为块的html 5元素设置为display:block;

答案 1 :(得分:1)

它们是块级别 - 只是没有被浏览器广泛支持。这是试图使用未完成的,前沿的草案规范中的特征的代价。

我暂时坚持使用HTML 4.01。

您可以将元素设置为在某些浏览器中呈现为块的样式。

在IE的旧版本中,您必须按照document.createElement('header')的方式执行某些操作,以使浏览器甚至可以识别它的样式(如果禁用JS,这将失败)。

答案 2 :(得分:1)

为了允许您在不支持它们的旧浏览器中使用HTML 5元素,您可以使用Remy Sharp的shiv脚本,它基本上使用javascript“创建”这些元素。

http://remysharp.com/2009/01/07/html5-enabling-script/

Rich Clark有一个非常有用的CSS重置,它包含HTML 5元素:

http://html5doctor.com/html-5-reset-stylesheet/

我出于各种原因在我的许多项目中使用HTML5,最重要的是因为我喜欢新玩具! (它还有助于在较小的级别上减少代码大小,我更喜欢更多的语义元素)

答案 3 :(得分:0)

是的。

至少在当前的浏览器环境中。

编辑: The spec表示“典型默认值”是阻止版,但目前的浏览器似乎并非如此。