代码之家  ›  专栏  ›  技术社区  ›  Veera

HTML5标记不是块级元素吗?

  •  4
  • Veera  · 技术社区  · 16 年前

    如果我有HTML元素 <header> 并通过css对这个html5元素应用一些边距,如下所示:

    header{
      margin:10px 0;
    }
    

    这个 <页眉与页眉; 元素与其他元素的间距不是10 px。但如果我修改我的CSS规则如下:

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

    然后 <页眉与页眉; 元素被相应地隔开。

    所以,我的问题是,我需要手动设置吗? display:block; 为了将页边距/填充设置为HTML5元素,例如 <页眉与页眉; ?

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

    4 回复  |  直到 16 年前
        1
  •  6
  •   meder omuraliev    16 年前

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

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

        2
  •  1
  •   Quentin    16 年前

    它们是块级的,只是浏览器并不广泛支持。这是尝试使用未完成的、前沿的、草案规格的特性的代价。

    我暂时坚持使用HTML4.01。

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

    在旧版本的IE中,你必须按照 document.createElement('header') 让浏览器甚至可以识别它的样式(如果禁用JS,这将失败)。

        3
  •  1
  •   RichardTape    16 年前

    为了让您在不支持HTML5元素的旧浏览器中使用它们,您可以使用Remy Sharp的SHIV脚本,它基本上使用JavaScript“创建”那些元素。

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

    RichClark有一个非常有用的CSS重置,它包含了HTML5元素:

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

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

        4
  •  0
  •   Ryan Kinal    16 年前

    是的。

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

    编辑: The spec 说“典型的默认值”是块,但对于当前的浏览器来说似乎不是这样。

    推荐文章