HTML5标签嵌套规则 - 小火柴的蓝色理想

php中文网
发布: 2016-05-20 16:50:29
原创
1371人浏览过

前面的话

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

 

立即学习前端免费学习笔记(深入)”;

分类

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

 

立即学习前端免费学习笔记(深入)”;

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

<span style="color: #000000;">base</span> 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 <span style="color: #000000;">object</span> ol output p pre progress q ruby s sam<span style="color: #000000;">p script section select small</span> span strong sub sup svg table template textar<span style="color: #000000;">ea time u ul var video wbr tex</span>t
登录后复制

  区块型元素(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 noscr<span style="color: #000000;">ipt object output progress q ruby s samp script select small span strong sub sup svg template textarea time u var vi</span>deo wbr text
登录后复制

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

audio canvas embed iframe img math <span style="color: #000000;">object</span> svg video
登录后复制

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

a audio(如果设置了controls属性) button embed iframe img(如果设置了usemap属性) input(如果type属性不为hidden) keygen <span style="color: #000000;">label object(如果设置了usemap属性) select textarea video (如</span>果设置了controls属性)
登录后复制

 

立即学习前端免费学习笔记(深入)”;

子元素

【1】子元素是流元素

<article>、<section>、<blockquote>、<li>、<dd>、<figcaption>、<div>、<main>、<td>
登录后复制

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

元素

<aside>、<nav>
登录后复制

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

<caption>
登录后复制

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

<form>
登录后复制

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

<header>、<footer>、<main>
登录后复制

  【1.5】子元素是流元素,但不包括

、区块型元素(sectioning content)、标题型元素(heading content)

<dt>、<th>
登录后复制

  【1.6】子元素是流元素,但不包括

、<address>、区块型元素(sectioning content)、标题型元素(heading content)

<address>
登录后复制

  【1.7】子元素是一个

元素,紧跟着流元素

<figure>
登录后复制

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

DeepBrain
DeepBrain

AI视频生成工具,ChatGPT +生成式视频AI =你可以制作伟大的视频!

DeepBrain 108
查看详情 DeepBrain
<filedset>
登录后复制

 

立即学习前端免费学习笔记(深入)”;

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

<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<p>、<pre class="brush:php;toolbar:false;">、<em>、<strong>、<small>、<s>、<cite>、<q>、<abbr>、<data>、<time><span style="color: #000000;">、<code>、<var>、<samp></span>、<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】子元素可以没有、可以是元素,也可以是transparent(以它的父元素允许的子元素为准)

<span style="color: #000000;"><object></span>
登录后复制

 

立即学习前端免费学习笔记(深入)”;

【4】无子元素

<hr>、<br>、<wbr>、<img  alt="HTML5标签嵌套规则 - 小火柴的蓝色理想" >、<embed>、<param>、<source>、<track>、<area>、<col>、<keygen>
登录后复制

  【4.1】子元素可以没有、可以是

  • 元素,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;ol&gt;、&lt;ul&gt;</pre>
    登录后复制
    </div> <p>  【4.2】子元素可以没有、可以是<dt>和<dd>元素,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;dl&gt;</pre>
    登录后复制
    </div> <p>  【4.3】子元素可以没有,可以是&lt;option&gt;、&lt;optgroup&gt;,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;span style=&quot;color: #000000;&quot;&gt;&lt;select&gt;&lt;/span&gt;</pre>
    登录后复制
    </div> <p>  【4.4】子元素可以没有,可以是&lt;option&gt;,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;optgroup&gt;</pre>
    登录后复制
    </div> <p>  【4.5】子元素可以没有、可以是&lt;option&gt;元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;datalist&gt;</pre>
    登录后复制
    </div> <p>  【4.6】子元素可以没有、也可以是<track>元素,也可以是<source>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;audio&gt;、&lt;video&gt;</pre>
    登录后复制
    </div> <p>  【4.7】子元素可以没有,也可以是<col>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;colgroup&gt;</pre>
    登录后复制
    </div> <p>  【4.8】子元素可以没有,可以是&lt;tr&gt;,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;tbody&gt;、&lt;thead&gt;、&lt;tfoot&gt;</pre>
    登录后复制
    </div> <p>  【4.9】子元素可以没有,可以是&lt;tr&gt;、<th>,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;tr&gt;</pre>
    登录后复制
    </div> <p> <p><span>立即学习“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)”; <p>【5】子元素是&lt;caption&gt;、&lt;colgroup&gt;、<thead>、<tfoot>、<tbody>,也可以是<script>、<template>元素 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;table&gt;</pre>
    登录后复制
    </div> <p> <p><span>立即学习“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)”; <p>【6】子元素是文本内容 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;textarea&gt;</pre>
    登录后复制
    </div> <p>  【6.1】子元素可以没有,也可以是文本内容 <div class="cnblogs_code"> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false;">&lt;option&gt;</pre>
    登录后复制
    </div> <p> <p><span>立即学习“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)”; <h3 id="anchor3">总结 <p><span class="Apple-tab-span">   关于每个元素的详细嵌套规则,上部分已经详细介绍。这部分主要对常用标签的嵌套规则进行总结 <p><span class="Apple-tab-span">  [注意]将鼠标移动到深灰色背景的文字上,title将显示该元素所包含的标签 <p>【1】<h1>、<h2>、<h3>、<h4>、<h5>、<h6>、<p>的子元素是<span style="background-color: #888888;" title="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">语句型元素 <p>【2】<header>、<footer>不可嵌套<header>、<footer> <p>【3】&lt;a&gt;的子元素是transparent(以它的父元素允许的子元素为准),但不包括<span style="background-color: #888888;" title="a audio(如果设置了controls属性) button embed iframe img(如果设置了usemap属性) input(如果type属性不为hidden) keygen label object(如果设置了usemap属性) select textarea video (如果设置了controls属性)">交互型元素(interactive content) <p>【4】&lt;form&gt;不可嵌套&lt;form&gt; <p>【5】&lt;button&gt;子元素是<span style="background-color: #888888;" title="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">语句型元素,不可嵌套<span style="background-color: #888888;" title="a audio(如果设置了controls属性) button embed iframe img(如果设置了usemap属性) input(如果type属性不为hidden) keygen label object(如果设置了usemap属性) select textarea video (如果设置了controls属性)">交互型元素(interactive content) <p>【6】&lt;caption&gt;不可嵌套&lt;table&gt; <p>【7】&lt;dt&gt;、&lt;th&gt;不可嵌套<header>、<footer>、<span style="background-color: #888888;" title="article aside nav section">区块型元素(sectioning content)、<span style="background-color: #888888;" title="h1 h2 h3 h4 h5 h6">标题型元素(heading content) <script type="text/javascript">// <![CDATA[ var all = document.getElementById('cnblogs_post_body').children; var select = []; for(var i = 1; i < all.length; i++){ if(all[i].getAttribute('id')){ if(all[i].getAttribute('id').match(/anchor\d+$/)){ select.push(all[i]); } } } var wheel = function(e){ e = e || event; var data; if(e.wheelDelta){ data = e.wheelDelta; }else{ data = -e.detail * 40; } for(var i = 0; i < select.length; i++){ if(select[i].getBoundingClientRect().top > 0){ return; } if(select[i].getBoundingClientRect().top <= 0 && select[i+1]){ if(select[i+1].getBoundingClientRect().top > 0){ change(oCon.children[i+2]) } }else{ change(oCon.children[select.length+1]) } } } document.body.onmousewheel = wheel; document.body.addEventListener('DOMMouseScroll',wheel,false); var oCon = document.getElementById("content"); var close = oCon.getElementsByTagName('span')[0]; close.onclick = function(){ if(this.innerHTML == '显示目录'){ this.innerHTML = '&times;'; this.style.background = ''; oCon.style.border = '2px solid #ccc'; oCon.style.width = ''; oCon.style.height = ''; oCon.style.overflow = ''; oCon.style.lineHeight = '30px'; }else{ this.innerHTML = '显示目录'; this.style.background = '#3399ff'; oCon.style.border = 'none'; oCon.style.width = '60px'; oCon.style.height = '30px'; oCon.style.overflow = 'hidden'; oCon.style.lineHeight = ''; } } for(var i = 2; i < oCon.children.length; i++){ oCon.children[i].onmouseover = function(){ this.style.color = '#3399ff'; } oCon.children[i].onmouseout = function(){ this.style.color = 'inherit'; if(this.mark){ this.style.color = '#3399ff'; } } oCon.children[i].onclick = function(){ change(this); } } function change(_this){ for(var i = 2; i < oCon.children.length; i++){ oCon.children[i].mark = false; oCon.children[i].style.color = 'inherit'; oCon.children[i].style.textDecoration = 'none'; oCon.children[i].style.borderColor = 'transparent'; } _this.mark = true; _this.style.color = '#3399ff'; _this.style.textDecoration = 'underline'; _this.style.borderColor = '#2175bc'; } // ]]></script>
  • HTML速学教程(入门课程)
    HTML速学教程(入门课程)

    HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

    下载
    来源:php中文网
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
    最新问题
    开源免费商场系统广告
    热门教程
    更多>
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号 技术交流群
    PHP中文网订阅号
    每天精选资源文章推送
    PHP中文网APP
    随时随地碎片化学习

    Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号