视频加载失败

前端基础知识HTML5

3431 字
17 分钟
前端基础知识HTML5

前言#

学习HTML5,大概可以分为以下几个阶段:基础概念、标签,标签属性

学习目标#

本文最终学习HTML5的基础知识并且最终完成一个小慕医生的首页静态页面结构。

基础概念#

HTML5是一种超文本标记语言,主要是网页的骨架,并没有样式和动效功能,HTML5是HTML的第5个版本,关于之前的版本,不再赘述,已经属于上古时期的知识;关于HTML5,其实这个版本的也是很久就已经发布的,但是现在用的HTML5和最开始定义的HTML5已经有非常多的更新,相当于这个5不再是版本,而是HTML的一部分,原因就是前端发展太快,等到标准定义出来,再去实现,已经慢了一大截了

基础标签#

骨架标签#

index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body></body>
</html>

这是一个非常常规的html5骨架,其中:

  • <!DOCTYPE html>是文档类型声明DTD,HTML文件第一行必须是DTD(Document Type Definition ,文档类型声明)
  • lang 表示页面主要使用的语言。主要影响的是:搜索引擎理解页面语言,SEO、浏览器翻译等
  • meta是网页元信息,也就是来描述网页相关的内容,charset是描述网页字符集,一般写UTF-8就可以了,还有name为viewport的,viewport 可以简单理解成:浏览器用多大的虚拟区域来显示网页。width=device-width是网页宽度使用设备屏幕宽度。initial-scale=1.0是页面首次打开时,缩放比例为 100%。关于这点,只要理解跟响应式有关就可以,后续的web侧响应式再展开说
  • title标签用来设置网页的标题,文字会显示在浏览器的标签栏上
  • <html></html>、<head></head> 、<body></body> 是标签对,head内的主要都是网页的配置项

标题和段落标签#

标题标签有6个,从大到小:h1>h2>h3>h4>h5>h6,标题标签对SEO有影响,特别是H1对SEO权重最大,通常会把logo放在H1标签中

段落标签是p,字如其意,就是表达网页段落的意思,但是这个段落并不会前面空两格的段落,需要注意的是,标题和段落不能互相嵌套,非要这么写,是非常严重的语法错误,虽然在浏览器也能看到正常显示,但那是浏览器自动重新编排了,打开F12查看元素就能查看到

拓展:H5的一些特性#

HTML5存在空白折叠现象:文字和文字之间的多个空格、换行会被折叠成一个空格,标签“内壁”和文字之间的空格会被忽略;转义字符: 如果想在网页显示标签对,直接写肯定是不行的,这时候需要用到转义字符

常见转义字符(字符实体):

转义字符意义
<小于号
>大于号
&nbsp;空格(不会被折叠)
©版权符号©

列表标签#

列表标签可以分三种:无序列表、有序列表和定义列表

无序列表:无序列表是“没有刻意顺序”的列表;使用 ul标签,每个列表项都是li标签;ul的子标签只能是li,li里面可以放任何东西

有序列表:有序列表是“有刻意顺序”的列表;使用 ol标签,每个列表项都是li标签;ol标签有一个start属性:start属性值必须是一个整数,指定了列表编号的起始值:记住start是写在ol的,是ol的属性,start表示从哪个开始数字开始排序,type表示编号样式,value表示 某一个 li 强制指定编号

index.html
<ol start="3">
<li>我是有序列表1</li>
<li>我是有序列表2</li>
<li value="5">我是有序列表3</li>
<li>我是有序列表4</li>
</ol>
<!-- 只能值A -->
<ol type="A">
<li>我是有序列表1</li>
<li>我是有序列表2</li>
<li>我是有序列表3</li>
<li>我是有序列表4</li>
</ol>

效果:

  1. 我是有序列表1
  2. 我是有序列表2
  3. 我是有序列表3
  4. 我是有序列表4
  1. 我是有序列表1
  2. 我是有序列表2
  3. 我是有序列表3
  4. 我是有序列表4

还有一个属性reversed,也是ol的属性,reversed属性指定列表中的条目是否是倒序排列的,reversed属性不需要值,只需要写reversed单词即可

定义列表:dl、dt、dd,都是定义列表的标签,字如其意,就是定义一个列表,定义的一列的数据,dl表示一列,dt表示列的头部,dd表示列的内容项,dt和dd是平级的,从效果可以看出来,定义列表是有默认样式的,dt是头部,相当于标题,加粗,dd是项,空格两行

index.html
<dl>
<dt>北京</dt>
<dd>我国首都、政治中心、文化中心</dd>
<dt>上海</dt>
<dd>国际经济、金融、科技创新中心</dd>
<dt>深圳</dt>
<dd>经济特区,国际化都市</dd>
</dl>

效果:

北京
我国首都、政治中心、文化中心
上海
国际经济、金融、科技创新中心
深圳
经济特区,国际化都市
Tip

使用什么标签,不应该看样式,应该看语义,只要语义上有“解释说明”含义的文字,且为列表形态,应该使用定义列表

多媒体标签#

多媒体标签主要有三个img、video和audio,一个是插入图片,一个是插入视频和插入音频

img标签:有一个src属性,表示图片的地址;alt属性,表示文件加载失败的时候显示的文字;还有width、height属性,表示宽高,如果只设置一个,就等比例缩放,以下是src支持的图片格式:

格式说明
.bmpwindows画图软件默认保存的格式,位图
.gif支持动画(比如表情包)
.jpeg(.jpg)有损压缩图片,用于照片
.png便携式网络图像,用于logo、背景图形等,支持 透明和半透明
.svg矢量图片
.webp最新的压缩算法非常优秀的图片格式

video和audio属性值基本相同,这里放在一起,区别是一个播放视频一个播放音频,audio 支持mp3和ogg格式,video支持mp4、ogv、webm等格式,通常有以下属性

属性说明
autoplay自动播放
loop循环播放
controls显示播放控件

超链接标签#

a标签是html的超链接的标签,可以跳转到其他网页或者其他地址,href属性可以指定跳转到哪里;

将标签的target属性设置为blank,即可在新标签页中打开网页;

除了文字可以加上超链接,图片也可以设置超链接,只需要用a标签包裹img标签即可;

除此之外还可以在页面内做锚点:较长的页面,可以适当的给h系列标签添加id属性,它将成为 页面的“锚点”,网址后面添加#时,页面将自动滚动到锚点所在位置,其他页面的超级链接,可以链接到指定锚点;

指向exe、zip、rar等文件格式的链接,将自动成为下载链接;

有mailto<前缀的链接是邮件链接>,系统将自动打开Email相 关软件;有tel<前缀的链接是电话连接>,系统将自动打开拨号盘

Tip

通常target会和rel出现,rel有两个属性值:noopener noreferrer,noopener是 防止新页面控制原页面,noreferrer是不告诉目标网站“我是从哪里跳过来的”

语义化标签#

语义化标签最大作用就是SEO,利于搜索引擎的抓取,大致分为大纲标签(大语义)和语义化标签(小语义)

以下这些都是块级标签,都会换行

区块标签说明
<section>文档的区域,语义比div大
<article>文档的核心文章内容,会被搜索引擎主要抓取
<aside>文档的非必要相关内容,比如广告等
<nav>导航条
<header>页头
<main>网页核心部分
<footer>页脚

以下的都是行内标签,不会换行

标签说明
span是文本中的“区块”标签,本身没有任何特殊 的显示效果,可以结合CSS来丰富样式
b被加粗的文字,CSS已经替代了它的功能
u加下划线的文字,CSS已经替代了它的功能
i倾斜的文字,CSS已经替代了它的功能
strong代表特别重要文字
em代表强调文字
mark代表一段需要被高亮的文字
index.html
<span>span</span>
<b>b</b>
<u>u</u>
<i>i</i>
<strong>非常重要</strong>
<em>强调文字</em>
<mark>需要被高亮的文字</mark>

效果:

span b u i 非常重要 强调文字 需要被高亮的文字

figure和figcaption 是比较特别的:<figure> 表示一块独立的媒体/内容,<figcaption> 表示这块内容的说明文字,figure可以单独存在,figcaption 必须在figure内部,因为figcaption 本身就是对figure的一个描述,通常应该是 <figure> 的第一个或最后一个子元素

<figure>
<figcaption>我是对内容的描述,这是一张图片</figcaption>
<img src="./小慕医生/images/logo.png" alt="小慕" width="200px" />
</figure>

表单标签#

表单标签无非是from和input,内容比较多和复杂的input的type类型,表单的name一般强烈建议写上去,因为使用原生表单提交时,name时必须要写上的,因为这是提交数据时使用的字段名

from标签属性:

属性说明
action表示表单要提 交到的后台程序的网址
method属性表示表单提交 的方式,有get或post

input标签属性

属性说明
type表示input的类型,什么控件
value表示已经input填写的值
placeholder表示提示文本
disabled用户不能与元素交互,即“锁死”
name确定提交数据时使用的字段名

input控件

属性值说明
text单行 文本框
radio单选按钮,name为相同值时候就可以实现互斥,要有value属性值,向服务器提交的就是value值
checkbox复选框,同组复选框应该设置它们的name为相同值,要有value属性值,向服务器提交的就是name值+value值
password密码框
select标签表示下拉菜单,option是它内部的选项,select的属性name会被提交
textarea标签多行文本框,有rows和cols属性,用于定义多行文本框的行数和列数
button普通按钮
submit重置按钮
reset提交按钮
color颜色选择控件
date、time日期、时间选择控件
email电子邮件输入控件
file文件选择控件
number数字输入控件
range拖拽条
search搜索框
url网址输入控件

datalist控件

datalist控件可以为输入框提供一些备选项,当用户输 入的内容与备选项文字相同时,将会显示智能感应

<input type="text" list="province-list">
<datalist id="province-list">
<option value="山东">
<option value="山西">
<option value="广东">
<option value="广西">
<option value="河南">
<option value="河北">
<option value="湖南">
<option value="湖北">
</datalist>

示例:

<form action="" method="get">
<p>
文本框required:<input type="text" placeholder="请输入文本" required />
</p>
<p>
文本框disabled:
<input
type="text"
placeholder="请输入文本,disabled"
required
disabled
/>
</p>
<p>密码框:<input type="password" /></p>
<p>
<!-- 单选name要一致,value是提交的值 -->
<span>性别</span>
<label for="nan"
><input type="radio" value="man" name="1" id="nan" />男</label
>
<label for="nv">
<input type="radio" value="grid" name="1" id="nv" />女</label
>
</p>
<p>
<span>爱好组1</span>
<label for="1"
><input type="checkbox" id="1" name="aihao" value="chang" />唱</label
>
<label for="2"
><input type="checkbox" id="2" name="aihao" value="rab" />rab</label
>
<label for="3"
><input type="checkbox" id="3" name="aihao" value="tiao" />跳
</label>
<label for="4">
<input
type="checkbox"
id="4"
name="aihao"
value="lanqiu"
/>打篮球</label
>
</p>
<p>
<span>爱好组2</span>
<label for="5"
><input type="checkbox" id="5" name="aihao2" value="chang" />唱</label
>
<label for="6"
><input type="checkbox" id="6" name="aihao2" value="rab" />rab</label
>
<label for="7"
><input type="checkbox" id="7" name="aihao2" value="tiao" />跳
</label>
<label for="8">
<input
type="checkbox"
id="8"
name="aihao2"
value="lanqiu"
/>打篮球</label
>
</p>
<p>
下拉框:
<select name="payment">
<option value="alipay">支付宝</option>
<option value="wx">微信</option>
<option value="bank">网银</option>
</select>
</p>
<p>多行文本框:<textarea cols="50" rows="20"></textarea></p>
<p>date<input type="date" /></p>
<p>time<input type="time" /></p>
<p>email<input type="email" /></p>
<p>file<input type="file" /></p>
<p>number<input type="number" /></p>
<p>range<input type="range" /></p>
<p>搜索框<input type="search" /></p>
<p>只能输入网址<input type="url" /></p>
<input type="text" list="province-list" />
<datalist id="province-list">
<option value="山东"></option>
<option value="山西"></option>
<option value="广东"></option>
<option value="广西"></option>
<option value="河南"></option>
<option value="河北"></option>
<option value="湖南"></option>
<option value="湖北"></option>
</datalist>
<p><input type="button" value="按钮" /></p>
<p><input type="submit" value="登录" /></p>
<p><input type="reset" value="重置" /></p>
</form>

表格标签#

表格控件可以参考列表标签中的定义列表,一个书写的顺序是列,表格是按照行

一个示例

<table border="1">
<caption>
表格标题
</caption>
<thead>
<tr>
<th>表头1</th>
<th>表头2</th>
</tr>
</thead>
<tbody>
<tr>
<!-- 向下合并列 -->
<td colspan="2">第1行第1列</td>
<!-- <td>第1行第2列</td> -->
</tr>
<tr>
<td>第2行第1列</td>
<!-- 向下合并行 -->
<td rowspan="2">第2行第2列</td>
</tr>
<tr>
<td>第3行第1列</td>
<!-- <td>第3行第2列</td> -->
</tr>
</tbody>
</table>

效果:

表格标题
表头1 表头2
第1行第1列
第2行第1列 第2行第2列
第3行第1列

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

前端基础知识HTML5
https://f.youzi177.cn/posts/2026100501-qian-duan-ji-chu-html5/
作者
小封鸭
发布于
2026-10-05
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
小封鸭
小楼一夜听春雨,深巷明朝卖杏花
公告
欢迎来到我的博客。这里主要记录前端全栈和日常内容
分类
标签
最新动态
站点统计
文章
60
分类
3
标签
12
总字数
107,734
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录