HTML5标签嵌套规则详解【必看】


Posted in HTML / CSS onApril 26, 2016

目录[1]分类 [2]子元素 [3]总结

前面的话

在html5中,<a>元素的子元素可以是块级元素,这在以前是被认为不符合规则的。本文将详细介绍html5的标签嵌套规则

 

分类

html5出现之前,经常把元素按照block、inline、inline-block来区分。在html5中,元素不再按照display属性来区分,而是按照内容模型来区分,分为元数据型(metadata content)、区块型(sectioning content)、标题型(heading content)、文档流型(flow content)、语句型(phrasing content)、内嵌型(embedded content)、交互型(interactive content)。元素不属于任何一个类别,被称为穿透的;元素可能属于不止一个类别,称为混合的。

HTML5标签嵌套规则详解【必看】

元数据元素(metadata content)是可以被用于说明其他内容的表现或行为,或者在当前文档和其他文档之间建立联系的元素

base link meta noscript script style template title

流元素(flow content)是在应用程序和文档的主体部分中使用的大部分元素

a abbr address area(如果它是map元素的子元素) article aside audio b bdi bdo blockquote br button canvas cite code data datalist del dfn div dl em embed fieldset figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd keygen label main map mark math meter nav noscript object ol output p pre progress q ruby s samp script section select small span strong sub sup svg table template textarea time u ul var video wbr text

区块型元素(sectioning content)是用于定义标题及页脚范围的元素

article aside nav section

标题型元素(heading content)定义一个区块/章节的标题

h1 h2 h3 h4 h5 h6

语句型元素(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 keygen label map mark math meter noscript object output progress q ruby s samp script select small span strong sub sup svg template textarea time u var video wbr text

嵌入型元素(embedded content)是引用或插入到文档中其他资源的元素

audio canvas embed iframe img math object svg video

交互型元素(interactive content)是专门用于与用户交互的元素

a audio(如果设置了controls属性) button embed iframe img(如果设置了usemap属性) input(如果type属性不为hidden) keygen label object(如果设置了usemap属性) select textarea video (如果设置了controls属性)
 

子元素
【1】子元素是流元素

<article>、<section>、<blockquote>、<li>、<dd>、<figcaption>、<div>、<main>、<td>

【1.1】子元素是流元素,不包括<main>元素

<aside>、<nav>

【1.2】子元素是流元素,但不包括<table>元素

<caption>

【1.3】子元素是流元素,但不包括<form>元素

<form>

【1.4】子元素是流元素,但不包括<header>、<footer>、<main>元素

<header>、<footer>、<main>

【1.5】子元素是流元素,但不包括<header>、<footer>、区块型元素(sectioning content)、标题型元素(heading content)

<dt>、<th>

【1.6】子元素是流元素,但不包括<header>、<footer>、<address>、区块型元素(sectioning content)、标题型元素(heading content)

<address>

【1.7】子元素是一个<figcaption>元素,紧跟着流元素

<figure>

【1.8】子元素是一个<legend>元素,紧跟着流元素

<filedset>
 

【2】子元素是语句型元素

<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<p>、<pre>、<em>、<strong>、<small>、<s>、<cite>、<q>、<abbr>、<data>、<time>、<code>、<var>、<samp>、<kbd>、<sub>、<sup>、<i>、<b>、<u>、<mark>、<bdi>、<bdo>、<span>、<input>、<output>、<legend>、<label>

【2.1】子元素是语句型元素,但不包括和自身相同的元素

<dfn>、<progress>、<meter>

【2.2】子元素是语句型元素,但不包括交互型元素(interactive content)

<button>
 

【3】子元素是transparent(以它的父元素允许的子元素为准)

<ins>、<del>、<map>

【3.1】子元素是transparent(以它的父元素允许的子元素为准),但不包括交互型元素(interactive content)

<a>

【3.2】子元素可以没有、可以是<param>元素,也可以是transparent(以它的父元素允许的子元素为准)

<object>
 

【4】无子元素

<hr>、<br>、<wbr>、<img>、<embed>、<param>、<source>、<track>、<area>、<col>、<keygen>

【4.1】子元素可以没有、可以是<li>元素,也可以是<script>、<template>元素

<ol>、<ul>

【4.2】子元素可以没有、可以是<dt>和<dd>元素,也可以是<script>、<template>元素

<dl>

【4.3】子元素可以没有,可以是<option>、<optgroup>,也可以是<script>、<template>元素

<select>

【4.4】子元素可以没有,可以是<option>,也可以是<script>、<template>元素

<optgroup>

【4.5】子元素可以没有、可以是<option>元素

<datalist>

【4.6】子元素可以没有、也可以是<track>元素,也可以是<source>元素

<audio>、<video>

【4.7】子元素可以没有,也可以是<col>、<template>元素

<colgroup>

【4.8】子元素可以没有,可以是<tr>,也可以是<script>、<template>元素

<tbody>、<thead>、<tfoot>

【4.9】子元素可以没有,可以是<tr>、<th>,也可以是<script>、<template>元素

<tr>
 

【5】子元素是<caption>、<colgroup>、<thead>、<tfoot>、<tbody>,也可以是<script>、<template>元素

<table>
 

【6】子元素是文本内容

<textarea>

【6.1】子元素可以没有,也可以是文本内容

<option>
 

总结

关于每个元素的详细嵌套规则,上部分已经详细介绍。这部分主要对常用标签的嵌套规则进行总结

[注意]将鼠标移动到深灰色背景的文字上,title将显示该元素所包含的标签

【1】<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<p>的子元素是语句型元素

【2】<header>、<footer>不可嵌套<header>、<footer>

【3】<a>的子元素是transparent(以它的父元素允许的子元素为准),但不包括交互型元素(interactive content)

【4】<form>不可嵌套<form>

【5】<button>子元素是语句型元素,不可嵌套交互型元素(interactive content)

【6】<caption>不可嵌套<table>

【7】<dt>、<th>不可嵌套<header>、<footer>、区块型元素(sectioning content)、标题型元素(heading content)

以上这篇HTML5标签嵌套规则详解【必看】就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3 制作旋转的大风车(充满童年回忆)
Jan 30 HTML / CSS
css3实现简单的白云飘动背景特效
Oct 28 HTML / CSS
CSS3中的弹性布局em运用入门详解 1em等于多少像素
Feb 08 HTML / CSS
Html5游戏开发之乒乓Ping Pong游戏示例(三)
Jan 21 HTML / CSS
html5 canvas里绘制椭圆并保持线条粗细均匀的技巧
Mar 25 HTML / CSS
基于HTML5代码实现折叠菜单附源码下载
Nov 27 HTML / CSS
深入解析HTML5 Canvas控制图形矩阵变换的方法
Mar 24 HTML / CSS
HTML5中的进度条progress元素简介及兼容性处理
Jun 02 HTML / CSS
基于MUI框架使用HTML5实现的二维码扫描功能
Mar 01 HTML / CSS
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
Sep 19 HTML / CSS
CSS极坐标的实例代码
Jun 03 HTML / CSS
使用HBuilder制作一个简单的HTML5网页
Jul 07 HTML / CSS
HTML 5.1来了 9月份正式发布 更新内容预览
Apr 26 #HTML / CSS
HTML5本地数据库基础操作详解
Apr 26 #HTML / CSS
HTML5移动端手机网站开发流程
Apr 25 #HTML / CSS
基于html5绘制圆形多角图案
Apr 21 #HTML / CSS
浅析border-radius如何兼容IE
Apr 19 #HTML / CSS
如何利用input事件来监听移动端的输入
Apr 15 #HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
Apr 15 #HTML / CSS
You might like
如何在WIN2K下安装PHP4.04
2006/10/09 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
laravel 使用auth编写登录的方法
2019/09/30 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
js 处理URL实用技巧
2010/11/23 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
2019/04/01 Javascript
详解keep-alive + vuex 让缓存的页面灵活起来
2019/04/19 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
redis之django-redis的简单缓存使用
2018/06/07 Python
使用python3实现操作串口详解
2019/01/01 Python
Python中捕获键盘的方式详解
2019/03/28 Python
python实现从wind导入数据
2019/12/03 Python
Python bisect模块原理及常见实例
2020/06/17 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
Omio美国:全欧洲低价大巴、火车和航班搜索和比价
2017/11/08 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
学校门卫管理制度
2014/01/30 职场文书
初中学校军训方案
2014/05/09 职场文书
遵纪守法演讲稿
2014/05/23 职场文书
学生检讨书范文
2015/01/27 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android