超文本标记语言(英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。
HTML的历史
HTML的首个公开描述出现于一个名为HTML Tags 页面存档备份,存于互联网档案馆的文件中,由蒂姆·伯纳斯-李于1991年底提及。它描述18个元素,包括HTML初始的、相对简单的设计。它的最大特点就是支持超链接,点击链接就可以跳转到其他网页,从而构成了整个互联网。
2004年,网页超文本应用技术工作小组(WHATWG)开始开发HTML5,并在2008年与W3C共同交付,2014年10月28日完成标准化。
HTML 起手
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
</body>
</html>
-
<!DOCTYPE >
标签:文档类型,告诉浏览器如何解析网页 -
<html>
标签:网页的顶层容器,即标签树结构的顶层节点,也称为根元素(root element),其他元素都是它的子元素。一个网页只能有一个<html>
标签。lang属性,表示网页内容默认的语言。 -
<head>
标签:容器标签,用于放置网页的元信息。它的内容不会出现在网页上,而是为网页渲染提供额外信息。<head>
子元素作用 <meta>
设置网页的元数据 <link>
连接外部样式表 <title>
设置网页标题 <style>
放置内嵌的样式表 <script>
引入脚本 <noscript>
浏览器不支持脚本时,所要显示的内容 <base>
设置网页内部相对 URL 的计算基准 -
<meta>
标签:设置或说明网页的元数据,必须放在<head>
里面。一个<meta>
标签就是一项元数据,网页可以有多个<meta>
。<meta>
标签约定放在<head>
内容的最前面。上面代码中:第一个<meta>
标签表示网页采用 UTF-8 格式编码,第二个<meta>
标签表示网页在手机端可以自动缩放。<meta>
标签属性作用 name 属性 表示元数据的名字 content 属性 表示元数据的值 http-equiv 属性 用来覆盖 HTTP 回应的头信息字段(与content属性一起使用) charset属性 指定网页的编码方式 <meta charset="utf-8">
-
<title>
标签:用于指定网页的标题,会显示在浏览器窗口的标题栏。 -
<body>
标签:是一个容器标签,用于放置网页的主体内容。浏览器显示的页面内容,都放置在它的内部。它是<html>
的第二个子元素,紧跟在<head>
后面。
**ps:**怎样设置VS code的模板代码
settings——用户代码片段——搜索HTML.json——配置
body中常用章节标签
<body>
<header>页眉</header>
<main>
<article>
<h1>文章标题</h1>
<p>文章内容</p>
</article>
</main>
<footer>页尾</footer>
</body>
<header>
:表示一篇文章或者一个区块的头部<footer>
:表示网页、文章或章节的尾部<main>
:标签表示页面的主体内容,一个页面只能有一个<main>
<main>
是顶层标签,不能放置在<header>
、<footer>
、<article>
、<aside>
、<nav>
等标签之中。<article>
:表示页面里面一段完整的内容<aside>
:标签用来放置网页侧边栏或与网页、文章主要内容间接相关的部分<section>
:表示一个含有主题的独立部分,通常用在文档里面表示一个章节<nav>
:标签用于放置页面或文档的导航信息,往往放置在<header>
里面<h1>~<h6>
:HTML 提供了6个标签,用来表示文章的标题。按照标题的等级,一共分成六级。
body中常用文本标签
-
<div>
:一个通用标签,表示一个区块(division) -
<p>
:是一个块级元素,代表文章的一个段落(paragraph) -
<span>
:一个通用目的的行内标签(即不会产生换行),不带有任何语义 -
<br>
:换行符,单独使用的,没有闭合标签PS:HTML空格和换行处理规则
标签内容的头部和尾部的空格,一律忽略不计
标签内容里面的多个连续空格(包含制表符\t),会被浏览器合并成一个
浏览器还会将文本里面的换行符(\n)和回车符(\r),替换成空格
-
<hr>
:水平线分割线,单独使用的,没有闭合标签 -
<pre>
:一个块级元素,表示保留原来的格式(preformatted),即浏览器会保留该标签内部原始的换行和空格。 PS: HTML 标签在<pre>
里面还是起作用的。<pre>
只保留空格和换行,不会保留 HTML标签 **与code标签一起使用
-
<strong>
:以粗体显示内容,表示内容本身的重要性 -
<em>
:以斜体显示它包含的内容,表示语气上的强调 -
<code>
:一个行内元素,表示标签内容是计算机代码,浏览器默认会以等宽字体显示。 -
<blockquote>
:是一个块级标签,表示引用,cite属性,它的值是一个网址,表示引言来源,不会显示在网页上 *<q>
:是一个行内标签,也表示引用。它与<blockquote>
的区别,就是它不会产生换行。
HTML常用行级标签和块级标签
- 行级标签:可以和其他元素保持在同一行,不可以自动换行,但不能设置宽高
- 块级标签:不可以和其他元素保持在同一行(独占一行),可以自动换行,能设置宽高
- 嵌套规则:块标签可以套行标签,行标签不可以套块标签。P标签不要套块属性标签,可以套a,span,文本
块级标签 行级标签 <article>
<b>
<aside>
<em>
<blockquote>
<strong>
<div>
<i>
<dl>
<a>
<footer>
<br>
<form>
<img>
<h1>~<h6>
<q>
<header>
<span>
<hgroup>
<button>
<hr>
<input>
<ol>
<label>
<p>
<select>
<section>
<code>
<table>
<abbr>
<ul>
 
<video>
©
元素的属性
网页元素的属性(attribute)可以定制元素的行为,不同的属性会导致元素有不同的行为。元素属性的写法是 HTML 标签内部的“键值对”。
- 属性名与标签名一样,不区分大小写,lang和LANG是同一个属性。
- 属性名与属性值之间,通过等号=连接。属性值可以放在单引号或双引号之中,建议统一使用双引号。某些属性值可以不使用引号,但是建议不要这样写。
- 有些属性是布尔属性,属性值可以省略,只要添加了属性名,就表示打开该属性。如:checked、hidden
全局属性
全局属性(global attributes)是所有元素都可以使用的属性。
- id:属性是元素在网页内的唯一标识符,慎用,html不会纠错重复的id
- class:属性用来对网页元素进行分类。元素可以同时具有多个 class,它们之间使用空格分隔
- title:属性用来为元素添加附加说明。鼠标悬浮在元素上面时,会将title属性值作为浮动提示,显示出来。
- tabindex:控制 Tab 键遍历网页元素的顺序。
- 0,表示最后才被 tab 访问
- -1,表示不可被 tab 访问
- 正整数, 网页元素按照从小到大的顺序(1、2、3、……),参与 Tab 键的遍历。
- style:指定当前元素的 CSS 样式
- accesskey:指定网页元素获得焦点的快捷键
- hidden:一个布尔属性,表示当前的网页元素不再跟页面相关,因此浏览器不会渲染这个元素,所以就不会在网页中看到它
- dir:属性表示文字的阅读方向
- ltr:从左到右阅读,比如英语。
- rtl:从右到左阅读
- auto:浏览器根据内容的解析结果,自行决定
- contenteditable:contenteditable属性允许用户修改内容。它有两个可能的值。
- true或空字符串:内容可以编辑
- false:不可以编辑
HTML5验证器
- 安装检查工具validator
$ yarn global add node-w3c-validator
- 在VS code的终端通过命令使用
node-w3c-validator -i 被检查的HTMl文件.html
取消HTML标签默认属性样式
cssreset.css
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
*::before,
*::after {
box-sizing: border-box;
}
a {
color: inherit;
text-decoration: none;
}
input,
button {
font-family: inherit;
}
ol,
ul {
list-style: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}