一、HTML是谁发明的?
HTML的英文全称是 Hypertext Marked Language,即超文本标记语言。HTML是由Web的发明者 Tim Berners-Lee和同事 Daniel W. Connolly于1990年创立的一种标记语言,它是标准通用化标记语言SGML的应用。用HTML编写的超文本文档称为HTML文档,它能独立于各种操作系统平台(如UNIX, Windows等)。使用HTML语言,将所需要表达的信息按某种规则写成HTML文件,通过专用的浏览器来识别,并将这些HTML文件“翻译”成可以识别的信息,即现在所见到的网页。
二、HTML 起手:
Emmet感叹号

三、常用的表章节的标签:
- h1~h6 :HTML 提供了6个标签,用来表示文章的标题。按照标题的等级,一共分成六级。
<h1>:一级标题<h2>:二级标题<h3>:三级标题<h4>:四级标题<h5>:五级标题<h6>:六级标题
- section :表示一个含有主题的独立部分,通常用在文档里面表示一个章节,比如
<article>可以包含多个<section>。<section>总是多个一起使用,一个页面不能只有一个<section>。<article> <h1>文章标题</h1> <section> <h2>第一章</h2> <p>...</p> </section> <section> <h2>第二章</h2> <p>...</p> </section> </article> - article :
<article>标签表示页面里面一段完整的内容,即使页面的其他部分不存在,也具有独立使用的意义,通常用来表示一篇文章或者一个论坛帖子。它可以有自己的标题(<h1>到<h6>)。<article> <h2>文章标题</h2> <p>文章内容</p> </article> aside :
<aside>标签用来放置与网页或文章主要内容间接相关的部分。网页级别的<aside>,可以用来放置侧边栏,但不一定就在页面的侧边;文章级别的<aside>,可以用来放置评论或注释。<body> <main>主体内容</main> <aside>侧边栏</aside> </body>main :
<main>标签表示页面的主体内容,一个页面只能有一个<main>。<body> <header>页眉</header> <main> <article>文章</article> </main> <aside>侧边栏</aside> <footer>页尾</footer> </body>header :
<header>标签可以用在多个场景,既可以表示整个网页的头部,也可以表示一篇文章或者一个区块的头部。如果用在网页的头部,就称为“眉页“。网站导航和搜索栏通常会放在<header>里面。<header> <h1>公司名称</h1> <ul> <li><a href="/home">首页</a></li> <li><a href="/about">关于</a></li> <li><a href="/contact">联系</a></li> </ul> <form target="/search"> <input name="q" type="search" /> <input type="submit" /> </form> </header>footer :
<footer>标签表示网页、文章或章节的尾部。如果用于整张网页的尾部,就称为“页尾”,通常包含版权信息或者其他相关信息。<body> <footer> <p>© 2018 xxx 公司</p> </footer> </body>
四、全局属性
- id :
id属性是元素在网页内的唯一标识符。比如,网页可能包含多个<p>标签,id属性可以指定每个<p>标签的唯一标识符。下面代码中,三个<p>标签具有不同的id属性,因此可以区分。id属性的值必须是全局唯一的,同一个页面不能有两个相同的id属性。另外,id属性的值不得包含空格。id属性的值还可以在最前面加上#,放到 URL 中作为锚点,定位到该元素在网页内部的位置。比如,用户访问网https://foo.com/index.html#bar的时候,浏览器会自动将页面滚动到bar的位置,让用户第一眼就看到这部分内容。<p id="p1"></p> <p id="p2"></p> <p id="p3"></p> - class :
class属性用来对网页元素进行分类。如果不同元素的class属性值相同,就表示它们是一类的。<p class="para"></p> <p></p> <p class="para"></p> title :
title属性用来为元素添加附加说明。大多数浏览器中,鼠标悬浮在元素上面时,会将title属性值作为浮动提示,显示出来。<div title="版权说明"> <p>本站内容使用创意共享许可证,可以自由使用。</p> </div>tabindex :网页通常使用鼠标操作,但是某些情况下,用户可能希望使用键盘,或者只有键盘可以用。因此,浏览器允许使用 Tab 键,遍历网页元素。也就是说,只要不停按下 Tab 键,网页的焦点就会从一个元素转移到另一个元素,选定焦点元素以后,就可以进行下一步操作,比如按下回车键访问某个链接,或者直接在某个输入框输入文字。
这里就有一个问题,按下 Tab 键的时候,浏览器怎么知道跳到哪一个元素。HTML 提供了
tabindex属性,解决这个问题。它的名字的含义,就是 Tab 的顺序(index)。tabindex属性的值是一个整数,表示用户按下 Tab 键的时候,网页焦点转移的顺序。不同的属性值有不同的含义。- 负整数:该元素可以获得焦点(比如使用 JavaScript 的
focus()方法),但不参与 Tab 键对网页元素的遍历。这个值通常是-1。 0:该元素参与 Tab 键的遍历,顺序由浏览器指定,通常是按照其在网页里面出现的位置。- 正整数:网页元素按照从小到大的顺序(1、2、3、……),参与 Tab 键的遍历。如果多个元素的
tabindex属性相同,则按照在网页源码里面出现的顺序遍历。<p tabindex="0">这段文字可以获得焦点。</p>
- 负整数:该元素可以获得焦点(比如使用 JavaScript 的
style :
style属性用来指定当前元素的 CSS 样式。<p style="color: red;">hello</p>hidden :
hidden是一个布尔属性,表示当前的网页元素不再跟页面相关,因此浏览器不会渲染这个元素,所以就不会在网页中看到它。<p hidden>本句不会显示在页面上。</p>contenteditable :HTML 网页的内容默认是用户不能编辑,
contenteditable属性允许用户修改内容。它有两个可能的值。true或空字符串:内容可以编辑false:不可以编辑<p contenteditable="true"> 鼠标点击,本句内容可修改。 </p>
五、常用的内容标签
- em :
<em>是一个行内标签,表示强调(emphasize),浏览器会以斜体显示它包含的内容。<p>我们<em>已经</em>讨论过这件事情了。</p> - div :
<div>是一个通用标签,表示一个区块(division)。它没有语义,如果网页需要一个块级元素容器,又没有其他合适的标签,就可以使用这个标签。<div class="main"> <div class="article"> <div class="title"> <h1>文章标题</h1> </div> </div> </div> - p :
<p>标签是一个块级元素,代表文章的一个段落(paragraph)。不仅是文本,任何想以段落显示的内容,比如图片和表单项,都可以放进<p>元素。<p>hello world</p> - hr :
<hr>用来在一篇文章中分隔两个不同的主题,浏览器会将其渲染为一根水平线。该标签是单独使用的,没有闭合标签。<p>第一个主题</p> <hr> <p>第二个主题</p> <pre>是一个块级元素,表示保留原来的格式(preformatted),即浏览器会保留该标签内部原始的换行和空格。浏览器默认以等宽字体显示标签内容。<pre>hello world</pre>- strong :
<strong>是一个行内元素,表示它包含的内容具有很强的重要性,需要引起注意。浏览器会以粗体显示内容。<p>开会时间是<strong>下午两点</strong>。</p> - code :
<code>标签是一个行内元素,表示标签内容是计算机代码,浏览器默认会以等宽字体显示。<code>alert()</code>的作用是让网页弹出一个提示框。 - ol :
<ol>标签是一个有序列表容器(ordered list),会在内部的列表项前面产生数字编号。列表项的顺序有意义时,比如排名,就会采用这个标签。<ol>标签内部可以嵌套<ol>标签或<ul>标签,形成多级列表。<ol> <li>列表项 A</li> <li>列表项 B <ol> <li>列表项 B1</li> <li>列表项 B2</li> <li>列表项 B3</li> </ol> </li> <li>列表项 C</li> </ol> - ul :
<ul>标签是一个无序列表容器(unordered list),会在内部的列表项前面产生实心小圆点,作为列表符号。列表项的顺序无意义时,采用这个标签。<ul> <li>列表项 A</li> <li>列表项 B</li> <li>列表项 C</li> </ul> - li :
<li>表示列表项,用在<ol>或<ul>容器之中。有序列表<ol>之中,<li>有一个value属性,定义当前列表项的编号,后面列表项会从这个值开始编号。<ol> <li>列表项 A</li> <li value="4">列表项 B</li> <li>列表项 C</li> </ol> - dl,dt,dd :
<dl>标签是一个块级元素,表示一组术语的列表(description list)。术语名(description term)由<dt>标签定义,术语解释(description detail)由<dd>标签定义。<dl>常用来定义词汇表。<dl> <dt>CPU</dt> <dd>中央处理器</dd> <dt>Memory</dt> <dd>内存</dd> <dt>Hard Disk</dt> <dd>硬盘</dd> </dl>
<dt>和<dd>都是块级元素,<dd>默认会在<dt>下方缩进显示。上面代码的默认渲染结果如下。
CPU
中央处理器
Memory
内存
Hard Disk
硬盘多个术语(<dt>)对应一个解释(<dd>),或者多个解释(<dd>)对应一个术语(<dt>),都是合法的。
<dl>
<dt>A</dt>
<dt>B</dt>
<dd>C</dd>
<dt>D</dt>
<dd>E</dd>
<dd>F</dd>
</dl>上面代码中,A和B有共同的解释C,而D有两个解释E和F。