【前端筑基】CSS简介(上)
🌠本文学习目标
● 能够说出什么是 CSS ● 能够使用 CSS 基础选择器 ● 能够设置字体样式
🌠CSS 简介
CSS 的主要使用场景就是美化网页,布局网页
1. HTML 的局限性
说到 HTML,这其实是个非常单纯的家伙,它只关注内容的语义。比如 <h1>
表明这是一个大标题,<p>
表明这个一个段落,<img>
表明这里有一张图片,<a>
表明这里有一个链接
很早的时候,世界上的网页虽然很多,但是它们都有一个共同的特点:丑
虽然 HTML 可以做简单的样式,但是带来的却是无尽的臃肿和繁琐......
2. CSS-网页的美容师
CSS 是层叠样式表(Cascading Style Sheets)的简称,有时我们也会称之为 CSS 样式表或级联样式表
CSS 也是一种标记语言
CSS 主要用于设置 HTML 页面中的文本内容(字体、大小、对齐方式等)、图片的外观(宽高、边框样式、边距等)以及版面的布局和外观显示样式
CSS 让我们的网页更加丰富多彩,布局更加灵活自如。简单理解:CSS 可以美化 HTML,让 HTML 更漂亮,让页面布局更简单
总结: ● HTML 主要做结构,显示元素内容 ● CSS 美化 HTML,布局网页 ● CSS 最大价值:由 HTML 专注去做结构呈现,样式交给 CSS,即 结构(HTML)与样式(CSS)相分离
3. CSS 语法规范
使用 HTML 时,需要遵从一定的规范,CSS 也是如此。要想熟练地使用 CSS 对网页进行修饰,首先需要了解 CSS 样式规则。
CSS 规则由两个主要的部分构成:选择器以及一条或多条声明,写在 HTML 文件的 <head>
和 </head>
之间添加的 <style>
和 </style>
里面
● 选择器是用于指定 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>CSS语法规范</title>
<style>
/* 选择器 样式 */
/* 给谁改样式 什么样式 */
p {
color:red;
/* 修改文字大小为12像素 */
font-size:12px;
}
</style>
</head>
<body>
<p>有点意思</p>
</body>
</html>
4. CSS 代码风格
以下代码书写风格不是强制规范,而是符合实际开发书写方式
样式格式书写
① 紧凑格式
h3 { color: deeppink; font-size: 20px; }
② 展开风格
h3 {
color: pink;
font-size: 20px;
}
强烈推荐第二种格式,因为更直观
样式大小写风格
h3 {
color: pink;
}
h3 {
COLOR: PINK;
}
强烈推荐样式选择器,属性名,属性值关键字全部使用小写字母,特殊情况除外
样式空格风格
h3 {
color: pink;
}
① 属性值前面,冒号后面,保留一个空格 ② 选择器(标签)和大括号中间保留空格
🌠CSS 基础选择器
1. CSS 选择器的作用
<div>我是div</div>
<div>我是div</div>
<p>我是段落</p>
<ul>
<li>我是ul里面小li哦</li>
</ul>
<ol>
<li>我是ul里面小li哦</li>
</ol>
怎么解决下列需求:
- 我想把 div 里面的文字改为红色?
- 我想把第一个 div 里面的文字改为红色?
- 我想把 ul 里面的 li 文字改为红色?
选择器(选择符)就是根据不同需求把不同的标签选出来,这就是选择器的作用。简单来说,就是选择标签用的
2. 选择器分类
选择器分为基础选择器和复合选择器两个大类,我们先了解以下基础选择器
● 基础选择器是由单个选择器组成的 ● 基础选择器又包括:标签选择器、类选择器、id 选择器和通配符选择器
3. 标签选择器
标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式
基本语法格式如下:
标签名 {
属性1: 属性值1;
属性2: 属性值2;
属性3: 属性值3;
...
}
作用
标签选择器可以把某一类标签全部选择出来,比如所有的 <div>
标签和所有的 <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>标签选择器</title>
<style>
p {
color: green;
font-size: 20px;
}
div {
color: red;
}
</style>
</head>
<body>
<p>男生</p>
<p>男生</p>
<p>男生</p>
<div>女生</div>
<div>女生</div>
<div>女生</div>
</body>
</html>
4. 类选择器
如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器
类选择器在 HTML 中以 class 属性表示,在 CSS 中,类选择器以一个点 “." 号显示
基本语法格式如下
.类名 {
属性1: 属性值1;
...
}
例如,将所有拥有 red 类的 HTML 元素均改为红色
.red {
color: red;
}
结构需要用 class 属性来调用 class 类的意思
演示
<div class='red'> 变红色 </div>
<!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>
<style>
/* 类选择器口诀:样式点定义 结构类(class)调用 一个或多个 开发最常用*/
.red {
color: red;
}
.star-sing {
color: green;
}
</style>
</head>
<body>
<ul>
<li class="red">笑场</li>
<li>演员</li>
<li class="red">刚刚好</li>
<li class="star-sing">我好像在哪见过你</li>
<li>丑八怪</li>
</ul>
<div class="red">我也会变红色</div>
</body>
</html>
注意
- 类选择器使用 ”.“ (英文点号)进行标识,后面紧跟类名(自定义,我们自己命名)
- 可以理解为给这个标签起了一个名字来表示
- 长名称或词组可以使用中横线来为选择器命名
- 不要使用纯数字、中文等命名,尽量使用英文字母来表示
- 命名要有意义,尽量使别人一眼就知道这个类名的目的
- 命名规范:CSS类命名规则
案例 ➤ 所用知识点 —— 类选择器的使用 —— div 就是一个盒子,用来装网页内容的
<!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>
<style>
.red {
width: 100px;
height: 100px;
/* 背景颜色 */
background-color: red;
}
.green {
width: 100px;
height: 100px;
background-color: green;
}
</style>
</head>
<body>
<div class="red"></div>
<div class="green"></div>
<div class="red"></div>
</body>
</html>
类选择器-多类名
我们可以给一个标签指定多个类名,从而达到更多的选择目的。这些类名都可以选出这个标签,简单理解就是一个标签有多个名字
➽ 多类名使用方式
<div class="red font20">亚瑟</div>
(1)在标签 class 属性中写多个类名 (2)多个类名中间必须用空格分开 (3)这个标签就可以分别具有这些类名的样式
<!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>
<style>
.red {
color: red;
}
.font35 {
font-size: 35px;
}
</style>
</head>
<body>
<div class="red">薛之谦</div>
<div class="red font35">薛之谦</div>
</body>
</html>
➽ 多类名的使用场景
- 可以把一些标签元素相同的样式(共同的部分)放到一个类里面
- 这些标签都可以调用这个公共的类,然后再调用自己独有的类
- 从而节省 CSS 代码,统一修改也非常方便
对三个盒子的案例进行改进:
<!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>
<style>
/* 便于后面修改 */
.box {
width: 100px;
height: 100px;
}
.red {
/* 背景颜色 */
background-color: red;
}
.green {
background-color: green;
}
</style>
</head>
<body>
<div class="box red"></div>
<div class="box green"></div>
<div class="box red"></div>
</body>
</html>
➽ 多类名总结
- 各个类名中间用空格分开
- 简单理解:就是给某个标签添加了多个类,或者这个标签有多个名字
- 这个标签就可以分别具有这些类名的样式
- 从而节省 CSS 的代码,统一修改也非常方便
- 多类名选择器在后期布局比较复杂的情况下,还是较多使用的
5. id 选择器
id 选择器可以为标有特定 id 的 HTML 元素指定特有的样式
HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以 ”#“ 来定义
基本语法格式如下
#id名 {
属性1: 属性值1;
...
}
例如,将 id 为 nav 元素中的内容设置为红色
#nav {
color: red;
}
注意:id 属性只能在每个 HTML 文档中出现一次,也就是只能调用一次
id 选择器和类选择器的区别 ① 类选择器(class)好比人的名字,一个人可以有多个名字,同时一个名字也可以被多个人使用 ② id 选择器好比人的身份证号码,全中国是唯一的,不得重复 ③ id 选择器和类选择器最大的不同在于使用次数上 ④ 类选择器在修改样式中用的最多,id 选择器一般用于页面唯一性的元素上,经常和 JavaScript 搭配使用
6. 通配符选择器
在 CSS 中,通配符选择器使用 ”*“定义,它表示选取页面中所有元素(标签)
➠ 基本语法格式如下
* {
属性1: 属性值1;
...
}
● 通配符选择器不需要调用,自动就给所有的元素使用样式 ● 特殊情况才使用
<!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>
<style>
* {
color: red;
}
/* * 这里把 html body div span li 等等的标签都改为了红色 */
</style>
</head>
<body>
<div>我的</div>
<span>我的</span>
<ul>
<li>还是我的</li>
</ul>
</body>
</html>
下面是清除所有的元素标签的内外边距
* {
margin: 0;
padding: 0;
}
7. 基础选择器总结
基础选择器 | 作用 | 特点 | 使用情况 | 用法 |
---|---|---|---|---|
标签选择器 | 可以选出所有相同的标签,比如 p | 不能差异化选择 | 较多 | p { color: red; } |
类选择器 | 可以选出 1 个或者多个标签 | 可以根据需求选择 | 非常多 | .nav { color: red; } |
id 选择器 | 一次只能选择 1 个标签 | ID 属性只能在每个 HTML 文档中出现一次 | 一般和 js 搭配 | #nav { color: red; } |
通配符选择器 | 选择所有的标签 | 选择的太多,有部分可能不需要 | 特殊情况使用 | * { color: red; } |
● 每个基础选择器都有使用场景,都需要掌握 ● 如果是修改样式,类选择器是使用最多的
🌠CSS 字体属性
CSS Fonts(字体)属性用于定义字体系列、大小、粗细和文字样式(如斜体)
1. 字体系列
CSS 使用 font-family 属性定义文本的字体系列
语法格式如下:
p { font-family:"微软雅黑"; }
div { font-family: Arial,"Microsoft","微软雅黑"; }
<!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>CSS字体属性之字体系列</title>
<style>
h2 {
font-family: '楷体';
}
p {
/* font-family: 'Microsoft YaHei'; */
font-family: 'Times New Roman', Times, serif;
}
</style>
</head>
<body>
<h2>桃花庵歌</h2>
<h4>明 唐伯虎</h4>
<p>桃花坞里桃花庵,桃花庵下桃花仙。</p>
<p>桃花仙人种桃树,又摘桃花换酒钱。</p>
<p>酒醒只在花前坐,酒醉还来花下眠。</p>
<p>半醉半醒日复日,花落花开年复年。</p>
<p>但愿老死花酒间,不愿鞠躬车马前。</p>
<p>车尘马足富者事,酒盏花枝隐士缘。</p>
<p>若将显者比隐士,一在平地一在天。</p>
<p>若将花酒比车马,彼何碌碌我何闲。</p>
<p>世人笑我太疯癫,我笑他人看不穿。</p>
<p>不见五陵豪杰墓,无花无酒锄作田。</p>
</body>
</html>
● 各种字体之间必须使用英文状态下的逗号隔开
● 一般情况下,如果有空格隔开的多个单词组成的字体,加引号
● 尽量使用系统默认自带字体,保证在任何用户的浏览器中都能正确显示
● 最常用的几个字体:body { font-family: 'Microsoft YaHei', tahoma, arial, 'Hiragino Sans GB'; }
2. 字体大小
CSS 使用 font-size 属性定义字体大小
语法格式如下:
p {
font-size: 20px;
}
● px(像素)大小是我们网页的最常用的单位 ● 谷歌浏览器默认的文字大小为 16px ● 不同的浏览器默认显示的字体大小可能不一致,我们尽量给一个明确值大小,不要默认大小 ● 可以给 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>CSS字体属性之字体大小</title>
<style>
body {
font-size: 20px;
}
/* 标题标签比较特殊,需要单独指定文字大小 */
h2 {
font-size: 20px;
}
</style>
</head>
<body>
<h2>桃花庵歌</h2>
<h4>明 唐伯虎</h4>
<p>桃花坞里桃花庵,桃花庵下桃花仙。</p>
<p>桃花仙人种桃树,又摘桃花换酒钱。</p>
<p>酒醒只在花前坐,酒醉还来花下眠。</p>
<p>半醉半醒日复日,花落花开年复年。</p>
<p>但愿老死花酒间,不愿鞠躬车马前。</p>
<p>车尘马足富者事,酒盏花枝隐士缘。</p>
<p>若将显者比隐士,一在平地一在天。</p>
<p>若将花酒比车马,彼何碌碌我何闲。</p>
<p>世人笑我太疯癫,我笑他人看不穿。</p>
<p>不见五陵豪杰墓,无花无酒锄作田。</p>
</body>
</html>
3. 字体粗细
CSS 粗细 font-weight 属性设置文本字体的粗细
语法格式如下:
p {
font-weight: bold;
}
属性值 | 描述 |
---|---|
normal | 默认值(不加粗的) |
bold | 定义粗体(加粗的) |
100-900 | 400 等同于 normal,而 700 等同于 bold,注意这个数字后面不跟单位 |
<!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>CSS字体属性之字体粗细</title>
<style>
.bold {
/* font-weight: bold; */
/* 这个700的后面不要跟单位 等价于 bold 都是加粗的效果 */
/* 实际开发中,我们跟提倡使用数字来表示加粗或者变细 */
font-weight: 700;
}
h2 {
/* font-weight: normal; */
font-weight: 400;
}
</style>
</head>
<body>
<h2>桃花庵歌</h2>
<h4>明 唐伯虎</h4>
<p>桃花坞里桃花庵,桃花庵下桃花仙。</p>
<p>桃花仙人种桃树,又摘桃花换酒钱。</p>
<p>酒醒只在花前坐,酒醉还来花下眠。</p>
<p>半醉半醒日复日,花落花开年复年。</p>
<p>但愿老死花酒间,不愿鞠躬车马前。</p>
<p>车尘马足富者事,酒盏花枝隐士缘。</p>
<p>若将显者比隐士,一在平地一在天。</p>
<p>若将花酒比车马,彼何碌碌我何闲。</p>
<p class="bold">世人笑我太疯癫,我笑他人看不穿。</p>
<p>不见五陵豪杰墓,无花无酒锄作田。</p>
</body>
</html>
● 学会让加粗标签(比如 h 和 strong 等)不加粗,或者其他标签加粗 ● 实际开发时,我们更喜欢用数字表示粗细
4. 文字样式
CSS 使用 font-style 属性设置文本的风格
语法格式如下:
p {
font-style: normal;
}
属性值 | 作用 |
---|---|
normal | 默认值,浏览器会显示标准的字体样式 font-style: normal; |
italic | 浏览器会显示斜体的字体样式 |
<!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>CSS字体属性之字体样式</title>
<style>
p {
font-style: italic;
}
em {
font-style: normal;
}
</style>
</head>
<body>
<p>同学,上课时候的你</p>
<em>下课时候的你</em>
</body>
</html>
注意:平时我们很少给文字加斜体,反而要给斜体标签(em, i)改为不倾斜字体
5. 字体复合属性
字体属性可以把以上文字样式综合来写,这样可以更节约代码
语法格式如下:
body {
font: font-style font-weight font-size/line-height font-family;
}
<!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>CSS字体属性之复合属性</title>
<style>
div {
/* font-style: italic;
font-weight: 700;
font-size: 16px;
font-family: 'Microsoft YaHei'; */
/* 复合属性:简写的方式 */
font: italic 700 16px/20px 'Microsoft YaHei';
}
</style>
</head>
<body>
<div>世人笑我太疯癫,我笑他人看不穿</div>
</body>
</html>
● 使用 font 属性时,必须按上面语法格式中的顺序来写,不能更换顺序,并且每个属性之间以空格隔开 ● 不需要设置的属性可以省略(取默认值),但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用
6. 字体属性总结
属性 | 表示 | 注意点 |
---|---|---|
font-size | 字号 | 我们通常用的单位是 px(像素),一定要跟上单位 |
font-family | 字体 | 实际工作中按照团队规定来写字体 |
font-weight | 字体粗细 | 记住加粗是 700 或者 bold,不加粗是 normal 或者 400,记住数字不要跟单位 |
font-style | 字体样式 | 记住倾斜是 italic,不倾斜是 normal,工作中我们最常用 normal |
font | 字体连写 | 1. 字体连写是有顺序的,不能随意换位置 2. 其中字号和字体必须同时出现 |
转载自:https://juejin.cn/post/7137128739539779614