文章目录
- 1 前言
- 2 HTML5
-
- 2.1 HTML简介
- 2.2 HTML基本页面
- 2.3 文本标签
-
- 2.3.1 排版标签
- 2.3.2 格式化文本标签
- 2.4 语义标签
-
- 2.4.1 无语义标签
- 2.4.2 语义标签
- 2.5 多媒体标签
-
- 2.5.1 图像标签
- 2.5.2 音频标签
- 2.5.3 视频标签
- 2.6 超链接
- 2.7 列表标签
- 2.8表格标签
- 2.9 表单标签
-
- 2.9.1 汇总表格标签
- 2.9.2 input标签
- 2.9.3 按钮标签
- 2.9.4 下拉菜单标签
- 2.9.5 文本域标签
- 2.9.6 label标签
- 2.9.7 datalist标签
- 2.9.8 keygen(了解)
- 2.9.9 output(了解)
- 2.10 框架标签
- 2.11 头部标签
- 2.12 字符实体
- 2.13 Emmet语法
- 2.14 进度条标签
- 2.15 HTML设置背景(扩展)
- 2.16 案例
- 3 CSS3
-
- 3.1 CSS写法
- 3.2 基础选择器
- 3.3 字体
-
- 3.3.1 字体属性分类
- 3.3.2 通用族字体风格
- 3.3.3 字体优先级
- 3.3.4 font复合属性
- 3.4 文本样式
- 3.5 补充知识
-
- 3.5.1 颜色取值
- 3.5.2 水平居中
- 3.6 CSS复合选择器
-
- 3.6.1 复合选择器简介
- 3.6.2 后代选择器
- 3.6.3 子选择器
- 3.6.4 并集选择器
- 3.6.5 伪类选择器
- 3.7 CSS元素显示模式
-
- 3.7.1 显示模式简介
- 3.7.2 块元素
- 3.7.3 行内元素
- 3.7.4 行内块元素
- 3.7.5 总结
- 3.7.6 元素显示模式转换
- 3.8 CSS背景
-
- 3.8.1 背景的设置
- 3.8.2 设置背景方位
- 3.8.3 背景附着
- 3.8.4 背景复合写法
- 3.8.5 透明度
- 3.8.6 背景总结
- 3.9 CSS三大特性
-
- 3.9.1 层叠性
- 3.9.2 继承性
- 3.9.3 优先级
- 3.10 盒子模型
-
- 3.10.1 盒模型概述
- 3.10.2 边框
- 3.10.3 内边距
- 3.10.4 外边距
- 3.10.5 圆角边框
- 3.10.6 盒子阴影
- 3.11 浮动
-
- 3.11.1 浮动概述
- 3.11.2 浮动脱标
- 3.11.3 行显示
- 3.11.4 浮动元素具有行内块的特性
- 3.11.5 网页布局常见
- 3.11.6 发人深省的问题
- 3.11.7 清除浮动
- 3.12 常见的图片格式
- 3.13 一些注意事项
-
- 3.13.1 CSS属性书写顺序问题
- 3.13.2 页面布局的整体思路
- 3.14 定位
-
- 3.13.1 定位概述
- 3.13.2 五种定位模式
- 3.13.3 子绝父相
- 3.13.4 定位算法
- 3.13.5 定位拓展
- 3.15 阶段性总结
- 3.16 元素的显示和隐藏
-
- 3.16.1 display
- 3.16.2 visibility
- 3.16.3 overflow
- 3.17 精灵图
-
- 3.17.1 精灵图概述
- 3.17.2 使用精灵图
- 3.18 字体图标
- 3.19 CSS三角
- 3.20 CSS用于界面样式
-
- 3.20.1 鼠标样式
- 3.20.2 表单样式
- 3.20.3 行内(块)元素对齐
- 3.20.4 省略号溢出文字显示
- 3.21 常用的布局技巧
- 3.22 CSS初始化
- 3.23 CSS3新特性
-
- 3.23.1 属性选择器
- 3.23.2 假结构选择器
- 3.23.3 伪元素选择器
- 3.23.4 盒子模型
- 3.23.5 滤镜
- 3.23.6 计算
- 3.23.7 过渡
- 3.23.8 2D转换
- 3.23.9 动画
- 4 服务器部署
-
- 4.1 Web服务器
- 4.2 远程服务器
- 4.3 免费服务器
- 5 前端素材
1 前言
编写前端网站的开发工具有很多种,垃圾可以用记事本,快到可以用Vscode、Webstorm、Sublime、Dreamweaver、Hbuilder。
若为学生党且领取了捷贝斯公司的免费使用旗下产品资格,可以考虑使用Webstorm。
如果是学生党,懒得搞花里胡哨,可以使用下面两款产品。
Visual Studio Code - Code Editing. Redefined
Brackets - 一个现代的开源代码编辑器,了解网页设计。
如果是美工或者学校作业要求,可以使用Dreamweaver。
:HTML5和CSS3: 一幅长文细学HTML5和CSS3源码 (gitee.com)
:更新中
2 HTML5
在这一章的学习中,我们会讲述HTML5新增的特性。HTML5并不是一种新的语言,而是HTML语言的第五次重大修改版本。现如今很多主流浏览器都支持H5如chrome、firefox、safari。IE9及以上支持h5,IE8以下则不支持。
H5改变了用户与文档的交互方式。在以前的传统的HTML中,我们使用的是flash来插入多媒体。但在H5中,它兼收了flash的一些特性。
相对于H4来说,H5抛弃了许多不合理的标记和属性,新增了一些标记和属性。
H5增加了许多新的语义使得代码的可读性更好。其他的如二维三维变化、特效、本地存储特效等特性,我们在下面的学习中慢慢讨论。
2.1 HTML简介
网页
-
网页是指在因特网上按照一定的规则,使用HTML等制作的用于展示特定内容相关的网页集合。
-
网页是网站中的一页,通常是HTML格式的文件,它要通过浏览器来阅读。
-
网页是构成网站的基本元素,它通常由图片、链接、文字、声音、视频等元素组成。通常我们看到的网页,常常为以.htm或.html后缀结尾的文件,故俗称HTML文件。
-
HTML指的是超文本标记语言(Hyper Text Markup Language),它是用来描述网页的一种语言。
-
HTML不是一种编程语言,而是一种标记语言。
-
标记语言是一套标记标签。
-
可以加入图片、声音、动画、多媒体等内容,超越了文本限制。
-
它还可以从一个文件跳转到另外一个文件,与世界各地主机的文件连接(超级链接文本)。
网页是由网页元素组成的,这些元素是利用html标签描述出来,然后通过浏览器解析来显示给客户的。
Web标准主要包括结构、标签和行为三个方面。
标准 | 说明 |
---|---|
结构 | 结构用于对网页元素进行整理和分类,现阶段主要学的是HTML |
表现 | 表现用于设置网页元素的板式、颜色、大小等外观样式,主要指的是CSS |
行为 | 行为是指网页模型的定义及交互的编写,现阶段主要学的是JavaScript |
2.2 HTML基本页面
- HTML标签是由尖括号包围的关键词,例如<html>。
- HTML标签通常是成对出现的,例如<html>和</html>我们称其为双标签。标签对中的第一个标签是开始标签,第二个标签是结束标签。
- 有些特殊的标签必须是单个标签,例如<br/>,我们称为单标签。
- 标签中是可以指定内容的属性的,写法采用键值对方式key = “value”。属性包含了元素的额外信息。其中值的引号可写可不写,但是习惯上大家还是会写上。
- 有的元素可以同时存在多个属性,属性之间以空格的方式隔开,标签名与属性之间也是,属性之间是无序的。
双标签关系可以分为两类:包含关系和并列关系。
:<!-- 注释内容 -->
:如果是使用VScode,那么你只需要选中注释内容,然后ctrl+/
。
每个网页都会有一个基本结构标签,我们称之为骨架标签。页面的内容也是在这些基本标签上书写。
标签名 | 定义 | 说明 |
---|---|---|
<html></html> | HTML标签 | 页面中最大的标签,我们称为根标签 |
<head></head>> | 文档的头部 | 注意在head标签中我们必须要设置的标签是title |
<title></title> | 文档的标题 | 让页面拥有一个属于自己的网页标题 |
<body></body> | 文档的主体 | 元素包含文档的所有内容,页面内容基本上是放到body里面的 |
其余符号 | 作用 |
---|---|
<!DOCTYPE html> | 表明HTML网页版本 |
lang(意味language) | 定义当前文档显示的语言,一般是en(English)或者zh-CN(中文),除此之外还有fr(法语)等。 |
charset(Character Set,字符集) | 多个字符的集合,以便计算机能够识别和存储各种文字,在head标签内可以使用<meta>标签的charset属性来规定HTML文档应该使用哪种字符编码。常用UTF-8、GBK、GB2312 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
:
- 如果需要在VSCode中直接生成骨架,只需要输入!或html:5并且回车即可生成。
- 对于文档显示来说,定义为en的文档也可以显示中文,定义为zh-ch的文档也可以显示英文。但是如果定义为en英文网站,则浏览器中的翻译插件会在检测到英文后自动翻译。
- 一般情况下,使用!快捷生成的骨架如有需要可以修改lang,但是其他建议不要动,否则容易引起乱码。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>第一个程序</title>
</head>
<body>
<!-- 网页中显示的内容 -->
你好
</body>
</html>
2.3 文本标签
2.3.1 排版标签
排版标签 | 说明 |
---|---|
双标签<h1></h1>,其中可选h1到h6。意为最多支持六级标题 | |
双标签<p>文字内容</p>,其中段落文字写于标签之中 | |
单标签<br/>或</br>,意为重新开始一行 | |
单标签<hr>,意为生成一条水平线,常用于分割不同主题内容 |
2.3.2 文本格式化标签
可以给特定的文字施加各种效果。
标签 | 说明 |
---|---|
b | 加粗 |
label | 加粗 |
u | 下划线 |
ins | 下划线 |
i | 倾斜 |
em | 倾斜 |
s | 删除线 |
del | 删除线 |
2.4 语义标签
2.4.1 无语义标签
双标签<div>文字内容</div>,div标签相当于一个盒子,可用于存放多个内容,多次声明div标签可创造不同的盒子且位于不同行。
双标签<span>文字内容</span>,span相当于一个大区域,当使用span时,不管你使用几次标签,填写的内容都会被放到同一块区域中且位于同一行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div>普通文字</div>
<div>普通文字</div>
<span>普通文字1</span>
<span>普通文字1</span>
</body>
</html>
2.4.2 语义标签
在HTML5新版本中,推出了一些有语义的布局标签供开发者使用。这些标签多用于手机端网页开发。
标签名 | 语义 |
---|---|
header | 网页头部 |
nav | 网页导航 |
footer | 网页底部 |
aside | 网页侧边栏 |
section | 网页区块 |
aticle | 网页内容 |
mian | 文档主要内容 |
2.5 多媒体标签
2.5.1 图像标签
- 单标签<img src = “图像URL”>,单词img为image缩写。
- src是img标签的必须属性,它用于指定图像文件的路径和文件名。
属性 | 说明 |
---|---|
alt = “” | 当图片加载失败时,显示alt指定的文本 |
title = “” | 当鼠标悬停在图片上时显示的提示信息 |
width和height | 用于设置图片宽度和高度,但是一般只设置其中一个,另一个则会根据设置等比例放大缩小,若两个都设置如果没有等比例缩小或放大则图片会扭曲。 |
border | 设置图像的边框粗细 |
2.5.2 音频标签
- 单标签或双标签<audio src = "”>,用于生成一个播放音乐的控件。
- 双标签<audio><source src=“” type = “”></audio>,source为单标签,在音频中可以指定多个source,不同的source中存放的是不同格式的同个音频,这样方便浏览器选择可用的播放源。
属性名 | 功能 |
---|---|
src | 音频路径 |
controls | 显示播放控件 |
autoplay | 自动播放(部分浏览器不支持) |
loop | 循环播放 |
:音频标签目前只支持三种格式:MP3、Wav、Ogg。
2.5.3 视频标签
-
将音频标签的audio改为video即可。
-
使用embed也可以直接插入视频文件,它的本质是调用本机上已经安装的文件,具有兼容性。
-
可以使用flash,但是会增加使用成本,且该方法已经被淘汰。
属性名 | 功能名 |
---|---|
src | 音频路径 |
controls | 显示播放控件 |
autoplay | 自动播放(谷歌浏览器要自动播放需要加上muted) |
loop | 循环播放 |
width | 组件宽度 |
height | 组件高度 |
poster | 还未播放前视频的封面,默认是视频的第一帧,可指定路径 |
preload | auto或none,规定是否预先加载视频,如果有了autoplay,就忽略该属性 |
muted | 静音播放 |
:
-
视频标签目前只支持三种格式:MP4、WebM、Ogg。
-
当设置视频宽高时,HTML5为了保持原视频比例,设置的宽高中只会生效一个参数。故平时设置视频组件时只会设置宽高中的其中一个参数。
2.6 超链接
双标签<a href = “目标网页”>超链接名字</a>,其中a为anchor(锚)的缩写,故又名a标签或锚链接,可用于一个页面跳转到另外一个页面的场景。
由a标签组成的,里面的href属性可以设置超链接的引用,类似于src,所以说,如果需要a标签点击之后去指定页面,需要设置a标签的href属性。
target属性用于决定打开网页的方式。
取值 | 效果 |
---|---|
_self | 默认值,在当前窗口中跳转 |
_blank | 在新窗口中跳转(保留原网页) |
-
:<a href = “http://www.baidu.com”>百度</a>
-
:<a href =“index.html”>首页</a>
-
:<a href =#>首页</a>
-
:如果href的地址是一个文件或者压缩包,点击则会下载这个文件
-
:在网页中的各种元素,如文本、图像、表格、音频、视频都可以添加超链接
-
:在a标签的href属性中设置属性值为#id值,然后在目标位置标签添加id属性,并设置id值即可
2.7 列表标签
无序列表的作用是在网页中表示一组无顺序之分的列表,如:新闻列表。
标签名 | 说明 |
---|---|
ul(Unordered list) | 表示无序列表的整体,用于包裹li标签 |
li(list) | 表示无序列表的每一项,用于包含每一行的内容 |
有序列表的作用是在网页中表示一组有顺序之分的列表,如:排行榜。
标签名 | 说明 |
---|---|
ol(Ordered list) | 表示有序列表的整体,用于包裹li标签 |
li | 表示有序列表的每一项,用于包含每一行的内容 |
:ol标签中只允许包含li标签,而li标签可以包含任意内容。
自定义列表在网页的底部导航中常用。如:
签名 | 说明 |
---|---|
dl | 表示自定义列表的整体,用于包裹dt/dd标签 |
dt | 表示自定义列表的标题 |
dd | 表示自定义列表的针对主题的每一项内容 |
:dl标签中只允许包含dt/dd标签,而dt/dd标签可以包含任意内容。
2.8表格标签
用于显示、展示数据,其能够让数据显示的非常规整,可读性好。表格在网页中以行+列的单元格的方式整齐展示数据,如:学生成绩表。
标签名 | 说明 |
---|---|
table | 表格整体,可用于包裹多个tr |
tr(table row) | 表格每行,可用于包裹td |
td(table data) | 单元格内容 |
属性名 | 属性值 | 效果 |
---|---|---|
border | 数字 | 边框宽度 |
width | 数字 | 表格宽度 |
height | 数字 | 表格高度 |
注:实际开发中我们只会去用HTML做大概内容,而美化方面都是交给CSS。
表格标题指的是表格中用于显示整张表格的标题,而表头单元格标签指的是每列的表头标题。
标签名 | 名称 | 说明 |
---|---|---|
caption | 表格大标题 | 写于table标签内部。表示表格整体大标题,默认在表格整体顶部居中位置显示 |
th(table header) | 表头单元格 | 写于tr标签内部。表示一列小标题,通常用于表格第一行,默认内部文字加粗并居中显示 |
表格的结构标签可以让表格的内容结构更加清晰,其用于突出表格的不同部分(头部、主体、底部)。
标签名 | 名称 |
---|---|
thead | 表格头部 |
tbody | 表格主体 |
tfoot | 表格底部 |
合并单元格分为跨行合并
和跨列合并
。
属性名 | 属性值 | 说明 |
---|---|---|
rowspan | 合并单元格的个数 | 跨行合并 |
colspan | 合并单元格的个数 | 跨列合并 |
:只有同一个结构标签中的单元格才能合并,不能跨结构标签合并。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table border="2" cellspacing="0" cellpadding="">
<caption>学生成绩单</caption>
<thead>
<tr>
<th>姓名</th>
<th>成绩</th>
<th>评语</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>100分</td>
<td>成绩不错</td>
</tr>
<tbody>
<tfoot>
<tr>
<th>总结</th>
<th colspan="3">品质兼优 德才兼备</th>
</tr>
</tfoot>
</table>
</body>
</html>
2.9 表单标签
2.9.1 表单标签汇总
标签 | 描述 |
---|---|
<form> | 定义供用户输入的表单 |
<input> | 定义输入域 |
<label> | 绑定内容和表单标签的关系 |
<textarea> | 定义文本域 (一个多行的输入控件) |
<fieldset> | 定义了一组相关的表单元素,并使用外框包含起来 |
<legend> | 定义了 <fieldset> 元素的标题 |
<select> | 定义了下拉选项列表 |
<optgroup> | 定义选项组 |
<option> | 定义下拉列表中的选项 |
<button> | 定义一个点击按钮 |
<datalist> | 和select下拉菜单标签类似,搭配text文本框可以输入文字 |
<keygen> | 密钥对生成器 |
<output> | 用于放置输出内容 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>账号注册</h1>
<br>
<form action = "">
<form action="">
<!-- 文本框 -->
账号:<input type="text" placeholder="邮箱/手机号码/ID">
<br>
<!-- 密码框 -->
密码:<input type = "password" placeholder="密码">
<br>
<input type="reset" value="重置按钮">
</form>
<!-- 单选框+label标签 -->
<input type="radio" name = "sex" id = "nan"><label for="nan">男</label>
<input type="radio" name = "sex" id = "nv"><label for="nv">女</label>
<br>
<!-- 下拉菜单 -->
所在地:<select>
<option>意大利</option>
<option>美国</option>
<option selected>中国</option>
</select>
<br>
<!-- 多选框 -->
是否单身:<input type = checkbox>
<!-- 提交按钮 -->
<input type = submit value = "注册账号">
</form>
<br>
<!-- 文件选择框 -->
提交头像:<input type = file multiple>
<br>
<!-- 文本域 -->
<Textarea cols = 12 rows = 3></Textarea>
<br>
<!-- 普通按钮 -->
<input type = button value = "测试按钮1">
<!-- 按钮标签 -->
<button type = button>测试按钮2</button>
<form action="" method="post">
<fieldset>
<legend>请选择你的爱好:</legend>
<select name="myhobby" id="myhobby">
<optgroup label="运动">
<option value="羽毛球">篮球</option>
<option value="乒乓球">足球</option>
</optgroup>
<optgroup label="娱乐">
<option value="看电影">看电影</option>
<option value="看小说">看电视</option>
</optgroup>
</select>
</fieldset>
</form>
<form action="" method="post">
<input list="browsers">
<datalist id="browsers">
<option value="Internet Explorer">
<option value="Firefox">
<option value="Chrome">
<option value="Opera">
<option value="Safari">
</datalist>
</form>
</body>
</html>
2.9.2 input标签
input属于单向标签,其必须指定属性type使其具有不同的功能。
type属性值 | 说明 |
---|---|
text | 文本框 |
password | 密码框 |
radio | 单选框 |
checkbox | 多选框 |
file | 文件选择 |
submit | 提交按钮,点击之后提交数据给后台服务器 |
reset | 重置按钮,点击之后恢复表单默认值 |
button | 普通按钮,默认无功能,配合js可以添加功能 |
邮箱框,提供了邮箱格式的完整验证 | |
tel | 电话框,可以在移动端提供数字键盘 |
url | 网址框,提供合法网址的输入 |
number | 数量框,提供单位数量控制以及控制数字输入 |
search | 查找框,可以清空输入框的内容 |
range | 滑动条,可用于调解音量 |
time | 时间选择框,支持时分秒 |
date | 日期选择框,支持年月日 |
datetime | 只有safari和edge支持,等价于datetime-local |
datetime-local | 日期选择框,支持年月日时分秒 |
month | 设置月份 |
week | 设置周 |
对于以上的按钮,如果在没有添加预标签form的情况下,是无法实现其功能的,如果想要使功能和对应的组件相结合,就需要把实现功能的组件和该按钮放在同一个地方,用form括起来即可。
附加属性 | 说明 |
---|---|
value | 用于指定按钮上的文字,submit和reset按钮默认有文字;指定数量框的默认值;指定滑动条的默认值 |
multiple | 用于一次性上传多个文件 |
placeholder | 文本框中出现提示内容 |
name | 用于单选框和多选框分组,同个组中只能有一个选项被选中 |
checked | 用于单选框和多选框,指定默认选中的选项 |
autocomplete | 用于任何类型文本框,提示已经提交过的数据,只有两个值on或off |
max | 指定数量框的最大值;指定滑动条的最大值 |
min | 指定数量框的最小值;指定滑动条的最小值 |
autocomplete | 用于任何类型文本框,自动获取焦点 |
required | 用于文本框,指定该文本框必须输入,否则无法提交 |
pattern | 用于文本框,可用正则表达式限定文本框输入内容 |
:autocomplete需要两个要求才能生效,一是必须提交过,二是该input标签必须带有name属性。
2.9.3 按钮标签
双标签 <button type = “”>按钮文本</button>。
标签名 | type属性值 | 说明 |
---|---|---|
button | submit | 提交按钮,点击之后提交数据给后台服务器 |
button | reset | 重置 |