前言

HTML(Hyper Text Markup Language)超文本标记语言,是用来描述网页的一种语言。

参考:小火柴的前端小册子


标签

标签有单标签和双标签

注意:HTML标签对大小写不敏感,但要全小写。


实体

HTML中某些字符是预留的,需要被替换为字符实体(如: 


全局属性(一共16个)

属性名 作用
contenteditable true/false 指定是否可以在浏览器里编辑内容
data-* 用于存储页面或应用程序的私有定制数据
draggable true/false/auto 用户是否可以拖动元素注意:链接和图像默认是可拖动的
spellcheck true/false 规定是否对元素进行拼写和语法检查,对拼写错误的单词会在其下方出现红线

语法规范

  • 文件应以 <!DOCTYPE ......> 首行顶格开始,推荐 <!DOCTYPE html>
  • 声明文档编码charset,必须是 head第一个子元素<meta charset="utf-8">
  • 根据页面内容和需求适当填写keywords和description<meta name="keywords" content="">
  • 引入CSS时必须指明rel=”stylesheet”,保证favicon可访问

结构

1.文档声明

2.文档头部

<head>其中的标签有<meta>、<title>、<base>、<link>、<style>和<script>这六个元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1.meta标签的四个属性
如果设置了charset,即将对网页使用的字符集作出声明HTML5
如果设置了name,它是一个文档级的元数据,将附着在整个页面上
如果设置了http-equiv,它是一个编译指令,即由服务器提供的来指示页面应如何加载
如果设置了itemprop,将定义一个用户自定义的元数据(未实现)

<meta charset="utf-8"/> 描述
<meta name="viewport" content="width=device-width, initial-scale=1.0,
maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> 视口(移动端使用)
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> IE浏览器渲染

2.base用于指定文档里所有相对链接规定默认URL或默认目标
<base href="http://cnblogs.com" target="_blank">

3.link标签指定了外部资源与当前文档的关系,具有属性href、rel、media、hreflang、type和sizes。
href和rel是常用的
<link rel="icon" href="ico.ico"/>

4.script可以通过添加async或者defer属性来让脚本不必同步执行
<script async src="myAsyncScript.js" onload="myInit()"></script>
<script defer src="myDeferScript.js" onload="myInit()"></script>

3.骨架结构

3个部分:文档声明、文档头部和文档主体

4.块级元素

<pre>元素表示预定义格式文本。空格和换行符都会显示出来,表示已排版的内容。

5.内联元素

em和strong分别表示强调和重要,i和b标签是斜体与加粗(em和strong也有效果)

s不精确文字常用于表示价格变动等

其他标签:小号<small>、上下标等 <sup> <sub>

6.结构元素

语义化<article>、<aside>、<nav>、<section>、<header>、<footer>、<main>

7.交互元素

功能性元素details、summary、dialog

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<details>主要用于描述文档或文档某个部分的细节,与<summary>配合使用可以为<details>定义标题。
标题是可见的,用户点击标题时,显示出details。
该标签仅有一个open属性,用来定义details是否可见(默认为不可见状态)
[注意]这两个标签只有chrome和opera支持

<details>
<summary>Copyright 2015.</summary>
<p>小火柴的蓝色理想</p>
</details>

----------------------
<dialog>
该标签只有一个open属性,用来定义对话框是否可见(默认为不可见)
[注意]只有chrome和opera支持

8.内容模型

​ HTML标签在HTML5中内容模型拓展到了7类,包括元数据型、区块型、标题型、文档流型、语句型、内嵌型、交互型。但即使是这7个类别也没有完全覆盖所有元素的所有情况,元素可以不属于任何一个类别,被称为穿透的;很多元素可能属于不止一个类别,称为混合的。

标签

a标签:是超文本锚点,可以链接到一个新文件、用id属性指向任何元素。

1
2
3
4
5
6
7
8
9
10
<!-- 属性href -->
<!--1.链接地址-->
<a href="http://www.baidu.com">百度</a>
<!--2.下载地址:download指定下载的文件名-->
<a href="./vue.js" download="vue">test</a>
<!--3.锚点-->
<a href="#test">目录</a>
<div id="test"></div>

<!-- target:target属性表示链接打开方式 -->

img标签

1
2
1、src:地址
2、alt:图像替代文本,供探索引擎抓取使用

列表

定义列表:dl dt dd,dd描述列表dl元素,只能作为子元素出现,并且必须跟着一个dt元素

<iframe>

​ src 规定在内联框架中显示的文档的URL

 name 规定内联框架的名称,用于在javascript中引用元素或作为链接的目标

 height 规定iframe的高度

 width 规定iframe的宽度

1
2
3
4
5
<iframe id = "frameID" name="frameName" src="top.html"></iframe>
<script>
var frameID = document.getElementById('frameID');
var frameWindow = frameID.contentWindow;
var frameDocument = frameID.contentDocument;

表格

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>table自适应表格</title>
<style>
body {
filter: invert(1) hue-rotate(270deg);
}
table {
width: 100%;
text-align: center;
border-spacing: 0;/**设置相邻单元格的边框间的距离**/
border-collapse: collapse;/**边框会合并为一个单一的边框**/
color:#5a5a5a;
table-layout: fixed;/**固定table表格**/
}
table thead {
background-color: #d9edf7;
}
table td,table th{
border:1px solid #ccc;
overflow: hidden;/**溢出隐藏**/
white-space: nowrap;/**不换行**/
text-overflow: ellipsis;/**溢出不可见部分使用...代替**/


}
</style>
</head>
<body>
<table>
<caption>我是表格标题</caption>
<!--表头-->
<thead>
<tr>
<th>姓名</th>
<th>年龄</th>
<th>性别</th>
<th>出生年月</th>
</tr>
</thead>
<!--表内容-->
<tbody>
<tr>
<td>久伴</td>
<td>24</td>
<td>男</td>
<td>1996年8月22日</td>
</tr>
</tbody>
</table>
</body>
</html>

多媒体

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!-- 音频 -->
<!--
autoplay 自动播放
controls 显示控件
loop 循环播放
preload 音频在页面加载时进行加载,并预备播放(若使用autoplay,则忽略该属性)
src 要播放的音频的URL
-->
<audio controls autoplay loop muted src="song.mp3">
<source src="song.mp3" type="audio/mp3" />
</audio>

<!-- 视频 -->
<!--
autoplay 自动播放
controls 显示控件
height    播放器高度
width     播放器宽度
loop 循环播放
preload 视频在页面加载时进行加载,并预备播放(若使用autoplay,则忽略该属性)
preload="none" //当页面加载后不载入视频
preload="auto" //当页面加载后载入整个视频
preload="meta" //当页面加载后只载入元数据
src 要播放的视频的URL
poster     规定视频下载时显示的图像,或者在用户点击播放按钮前显示的图像
-->
<video width="320" height="240" controls="controls">
<source src="movie.mp4" type="video/mp4" />
</video>


<!--
<source>:为<video>和<audio>提供媒介资源
media 规定媒体资源的类型(没有浏览器支持)
src  规定媒体文件的URL
type 规定媒体资源的MIME类型
-->

多媒体api

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
canPlayType()
/*
检测浏览器是否能播放指定的音频或视频类型,返回值为下列之一:
'probable':浏览器最可能支持该类型
'maybe':浏览器也许支持该类型
'':浏览器不支持该类型
*/

load()
/*
重新加载音频或视频元素,用于在更改src来源或其他设置后对音频或视频元素进行更新
*/

play()
/*
开始播放音频或视频
*/

pause()
/*
暂停当前播放的音频或视频
*/