HTML5——元素分类

引言

在 HTML5 中将元素进行了分类,用于详细地规定子元素在父元素中的合理性。具体的类别如下:

  1. 元数据内容(Metadata content)
  2. 流式内容(Flow content)
  3. 章节内容(Sectioning content)
  4. 标题内容(Heading content)
  5. 短语内容(Phrasing content)
  6. 嵌入内容(Embedded content)
  7. 交互式内容(Interactive content)

它们之间的关系如下:
在这里插入图片描述

元数据内容(Metadata content)

元数据内容被定义为用于设置其他内容的呈现或行为,或设置文档与其他文档的关系,以及传达其他信息的内容,它包括:

 base link meta noscript script style template title

流式内容(Flow content)

流式内容是指可以放在 body 中的,可以用于组织文档内容的元素,它包括:

a abbr address area (如果是 map 元素的后代)article aside audio b bdi bdo blockquote br 
button canvas cite code data datalist del details dfn dialog div dl em embed fieldset 
figure footer form h1 h2 h3 h4 h5 h6 header hgroup hr i iframe img input ins kbd label 
link (如果 在 body 中允许)main map mark MathML math menu meta (如果 itemprop 属性存在)
meter nav noscript object ol output p picture pre progress q ruby s samp script section 
select slot small span strong sub supSVG svg table template textarea time u ul var video
wbr 自主的 custom element 文本内容

章节内容(Section content)

章节内容是指用于定义标题和页面内容区域的元素,它包括:

article aside nav section

标题内容(Heading content)

标题内容是指用于定义章节标题内容的元素,它包括:

h1 h2 h3 h4 h5 h6 hgroup

短语内容(Phrasing content)

短语内容是指文档中可以以行内的形式展示的元素,它包括:

a abbr area (如果是 map 元素的后代)audio b bdi bdo br button canvas cite code data datalist 
del dfn em embed i iframe img input ins kbd label link(如果 在 body 中允许)map mark MathML 
math meta (如果 itemprop 属性存在)meter noscript object output picture progress q ruby s 
samp script select slot small span strong sub sup SVG svg template textarea time u var video 
wbr自主的 custom element 文本内容

嵌入内容(Embeded content)

嵌入内容是指需要引入其他资源的元素,它包括:

audio canvas embed iframe img MathML math object picture SVG svg video

交互式内容(Intersection content)

交互式内容是指会和用户尝试交互行为的元素,它包括:

a(如果 href 属性存在)audio(如果 controls 属性存在) button details embed iframe
img(如果 usemap 属性存在)input(如果type属性存在)label object(如果 usemap 属性
存在)select textarea video(如果 controls 属性存在)

总结

其实在了解这个之前,我也知道 p 标签中不要放 div 这种开发行为。但是,并没有这样写过也不知道这样写会发生什么。之所以 HTML5 规范规定了元素和子元素的合理性,是因为如果你写了不合理的子元素在相应的父元素中,浏览器最终会按照规范渲染,而不是按你写的代码渲染。所以平常开发中如果有和上述规范冲突的同学需要养成习惯。

发布了140 篇原创文章 · 获赞 16 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_42049445/article/details/103754868