HTML5 语义化 -- main

作者: ghwaphon | 来源:发表于2016-12-11 21:36 被阅读1237次

早在 2013 年,<main> 元素就被正式添加到 W3C HTML 规范中,到目前为止,关于该元素的定义已经很完善了,所以现在是时候深入了解什么时候适合使用 <main> 元素了。那么,下面就开始吧。


W3C 规范

<main> 的主要目的是将 ARIA 的地标性作用 main 映射到 HTML 中的元素。这可以帮助那些屏幕阅读设备和辅助设备知道页面的主要内容是从哪里开始的。W3C 规范将 <main> 描述为 :

文档或应用程序的主要内容。主内容区域由与文档的中心主题或应用的核心功能的直接相关或扩展的内容组成。

自从 <main> 元素包含在 HTML 规定里之后,<body> 元素就还原成了它在 HTML4 中的定义。

The body element represents the content of the document.


细节

使用 <main> 元素值得注意的一点是,它在每个页面中只能使用一次。为什么要规定一个页面只能使用一次呢?虽然我对具体的细节并不感兴趣,但是有些观点看起来还是比较有意义的。

按照规格,如果你在一个文档中试图使用多个 <main> 标签,那么 W3C validator 会抛出错误。

<main> 元素的另外一个规定是,它不能作为 <article>, <header>, <aside>, <footer>, <nav> 的子元素节点。


使用

就像其它的 HTML5 新元素一样,并不是所有的浏览器都能够识别出 <main> ,并且给它加上预设的样式,你可能需要在自己的 CSS 文件中将它设置为块级元素。

    main {display:block;}

有的时候,为了支持一些较低版本的 IE 浏览器,你可能还需要使用 JavaScript 创建该元素。

<script type="text/javascript">document.createElement('main');</script>

当然了,你还可以使用 html5shiv.

使用 <main> 元素最简单的方式就是去替换那些 ID 或者 Class 值为 main 或者 content 之类的 <div> 元素。

所以,在实践中它应该是什么样子呢?下面是使用 <main> 元素之前的文档结构。

    <header>Header</header>
    <div id="content">Main Content</div>
    <footer>Footer</footer>

下面使用 <main> 元素改写文档。

    <header>Header</header>
    <main id="content">Main Content</main>
    <footer>Footer</footer>

好了,这是如此的简单,以至于一分钟不到我们就可以将文档改写成新潮的 HTML5 样式。


总结

正如你所见的,使用 <main> 元素是超级简单的,只需要花费几分钟的时间,所以现在真的到了将 <main> 带入到网站开发的过程中了。

相关文章

  • HTML的语义化

    笔记类文章 常用HTML5语义化标签 结构标签 header nav main article section a...

  • HTML5 语义化 -- main

    早在 2013 年,

    元素就被正式添加到 W3C HTML 规范中,到目前为止,关于该元素的定义已经很...

  • 爬css

    1、html5的新特性(1)新增的语义/结构化标签,如 footer nav main article等(2)新增...

  • HTML5标签语义化

    理解HTML5语义化:HTML5的语义化指的是用正确的标签包含正确的内容,标签语义化的好处就是结构良好,便于阅读,...

  • HTML5详解

    01-HTML5新增语义化标签 HTML5语义化标签的兼容 HTML5新增表单控件和表单属性 HTML5表单验证反...

  • 拒绝滥用html标签

    减少使用div class布局 不要滥用html标签div使用html5语义化标签 W3C标准

    一个页...

  • 语义化标签

    语义化结构示例: 语义标签,可用作侧边栏 main元素:

  • 遇到过的面试题

    html css 相关 什么是html5语义化?语义化带来的好处?举例你知道的语义化标签? css如何实现垂直居中...

  • HTML5十大新特性

    1.语义化标签 对比之前HTML没有体现结构语义化的标签,如: //表头的声明 HTML5提供语义化标签,如: 等...

  • H5新增语义化标签

    HTML5 新增标签 什么是语义化 新增了那些语义化标签header --- 头部标签nav ...

网友评论

    本文标题:HTML5 语义化 -- main

    本文链接:https://www.haomeiwen.com/subject/lnvpmttx.html