如果我有一个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标签。 :)
答案 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)