第一章-初识CSS样式

本章目标

  • 掌握CSS基本选择器(重点)
  • 掌握引入CSS样式的三种方式(重点)
  • 掌握层次选择器(重点、难点)
  • 掌握结构伪类选择器(重点、难点)

一、掌握CSS基本选择器

1.1 标签选择器

标签选择器:标签选择器主要针对的是页面中某个标签中的样式设置,它的作用范围是这个页面内所有写在该标签内的内容,标签选择器可以定义多个标签的样式,标签选择器的名字和html标签名字一致

代码演示:
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
	<!--  
语法:
标签名{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p{
color: green; //字体颜色
font-size: 16px; //字体大小
}
</style>
<!-- html代码片段 -->
<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li><p>这是一个p4</p></li>
<li><p>这是一个p5</p></li>
<li><p>这是一个p6</p></li>
</ul>
</body>
代码演示效果:

1.2 类选择器

类选择器:类选择器同样写于style标签内,但类选择器在定义的时候需要 “.” 来做前缀,类名是自定义的,然后在括号内定义属性和属性值。它不是直接作用在该页面中,而是需要作用标签中添加class属性去使用要作用的标签,直接接类名即可,不需要输入”.” 类选择器可以在页面中的多个标签内重复使用

代码演示:
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
36
37
38
39
40
41
42
43
44
45
46
47
<!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>
<!--
语法:
.类名{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
.p {
/*字体颜色*/
color: green;
/*字体大小*/
font-size: 16px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p class="p">这是一个p1</p>
<p class="p">这是一个p2</p>
<p class="p">这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p class="p">这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

1.3ID选择器

ID选择器:ID选择器也是定义在style标签内,它使用”#”作前缀,标识名照样是自定义的。然后括号内输入要修改样式的属性和属性值。调用ID选择器的样式需要使用标签内的ID属性,ID选择器规范要求本页面只能够使用一次

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
36
37
38
39
40
41
42
43
44
45
46
<!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>
<!--
语法:
#ID名{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
#p {
/*字体颜色*/
color: green;
/*字体大小*/
font-size: 16px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p id="p">这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

选择器优先级:ID选择器>类选择器>标签选择器,ID选择器优先级最高,类选择器次之,标签选择器最低

二、引入CSS样式的三种方式

2.1 行内样式

行类样式:使用style属性引入CSS样式
优点:使用方便,一个字快,优先级极高
缺点:代码臃肿,修改代码不方便,维护成本高,内容(数据)和表现(css样式)不分离

代码演示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!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>
<!-- html代码片段 -->

<body>
<!-- 行内样式 -->
<h1 style="color: pink;">这是一级标题</h1>
</body>

</html>

2.2 内部样式

内部样式: 使用style标签内部引入css样式
优点:方便在我们的本页面修改代码
缺点:css样式只能在本页使用,内容(数据)和表现(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
36
37
38
<!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>
<!-- css代码片段 -->
<!-- 行类样式 -->
<style type="text/css">
p {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>

2.3 外部样式

外部样式:新建一个xxx.css文件,在页面中通过使用link标签引入css样式
缺点:优先级低、要重新新建一个xxx.css文件,通过link标签引入样式
优点:降低css样式代码冗余、多页面样式复用性高,可以在不同页面引入外部样式

代码演示:
1
2
1.新建一个style.css文件
2.<link rel="stylesheet" type="text/css" href="style.css">

样式优先级:三种不同方式引入的css样式优先级就近原则,谁离html的代码越近谁先应用,近水楼台先得月

三、层次选择器

3.1 后代选择器

后代选择器: E F 选择匹配的F元素,且匹配的F元素被包含在匹配的E元素内

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
元素E 元素F{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

3.2 子选择器

子选择器:E>F 选择匹配的F元素,且匹配的F元素是匹配的E元素的子元素

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
元素E>元素F{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body>p {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

3.3 相邻兄弟选择器

相邻兄弟选择器:E+F 选择匹配的F元素,且匹配的F元素紧位于匹配的E元素后面

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
元素E+元素F{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p+ul {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

3.4 通用兄弟选择器

通用兄弟选择器: E~F 选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素

代码演示:
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
36
37
38
39
40
41
42
43
44
<!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>
<!--
语法:
元素E~元素F{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p~ul {
color: orange;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
<span>这是一个p7</span>
</body>
</html>
代码演示效果:

四、结构伪类选择器

4.1 E F:first-child

E F:first-child:作为父元素的第一个子元素的元素E

代码演示:
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
36
37
38
39
40
41
42
43
<!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>
<!--
语法:
元素E 元素F:first-child{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p:first-child {
color: orangered;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>
</html>
代码演示效果:

4.2 E F:last-child

E F:last-child:作为父元素的最后一个子元素的元素E

代码演示:
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
36
37
38
39
40
41
42
43
44
<!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>
<!--
语法:
元素E 元素F:last-child{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p:last-child {
color: orangered;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
<p>这是一个p7</p>
</body>
</html>
代码演示效果:

4.3 E F:nth-child(n)

E F:nth-child(n)选择父级元素E的第n个子元素F,(n可以是1、2、3),关键字为even(偶数)、odd(奇数)

代码演示:
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
36
37
38
39
40
41
42
43
44
<!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>
<!--
语法:
元素E 元素F:nth-child{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p:nth-child(2) {
color: orangered;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
<p>这是一个p7</p>
</body>
</html>

4.4 E F:first-of-type

E F:first-of-type:选择父元素内具有指定类型的第一个E元素

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
元素E 元素F:first-of-type{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p:first-of-type {
color: orangered;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<span>这是一个span</span>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
<p>这是一个p7</p>
</body>
</html>
代码演示效果:

4.5 E F:last-of-type

E F:last-of-type:选择父元素内具有指定类型的最后一个E元素

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
元素E 元素F:last-of-type{
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p:last-of-type {
color: orangered;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
<p>这是一个p7</p>
<span>这是一个span</span>
</body>
</html>
代码演示效果:

4.6 E F:nth-of-type(n)

E F:nth-of-type(n):选择父元素内具有指定类型的第n个F元素,(n可以是1、2、3),关键字为even(偶数)、odd(奇数)

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
元素E 元素F:nth-of-type(2){
属性名1:属性值;
属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
body p:nth-of-type(2) {
color: orangered;
font-size: 18px;
}
</style>
</head>
<!-- html代码片段 -->

<body>
<p>这是一个p1</p>
<p>这是一个p2</p>
<p>这是一个p3</p>
<ul>
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
<p>这是一个p7</p>
<span>这是一个span</span>
</body>
</html>
代码演示效果:

五、属性选择器

5.1 E[attr]

E[attr] :选择匹配具有属性attr的E元素

代码演示:
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
36
37
38
39
40
41
42
43
44
<!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>
<!--
语法:
选择器[标签属性名]{
css属性名1:属性值;
css属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p[class] {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->
<body>
<p id="">这是一个p1</p>
<p class="">这是一个p2</p>
<p>这是一个p3</p>
<ul type="disc">
<li>
<p>这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

5.2 E[attr=val]

E[attr=val]:选择匹配具有属性attr的E元素,并且属性值为val(其中val区分大小写)

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
选择器[标签属性名=属性值]{
css属性名1:属性值;
css属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p[class=a] {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p id="a">这是一个p1</p>
<p>这是一个p2</p>
<p class="a">这是一个p3</p>
<ul class="aac">
<li>
<p class="A">这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

5.3 E[attr^=val]

E[attr^=val]:选择匹配元素E,且E元素定义了属性attr,其属性值是以val开头的任意字符串

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
选择器[标签属性名^=属性值]{
css属性名1:属性值;
css属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p[class^=a] {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p class="a">这是一个p1</p>
<p class="ab">这是一个p2</p>
<p>这是一个p3</p>
<ul id="abc">
<li>
<p class="aaaa">这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

5.4 E[attr$=val]

E[attr$=val]:选择匹配元素E,且E元素定义了属性attr,其属性值是以val结尾的任意字符串

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
选择器[标签属性名$=属性值]{
css属性名1:属性值;
css属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p[class$=c] {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p class="abc">这是一个p1</p>
<p class="bbc">这是一个p2</p>
<p>这是一个p3</p>
<ul id="abc">
<li>
<p class="caa">这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

5.5 E[attr*=val]

E[attr*=val]:选择匹配元素E,且E元素定义了属性attr,其属性值包含了“val”,换句话说,字符串val与属性值中的任意位置相匹配

代码演示:
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
36
37
38
39
40
41
42
43
44
45
<!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>
<!--
语法:
选择器[标签属性名*=属性值]{
css属性名1:属性值;
css属性名2:属性值;
......
}
-->
<!-- css代码片段 -->
<style type="text/css">
p[class*=c] {
color: orange;
font-size: 18px;
}
</style>
</head>

<!-- html代码片段 -->

<body>
<p class="abc">这是一个p1</p>
<p class="bcb">这是一个p2</p>
<p>这是一个p3</p>
<ul id="abc">
<li>
<p class="cba">这是一个p4</p>
</li>
<li>
<p>这是一个p5</p>
</li>
<li>
<p>这是一个p6</p>
</li>
</ul>
</body>

</html>
代码演示效果:

课后作业

1.制作望庐山瀑布

2.制作水调歌头

3.制作如梦令

4.制作开心餐厅

5.制作加盟申请表

6.制作影视简介页面

7.制作爱奇艺视频播放列表页面

8.制作网易邮箱登录页面