关于HTML
一、W3C 简介
万维网联盟(World Wide Web Consortium,W3C),又称W3C理事会,是万维网的主要国际标准组织。
历史
万维网联盟(W3C)由蒂姆·伯纳斯-李于1994年10月离开欧洲核子研究中心(CERN)后成立,在欧盟执委会和国防高等研究计划署(DARPA)的支持下成立于麻省理工学院MIT计算机科学与人工智能实验室(MIT/LCS),DARPA曾率先推出了互联网及其前身ARPANET。
标准
为解决网络应用中不同平台、技术和开发者带来的不兼容问题,保障网络信息的顺利和完整流通,万维网联盟制定了一系列标准并督促网络应用开发者和内容提供者遵循这些标准。标准的内容包括使用语言的规范,开发中使用的导则和解释引擎的行为等等。W3C也制定了包括XML和CSS等的众多影响深远的标准规范。
但是,W3C制定的网络标准似乎并非强制而只是推荐标准。因此部分网站仍然不能完全实现这些标准。特别是使用早期所见即所得网页编辑软件设计的网页往往会包含大量非标准代码。
- W3C推荐标准
- CSS:层叠样式表
- DOM:文档对象模型
- HTML:超文本标记语言
- RDF:资源描述框架
- SMIL:同步多媒体集成语言
- SVG:可缩放向量图形
- WAI
- Widgets
- XHTML:可扩展超文本标记语言
- XML:可扩展标记语言
外部链接
可能需要翻墙
二、MDN 简介
MDN Web Docs(旧称Mozilla Developer Network、Mozilla Developer Center,简称MDN)是一个汇集众多Mozilla基金会产品和网络技术开发文档的免费网站。
历史
该项目始于2005年,最初由Mozilla公司员工Deb Richardson领导。自2006年以来,文档工作由Eric Shepherd领导。
网站最初的内容是由DevEdge提供,但在AOL收购Netscape后,DevEdge网站也宣布关闭。为此Mozilla基金会向AOL获取了DevEdge发布的内容,同时将DevEdge内容搬移到mozilla.org。
MDN本身有一个论坛,并在Mozilla IRC网络上有一个IRC频道#mdn。MDN由Mozilla公司提供服务器和员工的资助。
2016年10月3日发表的Brave网页浏览器将MDN作为其搜索引擎选项之一。
外部链接
三、HTML 所有标签列表
这里列出了所有标准化的HTML5元素,使用起始标签描述,按照功能分组。与列出所有标准化的、非标准化的、有效的、废弃的标签的HTML元素索引不同的是,该页只列出有效的HTML5元素。新网站应当只使用这里列出的元素。
根元素
<html> 代表 HTML 或 XHTML 文档的根。其他所有元素必须是这个元素的子节点。
文档元数据
<head> 代表关于文档元数据的一个集合,包括脚本或样式表的链接或内容。 <title> 定义文档的标题,将显示在浏览器的标题栏或标签页上。该元素只能包含文本,包含的标签不会被解释。 <base> 定义页面上相对 URL 的基准 URL。 <link> 用于链接外部的 CSS 到该文档。 <meta> 定义其他 HTML 元素无法描述的元数据。 <style> 用于内联 CSS。
脚本
<script> 定义一个内联脚本或链接到外部脚本。脚本语言是 JavaScript。 <noscript> 定义当浏览器不支持脚本时显示的替代文字。 <template> 通过 JavaScript 在运行时实例化内容的容器。
章节
<body> 代表 HTML 文档的内容。在文档中只能有一个 <body> 元素。 <section> 定义文档中的一个章节。 <nav> 定义只包含导航链接的章节。 <article> 定义可以独立于内容其余部分的完整独立内容块。 <aside> 定义和页面内容关联度较低的内容——如果被删除,剩下的内容仍然很合理。 <h1>,<h2>,<h3>,<h4>,<h5>,<h6> 标题元素实现了六层文档标题,<h1> 是最大的标题,<h6> 是最小的标题。标题元素简要地描述章节的主题。 <header> 定义页面或章节的头部。它经常包含 logo、页面标题和导航性的目录。 <footer> 定义页面或章节的尾部。它经常包含版权信息、法律信息链接和反馈建议用的地址。 <address> 定义包含联系信息的一个章节。 <main> 定义文档中主要或重要的内容。
组织内容
<p> 定义一个段落。 <hr> 代表章节、文章或其他长内容中段落之间的分隔符。 <pre> 代表其内容已经预先排版过,格式应当保留 。 <blockquote> 代表引用自其他来源的内容。 <ol> 定义一个有序列表。 <ul> 定义一个无序列表。 <li> 定义列表中的一个列表项。 <dl> 定义一个定义列表(一系列术语和其定义)。 <dt> 代表一个由下一个 <dd> 定义的术语。 <dd> 代表出现在它之前术语的定义。 <figure> 这个元素在 HTML5 中加入 代表一个和文档有关的图例。 <figcaption> 这个元素在 HTML5 中加入 代表一个图例的说明。 <div> 代表一个通用的容器,没有特殊含义。
文字形式
<a> 代表一个链接到其他资源的超链接 。 <em> 代表强调 文字。 <strong> 代表特别重要 文字。 <small> 代表注释 ,如免责声明、版权声明等,对理解文档不重要。 <s> 代表不准确或不相关 的内容。 <cite> 代表作品标题 。 <q> 代表内联的引用 。 <dfn> 代表一个术语包含在其最近祖先内容中的定义 。 <abbr> 代表省略 或缩写 ,其完整内容在 title 属性中。 <data> 关联一个内容的机器可读的等价形式 (该元素只在 WHATWG 版本的 HTML 标准中,不在 W3C 版本的 HTML5 标准中)。 <time> 代表日期 和时间 值;机器可读的等价形式通过 datetime 属性指定。 <code> 代表计算机代码 。 <var> 代表代码中的变量 。 <samp> 代表程序或电脑的输出 。 <kbd> 代表用户输入 ,一般从键盘输出,但也可以代表其他输入,如语音输入。 <sub>,<sup> 分别代表下标 和上标 。 <i> 代表一段不同性质 的文字,如技术术语、外文短语等。 <b> 代表一段需要被关注 的文字。 <u> 代表一段需要下划线呈现的文本注释,如标记出拼写错误的文字等。 <mark> 代表一段需要被高亮的引用 文字。 <ruby> 代表被ruby 注释 标记的文本,如中文汉字和它的拼音。 <rt> 代表ruby 注释 ,如中文拼音。 <rp> 代表 ruby 注释两边的额外插入文本 ,用于在不支持 ruby 注释显示的浏览器中提供友好的注释显示。 <bdi> 代表需要脱离 父元素文本方向的一段文本。它允许嵌入一段不同或未知文本方向格式的文本。 <bdo> 指定子元素的文本方向 ,显式地覆盖默认的文本方向。 <span> 代表一段没有特殊含义的文本,当其他语义元素都不适合文本时候可以使用该元素。 <br> 代表换行 。 <wbr> 代表建议换行 (Word Break Opportunity) ,当文本太长需要换行时将会在此处添加换行符。
编辑
<ins> 定义增加 到文档的内容。 <del> 定义从文档移除 的内容。
嵌入内容
<img> 代表一张图片 。 <iframe> 代表一个内联的框架 。 <embed> 代表一个嵌入 的外部资源,如应用程序或交互内容。 <object> 代表一个外部资源 ,如图片、HTML 子文档、插件等。 <param> 代表 <object> 元素所指定的插件的参数 。 <video> 代表一段视频 及其视频文件和字幕,并提供了播放视频的用户界面。 <audio> 代表一段声音 ,或音频流 。 <source> 为 <video> 或 <audio> 这类媒体元素指定媒体源 。 <track> 为 <video> 或 <audio> 这类媒体元素指定文本轨道(字幕) 。 <canvas> 代表位图区域 ,可以通过脚本在它上面实时呈现图形,如图表、游戏绘图等。 <map> 与 <area> 元素共同定义图像映射 区域。 <area> 与 <map> 元素共同定义图像映射 区域。 <svg> 定义一个嵌入式矢量图 。 <math> 定义一段数学公式 。
表格
<table> 定义多维数据 。 <caption> 代表表格的标题 。 <colgroup> 代表表格中一组单列或多列 。 <col> 代表表格中的列 。 <tbody> 代表表格中一块具体数据 (表格主体)。 <thead> 代表表格中一块列标签 (表头)。 <tfoot> 代表表格中一块列摘要 (表尾)。 <tr> 代表表格中的行 。 <td> 代表表格中的单元格 。 <th> 代表表格中的头部单元格 。
表单
<form> 代表一个表单 ,由控件组成。 <fieldset> 代表控件组 。 <legend> 代表 <fieldset> 控件组的标题 。 <label> 代表表单控件的标题 。 <input> 代表允许用户编辑数据的数据区 (文本框、单选框、复选框等)。 <button> 代表按钮 。 <select> 代表下拉框 。 <datalist> 代表提供给其他控件的一组预定义选项 。 <optgroup> 代表一个选项分组 。 <option> 代表一个 <select> 元素或 <datalist> 元素中的一个选项 <textarea> 代表多行文本框 。 <keygen> 代表一个密钥对生成器 控件。 <output> 代表计算值 。 <progress> 代表进度条 。 <meter> 代表滑动条 。
交互元素
<details> 代表一个用户可以(点击)获取额外信息或控件的小部件 。 <summary> 代表 <details> 元素的综述 或标题 。 <menuitem> 代表一个用户可以点击的菜单项。 <menu> 代表菜单。
外部链接
- 一系列 HTML5 文档。
- 所有 HTML 标签的参考,包括 HTML5 中不再有效的元素。
四、什么是空标签(即空元素)
一个空元素(empty element)可能是 HTML,SVG,或者 MathML 里的一个不可能存在子节点(例如内嵌的元素或者元素内的文本)的element。
HTML,SVG 和 MathML 的规范都详细定义了每个元素能包含的具体内容(define very precisely what each element can contain)。许多组合是没有任何语义含义的,比如一个 <audio> 元素嵌套在一个 <hr> 元素里。
在 HTML 中,通常在一个空元素上使用一个闭标签是无效的。例如, <input type="text"></input> 的闭标签是无效的 HTML。
在 HTML 中有以下这些空元素:
<area> <base> <br> <col> <colgroup> when the span is present <command> <embed> <hr> <img> <input> <keygen> <link> <meta> <param> <source> <track> <wbr>
Note: 在极少数情况下,空元素被错误地称为“无效元素”(void elements)。
五、什么是可替换标签(即可替换元素)
CSS 里,可替换元素(replaced element)的展现不是由CSS来控制的。这些元素是一类 外观渲染独立于CSS的 外部对象。 典型的可替换元素有 <img>、 <object>、 <video> 和 表单元素,如<textarea>、 <input> 。 某些元素只在一些特殊情况下表现为可替换元素,例如 <audio> 和 <canvas> 。 通过 CSS content 属性来插入的对象 被称作 匿名可替换元素(anonymous replaced elements)。
CSS在某些情况下会对可替换元素做特殊处理,比如计算外边距和一些auto值。
需要注意的是,一部分(并非全部)可替换元素,本身具有尺寸和基线(baseline),会被像vertical-align之类的一些 CSS 属性用到。