1-组成
HTML:Hypertext Mackup Language,是一种用语义标签****来组织网页结构与展示网页内容的标记语言。HTML文档包含三个部分:文档类型、头部部分和主体部分。
文档类型:用于识别HTML文档;
头部部分用于描述网页的信息,包括:
<title>: 描述文档的标题;
<meta>:描述文档的元信息;包含:字符编码(charset),内容摘要(description)、关键字(keywords)、作者(author)、组织机构(creator)、出版方(publisher)、生成页面的软件(generator)、页面表示的应用(application-name)、页面主题、请求源(referer)、CSS装置适配(viewport)、机器人行为(robots)、主题颜色(theme-color)、配色方案(color-scheme)等
<link>:描述文档引用的外部资源信息,资源类型---favicon、stylesheet;请求与加载时机---prefetch与preload;
<script>:文档的脚本代码;
<style>:文档的内部样式;
<base>:相对路径的基地址;
主体部分用于展示网页的内容,内容模型上可以分为:
- 块级元素:用于组织网页结构;
- 内联元素:用于组成块级元素的内容;
**备注:**使用display属性改变元素的视觉呈现,但不会改变元素的内容模型。如:span { display: block;}时,span里也不能嵌套div标签。
HTML5抛弃块级元素与内联元素的分类方式,使用更具体的分类方式,详见:developer.mozilla.org/en-US/docs/…。
2-主体内元素
1、 区域元素:通常可以根据页面的功能(设计目的),将页面结构分为不同的区域,HTML提供了一些标签来实现这种结构标记:
<header>:定义页面内容<body>与网页内独立成分<airticle>的介绍性内容区域,通常包含标题元素<h1>-<h6>;<nav>:定义页面主要导航链接功能的区域,不包含辅助链接;<main>:定义页面主要内容的区域,作为<body>的直接子元素,理想情况下,每个页面只有一个标签;<airticle>:定义页面内具有独立语义(语义上不依赖页面的其他元素)的相关内容的区域,例如:论坛帖子、文章、博客、用户评论等;<section>:定义页面内单个功能的内容块的区域,与<airticle>不同的是,其在语义上依赖上下文;值得注意的是:<airticle>可以拆分为不同的<section>,<section>可以拆分为不同的<airticle>;<aside>:定义页面内与主要内容区域<main>间接相关的附加信息的区域;<footer>:定义页面的底部页脚信息,例如:公司版权,联系信息,辅助链接等;<address>:定义个人、团体、组织的联系信息,如家庭住址,手机号,邮箱, 网址,地理位置等;
2、超链接元素: <a>;
3、按钮元素:<button>;
4、嵌入式元素:
- 图片标签:
<img>、<picture>、<source>、<figure>、<figcaption>,<map>、<area>; - 音视频标签:
<video>、<audio>、<source>、<track>; - 通用嵌入标签:
<iframe>、<object>、<embed>; - 图形标签:
<canvas>、<svg>;
5、表格元素: <table>、<thead>、<tbody>、<tfoot>,<caption>、<colgroup>、 <col>,<tr>、<th>、<td>;
6、表单元素:
-
<form>、<fieldset>、<legend>、<label> -
<input>、<output>; -
<select>、<optgroup>、<option>、<datalist>; -
<progress>、<meter>
7、内容元素:包括:
1)文本相关标签:含有语义的元素和不含语义的元素,包括:
含有语义的元素:
- 块级元素:标题标签
<h1>-<h6>,段落标签<p>,换行标签<br>; - 内联元素:缩写标签
<abbr>,定义标签<dfn>,语气强调标签<em>,文本强调标签<strong>,文本标记标签<mark>,词内换行标签<wbr>等;
不含有语义的元素:
- 块级元素:
<div>; - 内联元素:文本标签
<span>,时间标签<time>,斜体标签<i>,粗体标签<b>,下划线标签<u>,小号标签<small>,上标<sup>,下标<sub>;
2)引用标签:<blockqoute>、<q>、<cite>;
3)**编辑标签:**新增标签<ins>,删除标签<del>;
4)代码相关标签:代码块标签<code>,预格式化标签<pre>,变量标签<var>,键盘输 入标签<kbd>,简 单输出标签<samp>;
5)Ruby标签:<ruby>、<rp>、<rt>;
3-实体字符
某些构成元素标签语法的字符,如:<, >,",' , &不能在文本中使用,HTML使用实体字符表示这类字符,实体字符以&开头,结尾;结尾。
详情请见官方实体字符表:html.spec.whatwg.org/multipage/n…。
4-扩展HTML的语义
1)ARIA:Accessible Rich Internet Applications ,详情见developer.mozilla.org/en-US/docs/…
2)Microdata:详情见Web/HTML/Global_attributes/itemscope