ric*_*uck 28 html html5 specifications semantic-markup
在12月16日,该<main>
元素的HTML5扩展规范已经被称为编辑器草案提交给了W3C.摘要如下:
此规范是HTML5规范[HTML5]的扩展.它定义了用于标识文档主要内容区域的元素.除非本规范明确覆盖,否则HTML5规范中的所有规范性内容均旨在成为本规范的基础.
主要元素使用诸如"content"和"main"之类的id值来规范识别文档主要内容部分的通用实践.它还定义了一个HTML元素,它体现了WAI-ARIA [ARIA] landmark role = main的语义和功能.
例:
<!-- other content -->
<main>
<h1>Apples</h1>
<p>The apple is the pomaceous fruit of the apple tree.</p>
<article>
<h2>Red Delicious</h2>
<p>These bright red apples are the most common found in many
supermarkets.</p>
<p>... </p>
<p>... </p>
</article>
<article>
<h2>Granny Smith</h2>
<p>These juicy, green apples make a great filling for
apple pies.</p>
<p>... </p>
<p>... </p>
</article>
</main>
<!-- other content -->
Run Code Online (Sandbox Code Playgroud)
它有所有信息,我觉得我应该开始将它合并到网页中.据我所知,HTML5规范只是渐进式的,新功能已被"固定"到规范而没有升级.我想这意味着浏览器会在可能的时候开始实现它 - 问题是,这需要多长时间以及我如何知道所有浏览器都支持它?我现在应该像现在这样构建它并使用polyfill吗?
Que*_*tin 33
支持<main>
将非常像支持HTML 5中引入的任何其他新容器元素.
display: block
并为您提供视觉效果"when"取决于您需要什么级别的浏览器支持以及您对JS Shim的依赖程度.
Alo*_*hci 11
现在,我会小心使用它.
对于提案的未来,真正重要的是在浏览器中实现.特别是,因为<main>
是一个提议的块级元素,它将需要更改HTML5解析器实现,并为其提供main的默认ARIA角色.
如果没有默认的ARIA角色,那么元素就没有意义,尽管现在使用它是一种合理的方法.
解析器更改确实需要一点点谨慎.请记住,</p>
标签是可选的.现在假设您在"主要"内容之前决定要一段序言.你可以写:
<!DOCTYPE html>
<body>
<p> This is my page preamble ...
<main>
My main content ...
<div>
A story ...
</div>
</main>
</body>
Run Code Online (Sandbox Code Playgroud)
如果浏览器实现<main>
元素,<main>
标记将自动关闭<p>
元素,在DOM中,<p>
元素和<main>
元素将成为彼此的兄弟.该<div>
元素和它的内容将是一个子<main>
元素.即DOM将是:
HTML
+--HEAD
+--BODY
+--P
| +--This is my page preamble ...
+--MAIN
+--My main content ...
+--DIV
+--A story
Run Code Online (Sandbox Code Playgroud)
但是,现在在浏览器中,它<main>
成为元素的子元素<p>
,而"我的主要内容......"是<main>
元素的子元素,而<div>
元素则不是.即DOM具有以下结构:
HTML
+--HEAD
+--BODY
+--P
| +--This is my page preamble ...
| +--MAIN
| +--My main content ...
+--DIV
+--A story
Run Code Online (Sandbox Code Playgroud)
当然,现在,通过</p>
在序言段落中明确使用标签可以很容易地避免这种情况,但这对于粗心大意来说却是一个陷阱.
归档时间: |
|
查看次数: |
14274 次 |
最近记录: |