CSS3基础
1. 基础认知
1.1 CSS 简介
CSS 的使用场景是什么?
- 美化网页,布局页面
CSS 的中文名称是什么?
- 层叠/级联样式表(Cascading Style Sheets)
- CSS 也是一种标记语言
CSS 能设置哪些样式?
- 文本内容:字体、大小、对齐方式
- 图片:宽高、边框、边距
- 版面的布局
结构与样式分离:HTML 专注做结构 + CSS 专注做样式
1.2 体验 CSS 语法规范
CSS 规则包含哪两个部分,作用是什么?
- 选择器:改谁的样式
- 样式声明:改成什么样式
CSS 通常写在 HTML 的什么位置?
<head>
<meta charset="UTF-8" />
<title>体验CSS语法规范</title>
<style>
CSS 写在这里
</style>
</head>
CSS 语法格式是什么?
选择器 {
属性: 值;
属性: 值;
}
p {
width: 100px;
height: 100px;
}
- 使用
{}
包含一个或多个样式声明; - 每条样式声明以键值对形式出现:
属性: 值
; - 属性和值之间使用
:
分隔; - 属性之间使用
;
分隔,最后一行的分号可以省略。
<!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>1. 体验CSS语法规范</title>
<style>
p {
color: aqua;
font-size: 64px;
}
</style>
</head>
<body>
<p>学习如逆水行舟,不进则退</p>
</body>
</html>
注意:
- 在 HTML 中写样式不要忘记加 style 标签
- 设置字体不要忘记
px
,提示可以把字体设置大一些,这样更直观。
1.3 CSS 代码风格
紧凑格式和展开格式哪种更推荐?为什么?
- 更推荐展开格式,因为更直观,更易于阅读和维护。
有专门的工具对 CSS 进行压缩
- 开发时展开给人看,更友好
- 上线时压缩给浏览器看,更高效
书写样式时,应该使用大写字母还是小写字母?
- 小写字母。
书写样式时,有两个地方需要注意空格,分别是什么位置?
- 选择器和开始花括号之间保留一个空格;
:
后面保留一个空格。
2. 选择器
2.1 CSS 选择器的作用
选择器的作用是什么?
- 选择标签(根据不同的需求,把对应的标签选择出来)。
2.2 标签选择器
选择器分为哪两大类?特征是什么?
- 基础选择器:由单个选择器组成
- 复合选择器:由多个选择器组成
标签选择器是以什么作为选择器?
- 标签选择器就是使用 HTML 标签名称作为选择器
使用标签选择器修改样式的结果是什么?有什么优点?有什么缺点?
- 结果:把某一类标签选择出来,统一修改样式
- 优点:快速、统一设置同类型标签的样式
- 缺点:没有差异化
2.3 类选择器
类选择器的应用场景是什么?
- 如果想差异化选择不同的标签,单独选择一个或某几个标签
类选择器的语法是什么?使用步骤是什么?注意事项是什么?
- 定义类选择器
- 选择器名称前有一个
.
表示是类选择器 {}
中仍然是一个或多个键值对;
- 使用类选择器
- 找到需要修改样式的标签;
- 给标签增加
class
属性,属性值是选择器的类名
- 注意事项
- 使用类选择器不需要
.
类选择器可以应用到不同类型的标签吗?
- 可以
给类选择器命名有注意事项?
.
紧跟类名,不能有空格;- 长名称或词组使用
-
连接,例如:jd-nav
; - 尽量用英文,不要用数字或中文;
- 命名要做到见名知意;
类选择器口诀
- 样式点定义
- 结构类调用
- 一个或多个
- 开发最常用
<!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>3. 类选择器</title>
<style>
.hot {
color: rgb(255, 0, 0);
font-size: 20px;
}
</style>
</head>
<body>
<ul>
<li>HTML 入门到精通</li>
<li class="hot">CSS 布局指南</li>
<li>JavaScript 从入门到放弃</li>
</ul>
</body>
</html>
2.4 使用类选择器画盒子
<!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>4. 使用类选择器画盒子</title>
<style>
.red {
color: rgb(255, 255, 255);
font-size: 20px;
width: 100px;
height: 100px;
background-color: red;
}
.green {
color: rgb(247, 247, 247);
font-size: 30px;
height: 100px;
width: 100px;
background-color: green;
}
</style>
</head>
<body>
<div class="red">red</div>
<div class="green">green</div>
<div class="red">red</div>
</body>
</html>
2.5 类选择器特殊使用-多类名
多类名的使用方式是什么?
- 在标签的
class
属性中使用多个类名 - 类名之间使用空格分隔
多类名的应用场景是什么?
- 把元素相同的样式放在同一个公共类中,个性的样式放在单独的类中,既可以节省 CSS 代码,又方便统一修改。
2.6 id 选择器
id 选择器的前缀是什么?
#
id 选择器的应用场景是什么?
- 专门定义 HTML 中某个特定元素的样式,因为
id
是唯一的
id 选择器的使用步骤?
-
定义带 id 的 HTML 元素
- 给 HTML 中的某个特殊元素增加
id
属性
- 给 HTML 中的某个特殊元素增加
-
定义 id 选择器
- 选择器名称前有一个
#
表示是 id 选择器 - 选择器名称就是对应 HTML 元素的 id 名称
{}
中仍然是一个或多个键值对;
- 选择器名称前有一个
id 选择器和类选择器的区别?
-
id 可以看成是身份证号(唯一) / 类可以看成是名字(可多人使用)
-
id 只为特定元素设置样式,常与 JavaScript 联用
-
类选择器在修改样式中用的最多
id 选择器口诀 -
样式
#
定义 -
结构
id
调用 -
只能用一次
-
别人勿使用
2.7 通配符选择器
通配符选择器使用什么符号定义?
*
- 表示选取页面中的所有元素
通配符选择器需要调用吗?为什么?
- 不需要
- 浏览器在解释 HTML 时,会把通配符选择器中定义的样式应用到页面中的每一个元素
<!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>6. 通配符选择器</title>
<style>
* {
color: hotpink;
}
</style>
</head>
<body>
<div>不要皱眉,即使在伤心的时刻,因为你从不知道有谁会醉心于你的笑容。</div>
<p>我们看错了这个世界,却说世界欺骗了我们。</p>
<span>我们人这一辈子不是别人的楷模,就是别人的借鉴</span>
</body>
</html>
基础选择器总结
基础选择器 | 作用 | 特点 | 使用频率 |
---|---|---|---|
标签选择器 | 选出相同标签 | 不能差异化选择 | 较多 |
类选择器(. ) | 按需选择标签 | 根据需求选择 | 非常多 |
id 选择器(# ) | 选中唯一标签 | 针对唯一标签 | 通常与 JavaScript 联用 |
通配符选择器(* ) | 选中所有标签 | 选择的太多,有部分不需要 | 特殊情况使用 |
3. 字体属性
3.1 font-family 设置字体系列
字体属性可以定义哪些样式?
- 字体相关的样式,例如:字体系列、大小、粗细、文字样式(斜体)等
font-family
的含义是什么?
- 字体系列、字体族
为什么要尽量使用系统默认自带字体?
- 保证在任何用户的浏览中都能正确显示
浏览器对字体的搜索顺序是什么?
- 当指定的字体找不到(或者某些文字不支持这个字体)时,就接着往后找
为什么要把字体样式设置给 body
标签?
- 一次设置,到处使用
font-family 设置字体系列扩展 —— 字体族
- 衬线字体
serif
,如:宋体,Times New Roman - 非衬线字体
sans-serif
,如:微软雅黑,苹方,Arial - 等宽字体
monospace
,如:Courier,Courier New,Monospace,新宋体,幼圆 - 手写体
cursive
- 花体
fantasy
注意: - 写 CSS 代码时,末尾的字体族不需要带引号;
- Windows 推荐使用微软雅黑字体;
- macOS 推荐使用苹方字体。
- 衬线体如今已经很少使用了,而非衬线体更符合现代审美。如果你发现一名设计师,在做海报设计、或者制图的时候,使用了宋体,说明她一定是个外行。
<!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>7. font-family字体属性</title>
<style>
h2 {
font-family: cursive;
text-align: center;
}
p {
font-family: cursive;
text-align: center;
}
</style>
</head>
<body>
<h2>《送孟浩然之广陵》</h2>
<p>故人西辞黄鹤楼,</p>
<p>烟花三月下扬州.</p>
<p>孤帆远影碧空尽,</p>
<p>唯见长江天际流.</p>
</body>
</html>
3.2 font-size 字号大小
设置字体大小的单位是什么?
px
像素
谷歌浏览器的默认文字大小是多少?
16px
为什么要在 body
标签中指定页面文字的大小?
- 不同浏览器可能默认显示的文字大小不一致
- 开发时要尽量给一个明确的值,不要使用默认大小
font-size 字号大小扩展 —— 检查文字大小
- 确认谷歌浏览器的默认文字大小
2. 设置尺寸漏写 px
3.3 font-weight 字体粗细
实际开发中推荐使用哪种方式设置字体的粗细?
- 数字
font-weight
字重
使用数值设置字体粗细需要单位吗?
- 不需要
哪些数值可以设置字体的粗细?normal
对应多少?bold
对应多少?
- 取值范围
100
~900
(按100
递增) normal
:正常粗细,与 400 等值。bold
:加粗,与 700 等值。
注意:不是所有的字体都提供了九种粗细的,因此有些数值指定后会看不出变化
h2 {
font-weight: 700;
}
p {
font-weight: 400;
}
</style>
3.4 font-style 字体样式
开发时把字体设置为倾斜的场景多吗?为什么?
- 不多
font-style: italic;
font-style 的应用场景是什么?
- 把
em
、i
默认的斜体改为不倾斜显示font-style: normal;
注意:开发时,如果需要对段落中的局部文字进行修饰,例如搜索结果高亮,可以首选em
标签,然后应用font-style
首先将字体设置为不倾斜。
<style>
h2 {
font-style: italic;
}
em {
font-style: normal;
}
</style>
3.5 font 复合属性写法
字体复合属性的属性名是什么?
font
复合属性的作用是什么?
- 节约代码
复合属性的编写顺序是什么?能够随意调整顺序吗?
font: font-style font-weight font-size/line-height font-family
;- 复合属性不能随意调整顺序
- 复合属性至少要保留:
font-size
和font-family
属性,否则设置无效
猜一猜在开发中字体的复合属性使用频率高吗?为什么?
- 不高
font-family
通常会在body
的标签选择器中定义,其他位置通常不需要更改字体
<!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>11. font 复合属性写法</title>
<style>
#name {
font-style: italic;
font-weight: 900;
font-size: 20px;
font-family: sans-serif;
}
.name_a {
font: normal 100 30px "微软雅黑";
}
</style>
</head>
<body>
<div id="name">三十三世十里桃花</div>
<div class="name_a">一心一意百行代码</div>
</body>
</html>
3.6 字体属性总结
属性 | 含义 | 注意事项 |
---|---|---|
font-size | 字号 | 但是通常是 px(像素),一定要有单位 |
font-family | 字体 | 工作中按照团队约定即可 |
font-weight | 字重 | 700 加粗 / 400 普通 不带单位 |
font-style | 字体样式 | italic 斜体 / normal 正常,把 em 改成不倾斜 |
font | 连写 | font-style ,font-weight ,font-size/line-height ,font-family |
4. 文本属性
4.1 文本颜色 color
文本属性可以定义哪些样式?
- 文本相关的样式,例如:颜色、对齐方式、装饰文本、文本缩进、行间距等
文本相关的样式,例如:颜色、对齐方式、装饰文本、文本缩进、行间距等
- 预定义的颜色名:
red
、green
、blue
- 十六进制:
#ff0000
- RGB 代码:
rgb(255, 0, 0)
或rgba(255, 0, 0, 0.5)
有几种定义颜色的方式?在开发中哪种颜色最常用?
-
开发中最常用的是:十六进制的颜色
-
如果要使用透明色,可以使用
rgba(red, green, blue, 透明度)
,其中:red
:0 ~ 255green
:0 ~ 255blue
:0 ~ 255- 透明度:
0 ~ 1
,0 表示完全透明(看不见),1 表示完全不透明
4.2 文本对齐 text-align
text-align
能设置哪个方向上的文本对齐方式?
- 可以设置水平方向上的对齐方式
有哪三种种文本对齐方式?
left
:左对齐(默认)right
:右对齐center
:居中
<style>
p1 {
text-align: left;
}
p2 {
text-align: center;
}
p3 {
text-align: right;
}
</style>
文本对齐的本质是什么?
- 盒子让内部的文本按照盒子边界对齐
4.3 文本装饰 text-decoration
视频中 text-decoration
能够给文本增加哪些装饰?
属性值 | 描述 |
---|---|
none | 默认,没有装饰线,最常用 |
underline | 下划线,常用 |
line-through | 删除线,不常用 |
overline | 上划线,几乎不用 |
问题 2:如何取消 a
标签默认的下划线?
text-decoration: none;
a {
text-decoration: none;
}
4.4 文本缩进 text-indent
text-indent
的作用是什么?
- 设置文本段落的首行缩进,更适合中文阅读习惯
em
有多大?
- 当前元素 1 个文字的大小
- 1em = 16px
p {
text-indent: 2em;
}
4.5 行间距 line-height
line-height
的作用是什么?
- 控制文本行与行之间的距离
- 文本在盒子中垂直居中
行间距由几个部分组成?分别是什么?
- 上间距
- 文本高度
- 下间距
应该如何测量行间距?为什么?
- 从一段文字的下边线测量到相邻行的上间距
- 因为文本的上下间距是相等的
<style>
p {
line-height: 80px;
color: lightgreen;
}
</style>
4.6 CSS 文本属性总结
属性 | 含义 | 注意事项 |
---|---|---|
color | 颜色 | #fff / rgba(r, g, b, 透明度) |
text-align | 对齐 | left / right / center |
text-indent | 首行缩进 | text-indent: 2em; |
text-decoration | 文本修饰 | text-decoration: underline; / text-decoration: none; |
line-height | 行高 | 行高等于盒子高度会垂直居中 |
5. CSS 的三种引入方式
5.1 内部样式表
按照书写方式,CSS 可以分成几种方式?分别是什么?
- 行内样式表(行内式)
- 内部样式表(嵌入式)
- 外部样式表(链接式)
内部样式表可以放在 HTML 的什么位置?推荐会放在哪里?
- 理论上可以放在 HTML 的任何位置
- 推荐放在
head
标签中,不要忘记还有一个style
标签
5.2 行内样式表
行内样式表有什么特点?
- 写在元素的
style
属性中 - 适合于简单、快速、临时修改样式
- 在
style
属性中,使用键值对设置样式,不需要{}
- 写在哪个元素就控制哪个元素,对其他元素没有效果
<style>
p {
color: lightcoral;
}
</style>
开发时推荐使用行内样式吗?为什么?
- 不推荐
- 书写繁琐,没有体现出结构和样式分离
- 不能做到样式复用
<p style="color: lawngreen;">15. 行内样式表</p>
开发时什么时候会使用行内样式?
- 临时使用,非正式页面
5.3 外部样式表
在实际开发中,哪种样式表的引入方式使用的多?
- 外部样式表
- 核心思想:CSS 与 HTML 分离
外部样式表的使用步骤是什么?
- 新建外部的
CSS
文件并编写样式 - 在 HTML 中使用
link
标签引入外部样式表
外部样式表中需要使用 style
标签吗?为什么?
- 不需要
- 标签是 HTML 的,CSS 中只有样式
HTML文件
<!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>16. 外部样式表</title>
<link rel="stylesheet" href="CSS/style.css">
</head>
<body>
<p>16. 外部样式表</p>
</body>
</html>
style.css文件
p {
color: aqua;
}
5.4 CSS 引入方式总结
样式表 | 优点 | 缺点 | 使用频率 | 控制范围 |
---|---|---|---|---|
行内 | 书写方便,权重高 | 结构样式混合 | 低 | 控制一个标签 |
内部 | 部分结构和样式分离 | 没有彻底分离 | 较多 | 控制一个页面 |
外部 | 完全结构和样式分离 | 需要 link 引入 | 多 | 可以被多处复用 |
附录
类命名规则
功能 | 建议命名 |
---|---|
头 | header |
内容 | content / container |
尾 | footer |
导航 | nav |
侧栏 | sidebar |
栏目 | column |
页面外围控制整体布局宽度 | wrapper |
左右中 | left right center |
登录条 | loginbar |
标志 | logo |
广告 | banner |
页面主体 | main |
热点 | hot |
新闻 | news |
下载 | download |
子导航 | subnav |
菜单 | menu |
子菜单 | submenu |
搜索 | search |
友情链接 | friendlink |
页脚 | footer |
版权 | copyright |
滚动 | scroll |
内容 | content |
标签页 | tab |
文章列表 | list |
提示信息 | msg |
小技巧 | tips |
栏目标题 | title |
加入 | joinus |
指南 | guild |
服务 | service |
注册 | regsiter |
状态 | status |
投票 | vote |
合作伙伴 | partner |