1. CSS选择器分类:
- 包含选择器(组合选择器)
- 属性选择器
- 伪类选择器
- 伪元素选择器
1.1 基本选择器
- 标签选择器(根据标签的名称设置对应的样式)
- ID选择器(通过获取标签里面的ID属性去设置对应的样式,设置的时候“#+id的属性值”)
- 类选择器(通过获取标签里面的class属性去设置对应的样式,设置的时候“.+class的属性值”)
- 通配符选择器(通过*设置对应的样式)
- 注意:四种的选择器的优先级:ID选择器>类选择器>标签选择器>通配符选择器
1.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>
div{
color: brown;
}
</style>
</head>
<body>
<div>这是一个div</div>
</body>
</html>
- 运行结果
1.1.2 ID选择器
- 代码表示
<!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>ID选择器</title>
<style>
#one{
color: aqua;
}
</style>
</head>
<body>
<p id="one">这是一个段落</p>
</body>
</html>
- 运行结果
1.1.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>
.two{
color: blueviolet;
}
</style>
</head>
<body>
<p class="two">这是一个段落</p>
</body>
</html>
- 运行结果
1.1.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>通配符选择器</title>
<style>
*{
color: chartreuse;
}
</style>
</head>
<body>
<p>这是一个段落</p>
<div>这是一个div</div>
<b>这是一个加粗字体</b>
</body>
</html>
- 运行结果
1.2 包含选择器(组合选择器)
- 子代选择器(>)(获取的某个标签的第一级子标签)
- 后低选择器(空格)(获取的某个标签的所有子标签)
- 分组选择器(,)(也叫做逗号选择器,可以设定多个标签,使用逗号进行分割)
1.2.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>
div.list > ul{
color: blue;
}
</style>
</head>
<body>
<div class="list">
<ul>
<li>这是列表1</li>
<li>这是列表2</li>
<li>这是列表3</li>
<li>这是列表4</li>
<li>这是列表5</li>
</ul>
<li>这是列表6</li>
<li>这是列表7</li>
<li>这是列表8</li>
</div>
</body>
</html>
- 运行结果
1.2.2 后代选择器
- 代码表示
<!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 li{
color: blueviolet;
}
</style>
</head>
<body>
<div class="list">
<ul>
<li>这是列表1</li>
<li>这是列表2</li>
<li>这是列表3</li>
<li>这是列表4</li>
<li>这是列表5</li>
</ul>
<li>这是列表6</li>
<li>这是列表7</li>
<li>这是列表8</li>
</div>
</body>
</html>
- 运行结果
1.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>
#one,.box{
color: darkgreen;
}
</style>
</head>
<body>
<p id="one">这是一个段落</p>
<div class="box">这是一个div</div>
</body>
</html>
- 运行结果
1.3 属性选择器
- [attribute](选中某个标签中存在的某个值)
- attribute="text"(确切的等于某个值)
- attribute *= "e"(属性里面包含某个值)
- attribute^= "e"(属性中的值以某个值开始)
- attribute $= "rl"(属性中的值以某个值结尾)
- attribute + p(表示下一个标签)
- attribute="这是一个标题"(属性等于某个值)
1.3.1 CSS[attribute] 标签
- 代码表示
<!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>
<style>
div[title]{
color: aqua;
}
</style>
</head>
<body>
<div class="container">这是第一个div</div>
<div title="这是一个标题">这是第二个div</div>
</html>
- 运行结果
1.3.2 CSS[attribute="text"]标签
- 代码表示
<!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>
<style>
input[type="text"]{
color: cornflowerblue;
}
</style>
</head>
<body>
<input type="text" value="张三">
<input type="email" value="王五">
<input type="url" value="李四">
</html>
- 运行结果
1.3.3 CSS[attribute *= "e"]标签
- 代码表示
<!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>
<style>
input[type *= "e"]{
color: forestgreen;
}
</style>
</head>
<body>
<input type="text" value="张三">
<input type="email" value="王五">
<input type="url" value="李四">
</html>
- 运行结果
1.3.4 CSS[attribute^= "e"]标签
- 代码表示
<!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>
<style>
input[type ^= "e"]{
color: crimson;
}
</style>
</head>
<body>
<input type="text" value="张三">
<input type="email" value="王五">
<input type="url" value="李四">
</html>
- 运行结果
1.3.5 CSS[attribute $= "rl"]标签
- 代码表示
<!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>
<style>
input[type $= "rl"]{
color: hotpink;
}
</style>
</head>
<body>
<input type="text" value="张三">
<input type="email" value="王五">
<input type="url" value="李四">
</html>
- 运行结果
1.3.6 CSS[attribute + p]标签
- 代码表示
<!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>
<style>
.msg + p{
color: cornflowerblue;
}
</style>
</head>
<body>
<div class="msg">这是一个div</div>
<p id="msg2">这是一个段落</p>
</html>
- 运行结果
1.3.7 CSS[attribute="这是一个标题"]属性
- 代码表示
<!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>
<style>
[id="msg2"]{
color: chocolate;
}
</style>
</head>
<body>
<div class="msg">这是一个div</div>
<p id="msg2">这是一个段落</p>
</html>
- 运行结果
1.4 伪类选择器
- link(超链接点击之前)
- visited(超链接被访问之后)
- hover(鼠标放在超链接上的时候)
- active(超链接被激活的时候——鼠标点击标签但是不松手的时候)
- 注意:a:hover 必须在 CSS 定义中的 a:link 和a:visited 之后,才能生效!a:active 必须在 CSS 定义中的 a:hover 之后才能生效!伪类名称对大小写不敏感。
-
代码表示
<!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>
<style>
a:link{
color: aquamarine;
}
a:visited{
color: rgb(0, 38, 255);
}
a:hover{
color: blueviolet;
}
a:active{
color: brown;
}
</style>
</head>
<body>
<a href="demo05-html">戳我</a>
</body>
</html>
1.5 伪元素选择器
- ::before在元素之前插入内容
- ::after在元素之后插入内容
- 注意:使用before和after的时候一定给要写上content属性
- 代码表示
<!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>
<style>
p{
color:brown;
font-size:20px;
}
p::before{
content: "张三说";
color: blueviolet;
}
p::after{
content: "对不对?";
color: aquamarine;
}
</style>
</head>
<body>
<p>这是一个段落</p>
</body>
</html>
- 运行结果