跟随黑马学前端-6,CSS简介

第六天:CSS简介

Intelligence is the ability to avoid doing work, yet getting the work done.

学习目标

  • Emmet语法

  • CSS的复合选择器

  • CSS的元素显示方式

  • CSS的背景

  • CSS的三大特性

  • CSS的注释


Emmet语法

Emmet语法的前身是Zen Coding,它使用缩写,来提高HTML/CSS的缩写速度,VSCode内已经集成该语法

  1. 快速生成HTML结构语法

  2. 快速生成CSS样式语法


快速生成HTML结构语法
  1. 生成标签 直接输入标签名,按下tab即可,比如div然后按下tab键就可以直接生成<div></div>

  2. 如果想要生成多个相同的标签,加上*就可以了,比如div*3就可以直接生成3个div

  3. 如果有父子级关系的标签,可以用>比如 ul>li就可以了

  4. 如果有兄弟关系的标签,用+就可以,比如div+p

  5. 如果生成带有类名或者id名字的,直接写.demo或者#two 然后tab键就可以了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <!-- 这是一个示例 -->

    <!-- 输入的是 .one -->
    <div class="one"></div>
    <!-- 输入的是 #two -->
    <div id="two"></div>
    <!-- 输入的是 p.one -->
    <p class="one"></p>


    <!-- 输入的是 .demo$*5 -->
    <div class="demo1"></div>
    <div class="demo2"></div>
    <div class="demo3"></div>
    <div class="demo4"></div>
    <div class="demo5"></div>
  6. 如果生成的div类名是有顺序的,可用自增符号$

  7. 如果我们想要生成的标签中自带文字,我们可以这样:

    1
    2
    <!-- div{周杰伦} -->
    <div>周杰伦</div>
快速格式化代码

快捷键:SHIFT+ALT+F(VSCode)

自动格式化代码:

  1. 文件->【首选项】->【设置】

  2. 搜索emmet.include;

  3. 在settings.json下的【用户】中添加:

    “editor.formatOnType”:true,

    “editor.formatOnSave”:ture

  4. 只需要设置一次即可


复合选择器

什么是复合选择器:

​ 在CSS中,可以根据选择器的类型将选择器分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上的,对基本选择器进行组合形成的

  • 复合选择器可以更加精准的更加高效的选择目标元素(标签)

  • 复合选择器是由两个或者多个选择器通过不同的方式组合而成的

  • 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪装选择器等


后代选择器(重要)

后代选择器又叫做包含选择器,可以选择父元素里面的子元素,其写法是将外层标签写在前面,内层标签写在后面,中间用空格分隔开,当标签发生嵌套时,内层标签就成为外层标签的后代

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!DOCTYPE html>
<html lang="en">
<head>
<title>Document</title>
<style>
/* 我想要将ol中的小li变成pink色 */
ol li{
/* 如果只写li ,下面ul的也会变成pink */
color:pink;
}
ol li a{
color: red;
}
.nav li {
/* 将.nav 中的li 变成蓝色 */
color:blue;
}
</style>
</head>
<body>
<ol>
<li>我是ol 的孩子</li>
<li>我是ol 的孩子</li>
<li>我是ol 的孩子</li>
<li>
<a href="#">我是孙子</a>
</li>
</ol>
<ul class="nav">
<li>我是 ul的孩子</li>
<li>我是 ul的孩子</li>
<li>我是 ul的孩子</li>
</ul>
</body>
</html>

子选择器

子元素选择器:只能选择作为某元素的最近一级子元素,简单理解就是选亲儿子元素

语法:

1
2
3
元素1 > 元素2 {
样式声明;
}

上述语法表示选择元素1 中的所有直接后代(子元素)元素2

例如:

1
2
3
4
5
div > p{
样式声明;
}
/* 选择 div 里面所有最近一级的 p 标签样式 */

  • 元素1 和 元素2 中间用大于号分隔开

  • 元素1 是父级,元素2 是子级。最终选择的是元素2

  • 元素2 必须是元素1 的亲儿子,其孙子、重孙子之类都不会管


后代选择器子选择器的区别
  • 后代选择器会选中指定标签中, 所有的特定后代标签, 也就是会选中儿子/孙子…, 只要是被放到指定标签中的特 定标签都会被选中

  • 子元素选择器只会选中指定标签中, 所有的特定的直接标签, 也就是只会选中特定的儿子标签。


并集选择器

并集选择器可以选择多组标签,并为他们定义相同的样式,适用于集体声明

语法:

1
2
3
元素1, 元素2{
样式声明;
}

并集选择器是通过英文符号进行分割的,任何形式的选择器都可以作为并集选择器的一部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!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>
/* 我们喜欢竖着写并集选择器 */
div,
p,
.pig li {
color: pink;
}
</style>

</head>

<body>
<div>熊大</div>
<p>熊二</p>
<span>光头强</span>
<ul class="pig">
<li>小猪佩奇</li>
<li>猪爸爸</li>
<li>猪妈妈</li>
</ul>
</body>

</html>

伪类选择器

伪类选择器可以用于向某些选择器中添加特殊的效果,比如给链接添加特殊效果,或选择第一个,第n个元素

伪类选择器书写最大的特点就是用冒号:来表示,比如:hover:first-child

伪类选择器很多,比如:链接伪类、结构伪类等

链接伪类选择器
1
2
3
4
5
a:link 		/* 选择所有未被访问的链接*/
a:visited /* 选择所有已被访问的链接*/
a:hover /* 选择鼠标位于其上的链接*/
a:active /* 选择活动链接(鼠标按下未弹起的链接*/
/* 这里其实可以这样理解:link对应visited,hover对应active,意思是一首一尾 */
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<!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>
/* 未访问的链接 a:link 把没有访问过的链接选择出来 */
a:link{
color: #333;
text-decoration: none;
}
/* a:visited 选择点击过的(访问过的) */
a:visited{
color:orange;
}
/* a:hover 选择鼠标经过此链接的样式 */
a:hover{
color:skyblue;
}
/* a:active 鼠标按下按时没有弹起时链接的样式 */
a:active{
color: green;
}
</style>
</head>
<body>
<a href="#">小猪佩奇</a>
</body>
</html>

:focus伪类选择器

:focus伪类选择器用于选取获得焦点的表单元素

焦点就是光标,一般情况<input>类表单元素才能获取,因此这个选择器也主要针对于表单元素来说

语法:

1
2
3
input:focus{
background-color: yellow;
}

总结
选择器 作用 特征 使用情况 隔开符号及用法
后代选择器 用来选择后代元素 可以是子孙后代 较多 符号是空格.nav a
子代选择器 选择最近一级元素 只选择亲儿子 较少 符号是大于号.nav>p
并集选择器 选择某些相同样式的元素 可以用于集体声明 较多 符号是逗号.nav,header
链接伪类选择器 选择不同的链接 跟链接相关 较多 重点记住a[]a:hover实际开发的写法
:focus选择器 选择获得光标的表单 跟表单相关 较少 input:focus 记住这个写法