HTML指的是超文本标记语言(HyperText Markup Language),是用来描述网页的一种语言。
HTML使用标签来描述网页。
编辑器与浏览器
HTML文档实际上是纯文本文档,所以一般的文本编辑器都可以使用。
我推荐使用Atom或者Visual Studio Code编辑器。
床前明月光
下面是一个HTML实例:
<!DOCTYPE html>
<html>
<head>
<title>静夜思(李白)</title>
<meta charset="utf-8">
</head>
<body>
<h1>静夜思</h1>
<p>李白</p>
<p>床前明月光,疑是地上霜。</p>
<p>举头望明月,低头思故乡。</p>
</body>
</html>
实例中的第一行<!DOCTYPE html>
声明这是一个HTML5(HTML的一个版本)文档。
<html>
标签是HTML页面的最根本的标签,页面的内容包含在此标签中。
<head>
标签用于定义文档的头部,它是所有头部元素的容器。在本例中,<title>
标签和<meta>
标签包含于<head>
标签中。
<title>
标签描述了文档的标题。
<meta>
标签定义了文档的元数据,本例中,通过charset
定义了文档的编码方式。
<body>
标签描述了页面的可见内容。
<h1>
标签定义了文档的一级标题。
<p>
标签定义了一个段落。
在浏览器中打开,显示如下:
在Chrome浏览器中,在页面上单击右键,选择“查看网页源代码”,即可查看网页源代码。
在Chrome浏览器中,在页面上单击右键,选择“检查”,即可进入开发人员工具箱,可以在这里查看HTML源代码。
标题与段落
HTML中标题通过<h1>
-<h6>
描述,共六级标题,其中<h1>
描述一级标题,<h2>
描述二级标题……<h6>
描述六级标题。
使用<p>
得到一个段落。
下面是一个例子:
<!DOCTYPE html>
<html>
<head>
<title>HTML中的标题</title>
<meta charset="utf-8">
</head>
<body>
<h1>这是一个一级标题</h1>
<h2>这是一个二级标题</h2>
<p>这是一个段落</p>
<h2>这是一个二级标题</h2>
<p>这是一个段落</p>
<h3>这是一个三级标题</h3>
<p>这是一个段落</p>
</body>
</html>
在浏览器中打开,显示如下(下图中左侧显示的是源代码):
<hr>
标签创建一条水平线。
<br>
标签在一个段落内换行。
下面是一个例子:
<!DOCTYPE html>
<html>
<head>
<title>HTML中的水平线与换行</title>
<meta charset="utf-8">
</head>
<body>
<h1>这是一个一级标题</h1>
<hr>
<h2>这是一个二级标题</h2>
<p>这是一个段落<br>
同一个段落中的换行</p>
<h2>这是一个二级标题</h2>
<p>这是一个段落</p>
</body>
</html>
浏览器中显示如下:
像<hr>
和<br>
这样的标签称为空标签,它们只有一个标签,没有区分开始标签和结束标签。之前讲的<p>
标签则不是空标签,它的开始标签是<p>
,结束标签是</p>
。
注释
在HTML中,将注释放在``之间。
注释帮助开发人员了解程序,浏览器会自动忽略他们。
<!DOCTYPE html>
<!--
title: 静夜思
time: 2018-2-27
author: mwang
-->
<html>
<head>
<title>静夜思(李白)</title>
<meta charset="utf-8">
</head>
<body>
<!-- 题目 -->
<h1>静夜思</h1>
<p>李白</p> <!-- 作者 -->
<p>床前明月光,疑是地上霜。</p>
<p>举头望明月,低头思故乡。</p>
</body>
</html>
在上面的例子中,有三个注释。分别是:
- 文档开头部分,是一个多行注释,写明了文档标题、时间和作者。
-
<h1>
标签上面,内容为题目。 - 第一个
</p>
标签右边,内容为作者。
浏览器会自动忽略注释,所以浏览器中显示如下:
链接
HTML使用超链接实现文档与文档的链接。
HTML使用<a>
标签描述超链接,它的语法如下:
<a href="url">链接文本</a>
例如,
<a href="html_start.html">静夜思</a>
在浏览器中,点击文字静夜思
会跳转到文件html_start.html
。
下面是一个实例:
<!DOCTYPE html>
<html>
<head>
<title>关于月亮的古诗</title>
<meta charset="utf-8">
</head>
<body>
<h1>关于月亮的古诗</h1>
<p>点击查看古诗<a href="html_start.html">静夜思</a>。</p>
</body>
</html>
在浏览器中显示如下:
点击链接后会跳转到指定的页面:
可以在标签中设置属性,属性可以在标签中添加附加信息,属性一般以名称="值"
的形式出现。
属性一般放在开始标签中。
介绍<a>
标签中的一个属性:target
。
在标签<a>
中使用target
属性指定该链接的打开方式,比如_blank
指定在新窗口中打开链接:
<a href="http://www.baidu.com" target="_blank">百度一下</a>
这个例子中,点击链接后会在新窗口中打开百度。
文本格式化
这里介绍5个文本格式化标签:<strong>
、<em>
、<sub>
、<sup>
和<del>
。
它们的作用如下:
-
<strong>
,加重语气。 -
<em>
,着重文字。 -
<sub>
,下标字。 -
<sup>
,上标字。 -
<del>
,删除字。
下面是一个实例:
<!DOCTYPE html>
<html>
<head>
<title>HTML文本格式化</title>
<meta charset="utf-8">
</head>
<body>
<h1>HTML文本格式化</h1>
<p>在HTML中,em表示内容的<em>着重点</em>,strong表示内容<strong>很重要</strong>。</p>
<p>sub表示<sub>下标</sub>字。</p>
<p>sup表示<sup>上标</sup>字。</p>
<p>del表示<del>删除</del>字。</p>
</body>
</html>
浏览器中显示如下:
列表
在HTML中,可以使用有序列表和无序列表。
有序列表是一个项目列表,由数字进行标记。
有序列表起始于<ol>
标签,结束于</ol>
标签,每一项使用<li>
标签。
下面是一个有序列表的例子:
<!DOCTYPE html>
<html>
<head>
<title>HTML中的有序列表</title>
<meta charset="utf-8">
</head>
<body>
<h1>HTML中的有序列表</h1>
<p>把大象放冰箱里分三步:</p>
<ol>
<li>把冰箱门打开。</li>
<li>把大象放进去。</li>
<li>把门关上。</li>
</ol>
</body>
</html>
在浏览器中打开,如下:
无序列表也是一个项目列表,由小圆点进行标记。
无序列表起始于<ul>
标签,结束于</ul>
标签,每项用<li>
标签。
下面是一个无序列表的例子:
<!DOCTYPE html>
<html>
<head>
<title>HTML中的无序列表</title>
<meta charset="utf-8">
</head>
<body>
<h1>HTML中的无序列表</h1>
<p>形容场面热闹壮观的词:</p>
<ul>
<li>锣鼓喧天</li>
<li>鞭炮齐鸣</li>
<li>红旗招展</li>
<li>人山人海</li>
</ul>
</body>
</html>
在浏览器中打开,如下:
表格
HTML中的表格使用<table>
标签定义。
表格中的行使用<tr>
标签定义,单元格使用<td>
标签定义。使用<th>
定义表头。
这是一个表格的例子:
<!DOCTYPE html>
<html>
<head>
<title>HTML中的表格</title>
<meta charset="utf-8">
</head>
<body>
<h1>HTML中的表格</h1>
<h2>四象限法</h2>
<p>四象限法是一种时间管理方法,它最重要的工具是下面这一张表格:</p>
<table border="1">
<tr> <!-- 第一行,表头 -->
<th></th>
<th>不重要</th>
<th>重要</th>
</tr>
<tr> <!-- 第二行 -->
<td>紧急</td>
<td>紧急但不重要</td>
<td>重要且紧急</td>
</tr>
<tr> <!-- 第三行 -->
<td>不紧急</td>
<td>不重要且不紧急</td>
<td>重要但不紧急</td>
</tr>
</table>
</body>
</html>
浏览器中显示如下:
在本例中,表格一共有三行,其中第一行作为表头,单元格使用了<th>
标签;剩下的两行,单元格使用了<td>
标签。
可以看到,表格中使用<tr>
描述行。
本例中<table>
标签中的border
属性确定了表格的边框宽度,默认情况下表格没有边框。
在操作表格中,有时需要“合并单元格”操作,这就需要使用rowspan
和colspan
属性了。
rowspan
属性定义一个单元格纵跨的表格行数,colspan
属性定义了一个单元格横跨的表格列数。比如<td rowspan="2">
表示该单元格纵向占两行,<td colspan="3">
表示该单元格横向占三列。
对于下面这个表格:
<table border="1">
<tr>
<th colspan="3">今天的幸福</th>
</tr>
<tr>
<th>小品名称</th>
<th>年份</th>
<th>演员</th>
</tr>
<tr>
<td rowspan="3">今天的幸福</td>
<td rowspan="3">2012</td>
<td>沈腾</td>
</tr>
<tr>
<td>艾伦</td>
</tr>
<tr>
<td>黄杨</td>
</tr>
</table>
它在浏览器中显示如下:
例子中,表头今天的幸福
横跨三列,所以属性为colspan="3"
;单元格今天的幸福
和2012
纵跨三行,所以属性为rowspan="3"
。
图像,音频,视频
在HTML中添加图像非常简单,使用<img>
标签。
<img src="media/rose.jpg" alt="玫瑰花" width="640" height="440">
在上面的语句中,一共使用了四个属性,分别是:
-
src
:指定图片的地址。 -
alt
:当图片无法加载时,显示此文本。 -
width
:指定图片的宽度。 -
height
:指定图片的高度。
在浏览器中显示如下:
当图片无法加载时,显示如下:
使用<audio>
在HTML文档中插入音频:
<audio controls>
<source src="media/A Himitsu - Adventures.mp3" type="audio/mpeg">
您的浏览器不支持 audio 元素。
</audio>
例子中,<audio>
表示这是一个音频文件,属性controls
表示显示播放控件,比如暂停、进度条和音量等等。
<source>
有两个属性:
-
src
:指定音频文件地址。 -
type
:指定音频文件格式。
在浏览器中显示如下:
使用<video>
在HTML文档中插入视频文件:
<video width="640" height="360" controls>
<source src="media/Adventures - A Himitsu (No Copyright Music).mp4" type="video/mp4">
您的浏览器不支持Video标签。
</video>
在上面的例子中,<video>
标签表明这是一个视频文件,例子中它有三个属性:
-
width
:视频的宽度。 -
height
:视频的高度。 -
controls
:显示控制组件。比如暂停、进度条和音量等等。
接下来的<source>
标签具有两个属性:
-
src
:视频文件的地址。 -
type
:视频文件的类型。
下面的您的浏览器不支持Video标签。
是当浏览器不支持<video>
标签时显示的内容。
在浏览器中显示如下:
区块
<div>
是块级元素,没有特定的含义,可以用作其他HTML元素的容器。
<span>
是内联元素,这意味着它不会在新的一行显示,可以用作文本的容器。
表单
使用<form>
标签定义一个表单:
<form>
...表单内容
</form>
<input>
是输入标签,它的属性type
定义输入类型,下面是一个例子:
<form>
用户名:<input type="text" name="username"><br>
密码:<input type="password" name="password">
</form>
在浏览器中显示如下(已经输入文字):
name
属性是文本域的标识。
同样,<input>
标签也可以作为单选框或者复选框:
<form>
<input type="radio" name="sex" value="male">Male<br>
<input type="radio" name="sex" value="female">Female<br>
<input type="checkbox" name="fruit" value="apple">苹果<br>
<input type="checkbox" name="fruit" value="banana">香蕉
</form>
这个表单中有两个单选框(radio
),两个复选框(checkbox
)。
两个单选框的name
属性一致,都是sex
,这意味着两个单选框是一组,只能选其中一个;两个复选的name
属性一致,表明他们是一组,但是可以按需选择。
在浏览器中显示如下(已经进行选择):
下拉列表使用<select>
标签进行定义,每个选项使用<option>
标签定义,属性selected
表示此选项被预选:
<form>
<select name="class">
<option value="1">1班</option>
<option value="2">2班</option>
<option value="3" selected>3班</option>
<option value="4">4班</option>
</select>
</form>
浏览器中显示如下:
文本输入框使用<textarea>
标签:
<textarea rows="10" cols="30">
请在这里输入您的描述。
</textarea>
属性rows
指定文本框的行数,cols
指定文本框的列数。
浏览器中显示如下:
最后,我们需要一个提交按钮,它在<input>
标签中的类型是<submit>
:
<form>
Username: <input type="text" name="user">
<input type="submit" value="Submit">
</form>
在浏览器中显示如下:
事实上,要让提交按钮正常工作,需要完成处理表单的页面,这里不会进行介绍。