HTML5 速览
<h1 id="html5-速览">HTML5 速览</h1><hr>
<h2 id="一-html5-元素分类">一. HTML5 元素分类</h2>
<blockquote>
<p>HTML赋值文档内容的结构和含义, 内容呈现由css样式控制</p>
</blockquote>
<h3 id="元素选用原则">元素选用原则</h3>
<ol>
<li>
<p>少亦可为多</p>
<p>标记只应该应内容对语义的需要使用. 有条经验法则是: 问问自己打算如何发挥一个元素的语义作用, 如果不能马上答出就不用这个元素</p>
</li>
<li>
<p>别误用元素</p>
<p>对内容进行标记时, 只宜将元素用于他们原定的用途, 不要创造自有的语义. 如果找不到适合自己所要含义的元素, 可以考虑使用通用元素( 如span或div ), 并且用全局属性class表明其含义. css样式不是类属性的唯一用途.</p>
</li>
<li>
<p>具体为佳</p>
<p>用来标记内容的元素应该选择最为具体的那个. 如果已有元素能恰当表明内容的类型, 就不要使用通用元素. html4中存在依赖div构建页面结构的倾向, 不好维护.</p>
</li>
<li>
<p>对用户不要想当然</p>
<p>呈现与语义分离原则的目的完全是为了让HTML文档更易于程序化处理, 所以随着HTML5的采用和实现愈加广泛, HTML内容的这种使用会日益增多. 如果不关心标记的准确性和一致性, 这样的HTML文档处理起来更为困难, 用户能为其找到的用户也很有限.</p>
</li>
</ol>
<h3 id="元素速览--">元素速览( *** )</h3>
<h4 id="文档和元数据元素"><strong>文档和元数据元素</strong></h4>
<blockquote>
<p>用途: 创建HTML文档的上层建筑, 向浏览器说明文档的情况, 定义脚本程序和css样式, 提供浏览器禁用脚本时要显示的内容</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>base</td>
<td>设置相对URL的基础</td>
<td>元数据</td>
<td>无变化</td>
</tr>
<tr>
<td>body</td>
<td>表示HTML文档的内容</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>DOCTYPE</td>
<td>表示HTML文档的开始</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>head</td>
<td>包含文档的元数据</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>html</td>
<td>表示文档中HTML部分的开始</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>link</td>
<td>定义与外部资源(通常是样式表或网站图标)的关系</td>
<td>元数据</td>
<td>有变化</td>
</tr>
<tr>
<td>meta</td>
<td>提供关于文档的信息</td>
<td>元数据</td>
<td>有变化</td>
</tr>
<tr>
<td>noscript</td>
<td>包含浏览器禁用脚本或不支持脚本时显示的内容</td>
<td>元数据, 短语</td>
<td>无变化</td>
</tr>
<tr>
<td>script</td>
<td>定义脚本语言, 可以是文档内嵌的也可以是外部文件中的</td>
<td>元数据, 短语</td>
<td>有变化</td>
</tr>
<tr>
<td>style</td>
<td>定义css样式</td>
<td>元数据</td>
<td>有变化</td>
</tr>
<tr>
<td>title</td>
<td>设置文档标题</td>
<td>元数据</td>
<td>无变化</td>
</tr>
</tbody>
</table>
<h4 id="文本元素">文本元素</h4>
<blockquote>
<p>用途: 为内容提供基本的结构和含义</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>a</td>
<td>生成超链接</td>
<td>短语, 流</td>
<td>有变化</td>
</tr>
<tr>
<td>abbr</td>
<td>缩略语</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>b</td>
<td>不带强调或着重意味地标记一段文字</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>br</td>
<td>表示换行</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>cite</td>
<td>表示其他作品的标题</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>code</td>
<td>表示计算机代码片段</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>del</td>
<td>表示从文档中删除的文字</td>
<td>短语, 流</td>
<td>新增</td>
</tr>
<tr>
<td>dfn</td>
<td>表示术语定义</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>em</td>
<td>表示着重强调的一段文字</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>i</td>
<td>表示与周边内容秉性不同的一段文字, 比如来自另一种语言的词语</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>ins</td>
<td>表示加入文档的文字</td>
<td>短语, 流</td>
<td>无变化</td>
</tr>
<tr>
<td>kbd</td>
<td>表示用户输入内容</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>mark</td>
<td>表示一段因为与上下文中另一词语相关而被突出显示的内容</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>q</td>
<td>表示引自他处的内容</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>rp</td>
<td>与ruby元素结合使用, 标记括号</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>rt</td>
<td>与ruby元素结合使用, 标记注音符号</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>ruby</td>
<td>表示位于表意文件上方或右方的注音符号</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>s</td>
<td>表示文字已不再准确</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>samp</td>
<td>表示计算机程序的输出内容</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>small</td>
<td>表示小号字体内容</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>span</td>
<td>一个没有自己语义的通用元素</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>strong</td>
<td>表示重要内容</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>sub</td>
<td>表示下标文字</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>sup</td>
<td>表示上标文字</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>time</td>
<td>表示时间或者日期</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>u</td>
<td>不带强调或着重意味地标记一段文字</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>var</td>
<td>表示程序或计算机系统中的变量</td>
<td>短语</td>
<td>无变化</td>
</tr>
<tr>
<td>wbr</td>
<td>表示可安全换行的地方</td>
<td>短语</td>
<td>新增</td>
</tr>
</tbody>
</table>
<h4 id="对内容分组">对内容分组</h4>
<blockquote>
<p>用途: 将相关内容分组</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>blockquote</td>
<td>表示引自他处的大段内容</td>
<td>流</td>
<td>无变化</td>
</tr>
<tr>
<td>dd</td>
<td>用在dl元素之中, 表示定义</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>div</td>
<td>一个没有任何既定语义的通用元素, 与span类似</td>
<td>流</td>
<td>无变化</td>
</tr>
<tr>
<td>dl</td>
<td>表示包含一系列术语和定义的说明列表</td>
<td>流</td>
<td>无变化</td>
</tr>
<tr>
<td>dt</td>
<td>用在dl元素之中, 表示术语</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>figcaption</td>
<td>发送figure元素的标题</td>
<td>无</td>
<td>新增</td>
</tr>
<tr>
<td>figure</td>
<td>表示图片</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>hr</td>
<td>表示段落级别的主题转换</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>li</td>
<td>用在ul, ol和menu元素中, 表示列表项</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>ol</td>
<td>表示有序列表</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>p</td>
<td>表示段落</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>pre</td>
<td>表示其格式应被保留的内容, 如code</td>
<td>流</td>
<td>无变化</td>
</tr>
<tr>
<td>ul</td>
<td>表示无序列表</td>
<td>流</td>
<td>有变化</td>
</tr>
</tbody>
</table>
<h4 id="划分内容">划分内容</h4>
<blockquote>
<p>用途: 划分内容, 让每个概念, 观点或主题彼此分隔开. 它们中有许多是新增的. 这些元素为分离元素的含义和外观做了大量基础性工作</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>address</td>
<td>表示文档或article的联系信息</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>article</td>
<td>表示一段独立的内容</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>aside</td>
<td>表示与周边内容稍有牵涉的内容</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>details</td>
<td>生成一个区域, 用户将其展开可以获得更多细节知识</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>footer</td>
<td>表示尾部</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>h1-h6</td>
<td>表示标题</td>
<td>流</td>
<td>无</td>
</tr>
<tr>
<td>header</td>
<td>表示首部</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>hgroup</td>
<td>将一组标题组织在一起, 以便文档大纲只显示其中第一个标题</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>nav</td>
<td>表示有意集中在一起的导航元素</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>section</td>
<td>表示一个重要的概念或主题</td>
<td>流</td>
<td>新增</td>
</tr>
<tr>
<td>summary</td>
<td>用在details元素中, 表示该元素内容的标题或说明</td>
<td>无</td>
<td>新增</td>
</tr>
</tbody>
</table>
<h4 id="制表">制表</h4>
<blockquote>
<p>用途: 制作显示数据的表格. 表格在html5中的主要变化时不能再用来控制页面布局, 这项工作转交给了css</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>caption</td>
<td>表示表格标题</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>col</td>
<td>表示一列</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>colgroup</td>
<td>表示一组列</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>table</td>
<td>表示表格</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>tbody</td>
<td>表示表格主体</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>td</td>
<td>表示单元格</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>tfoot</td>
<td>表示表脚</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>th</td>
<td>表示标题行单元格</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>thead</td>
<td>表示标题行</td>
<td>无</td>
<td>有变化</td>
</tr>
<tr>
<td>tr</td>
<td>表示一行单元格</td>
<td>无</td>
<td>有变化</td>
</tr>
</tbody>
</table>
<h4 id="创建表单">创建表单</h4>
<blockquote>
<p>用途: 创建html表单, 以便获取用户的输入数据</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>button</td>
<td>表示可用来提交或重置表单的按钮(或一般按钮)</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>datalist</td>
<td>定义一组提供给用户的建议值</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>fieldset</td>
<td>表示一组表单元素</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>form</td>
<td>表示html表单</td>
<td>流</td>
<td>有变化</td>
</tr>
<tr>
<td>input</td>
<td>表示用来收集用户输入数据的控件</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>keygen</td>
<td>生成一对公钥和私钥</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>label</td>
<td>表示表单元素的说明标签</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>legend</td>
<td>表示fieldset元素的说明性标签</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>optgroup</td>
<td>表示一组相关的option元素</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>option</td>
<td>表示供用户选择的一个选项</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>output</td>
<td>表示计算结果</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>select</td>
<td>给用户提供一组固定的选项</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>textarea</td>
<td>用户可以用它输入多行文字</td>
<td>短语</td>
<td>有变化</td>
</tr>
</tbody>
</table>
<h4 id="嵌入内容">嵌入内容</h4>
<blockquote>
<p>用途: 在html文档中嵌入内容</p>
</blockquote>
<table>
<thead>
<tr>
<th>元素</th>
<th>说明</th>
<th>类型</th>
<th>h5新增或变化</th>
</tr>
</thead>
<tbody>
<tr>
<td>area</td>
<td>表示一个用于客户端分区响应图的区域</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>audio</td>
<td>表示一个音频资源</td>
<td>无</td>
<td>新增</td>
</tr>
<tr>
<td>canvas</td>
<td>生成一个动态的图形画布</td>
<td>短语, 流</td>
<td>新增</td>
</tr>
<tr>
<td>embed</td>
<td>用插件在html文档中嵌入内容</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>iframe</td>
<td>通过创建一个浏览上下文在一个文档中嵌入另一个文档</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>img</td>
<td>嵌入图像</td>
<td>短语</td>
<td>有变化</td>
</tr>
<tr>
<td>map</td>
<td>定义客户端分区响应图</td>
<td>短语, 流</td>
<td>有变化</td>
</tr>
<tr>
<td>meter</td>
<td>嵌入数值在许可值范围内的图形表示</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>object</td>
<td>在html文档中嵌入内容. 也可用于生成浏览器上下文<br>和生成客户端分区响应图</td>
<td>短语, 流</td>
<td>有变化</td>
</tr>
<tr>
<td>param</td>
<td>表示将通过object元素传递给插件的参数</td>
<td>无</td>
<td>无变化</td>
</tr>
<tr>
<td>progress</td>
<td>嵌入目标进展或任务完成情况的图形表示</td>
<td>短语</td>
<td>新增</td>
</tr>
<tr>
<td>source</td>
<td>表示媒体资源</td>
<td>无</td>
<td>新增</td>
</tr>
<tr>
<td>svg</td>
<td>表示结构化矢量内容</td>
<td>无</td>
<td>新增</td>
</tr>
<tr>
<td>track</td>
<td>表示媒体的附加轨道</td>
<td>无</td>
<td>新增</td>
</tr>
<tr>
<td>video</td>
<td>表示视频资源</td>
<td>无</td>
<td>新增</td>
</tr>
</tbody>
</table>
<hr>
<h2 id="二-html5-不常见的全局属性">二. HTML5 不常见的全局属性</h2>
<blockquote>
<p>全局属性( global attribute ), 用来配置所有元素共有的行为</p>
</blockquote>
<h3 id="accesskey">accesskey</h3>
<p>设定选择元素的快捷键</p>
<pre><code class="language-html"><form action="">
Name: <input type="text" name="name" accesskey="t"><br>
Password: <input type="password" name="password" accesskey="m"><br>
<input type="submit" value="登录" accesskey="n">
</form>
</code></pre>
<p>按下 <strong>alt+t</strong>, 焦点便转移到name输入框上</p>
<h3 id="contenteditable">contenteditable</h3>
<p>这个是html5中新增的属性, 设置后用户能修改内容</p>
<pre><code class="language-html"><p contenteditable="true">今天天气很不错</p>
</code></pre>
<p>效果如下</p>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/contenteditable.png"></p>
<h3 id="dir">dir</h3>
<p>规定元素中文字的方向, 有效值有 ltr(从左到右), rtl(从右到左)</p>
<pre><code class="language-html"><p dir="rtl">今天天气很不错</p>
</code></pre>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/dir.png"></p>
<h3 id="spellcheck属性">spellcheck属性</h3>
<p>spellcheck属性用来表明浏览器是否应该对元素的内容进行拼写检查, 用于用户编辑文字时有帮助</p>
<hr>
<h2 id="三-html5新增元素体验">三. HTML5新增元素体验</h2>
<h3 id="文本元素-1">文本元素</h3>
<h4 id="del">del</h4>
<p>属性cite: 指定原因文档的url, datetime: 设置修改时间</p>
<pre><code class="language-html"><p>今天天气很 <del>不错</del> 糟糕</p>
</code></pre>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/del.png"></p>
<h4 id="mark">mark</h4>
<pre><code class="language-html">下面有段话是重点, <mark>这段话需要重点标注</mark>
</code></pre>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/mark.png"></p>
<h4 id="ruby-rt和rp">ruby, rt和rp</h4>
<p>rt: 用来标记注音符号, rp: 用来标记供不支持注音符号特性的浏览器显示在注音符号前后的括号</p>
<pre><code class="language-html"><rudy>魑<rp>(</rp><rt>chī</rt><rp>)</rp></rudy>
<rudy>魅<rp>(</rp><rt>mèī</rt><rp>)</rp></rudy>
<rudy>魍<rp>(</rp><rt>wǎng</rt><rp>)</rp></rudy>
<rudy>魉<rp>(</rp><rt>liǎng</rt><rp>)</rp></rudy>
</code></pre>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/ruby.png"></p>
<h4 id="time">time</h4>
<p>属性 datetime: 以RFC3339指明日期</p>
<p>属性 pudate: 如果是true, 表明time表示整个html或离该元素最近的article的发布日期</p>
<pre><code class="language-html">这篇博客发布的日期是 <time datetime="2020-12-6">2020-12-6</time>
</code></pre>
<h4 id="wbr">wbr</h4>
<p>表示超过当前浏览器窗口的内容适合再此换行, 换不换行还是由浏览器决定</p>
<h3 id="内容分组">内容分组</h3>
<h4 id="figcaption和figure">figcaption和figure</h4>
<pre><code class="language-html"><figure>
<figcaption>
说明 图1.1
</figcaption>
<code>
line1;
line2
</code>
</figure>
</code></pre>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/figure.png"></p>
<h3 id="划分内容-1">划分内容</h3>
<p>基本都是h5新增元素, 除了 summary 都是块元素, 按实际用途使用标签</p>
<h3 id="创建表单-1">创建表单</h3>
<h4 id="keygen">keygen</h4>
<p>这个特性还未得到很好的支持, 暂不建议使用</p>
<h4 id="output">output</h4>
<pre><code class="language-html"><form action="" oninput="res.value = number1.valueAsNumber * number2.valueAsNumber">
<fieldset>
<legend>output乘法</legend>
<input type="number" name="number1"> *
<input type="number" name="number2"> =
<output for="number1 number2" name="res"></output>
</fieldset>
</form>
</code></pre>
<p><img src="http://cdn.xiaxiang.tech/image/blogs/html/3/output.png"></p>
<h3 id="嵌入内容-1">嵌入内容</h3>
<h4 id="audio元素">audio元素</h4>
<pre><code class="language-html"><audio controls autoplay>
<source src="url.ogg">
<source src="url.mp3">
<source src="url.wav">
该音频不能被播放
</audio>
</code></pre>
<h4 id="embed">embed</h4>
<p>type指定内容的mime类型</p>
<pre><code class="language-html"><embed src="内容地址" type="application/x-shockwave-flash"
width="500" height="300" allowfullscreen="true">
</code></pre>
<h4 id="cavas">cavas</h4>
<p>这个涉及的知识点较多, 就不在这演示</p>
</div>
<div id="MySignature" role="contentinfo">
希望读者在看完后能提出意见, 点个赞, 鼓励一下, 我们一起进步. 加油 !!<br><br>
来源:https://www.cnblogs.com/xiaxiangx/p/14093574.html
頁:
[1]