目录
1 介绍
什么是选择器:如果要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。
HTML页面中的元素就是通过CSS选择器进行控制的。
2 常用三种选择器
2.1 标签选择器
p{
color: red;
}
2.2 id选择器
id:(唯一性)
id命名:数字、字母、下划线、中划线(-),不能用数字开头
#p_1{
font-size: 30px;
color: yellowgreen;
}
2.3 class选择器
.p_2{
font-weight: bold;
color: yellow;}
2.4 *通配符选择器
3 常用选择器的优先级:
id 选择器>class 选择器>标签选择器
测试代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
/*通用选择器 *代表该页面中的所有的元素 */
/**{
color: red;
background-color: black;
}*/
/*元素选择器*/-->
div{
width: 200px;
height: 200px;
/*背景颜色*/
background-color: blue;
/*边框的粗细 边框的风格 边框的颜色 */
border: 1px solid red;
}
/*ID选择器 #id的名称 id的名称保证唯一
* ID的命名: 数字、字母、下划线、中划线组成,不能用数字开头
* */
#div1{
background-color: green;
}
/*class类选择器*/
.div_1{
background-color: pink;
}
</style>
</head>
<body>
<!--<div class="div_1">1</div>-->
<div>2</div>
<!--<div class="div_1">3</div>-->
<p>你好</p>
</body>
</html>
效果:
最后总结一下,十大选择器与伪元素的权重情况:
选择器 | 表达式或示例 | 说明 | 权重 |
---|---|---|---|
ID选择器 | #aaa |
| 100 |
类选择器 | .aaa |
| 10 |
标签选择器 | h1 | 元素的tagName | 1 |
属性选择器 | [title] |
| 10 |
相邻选择器 | selecter + selecter | 拆分为两个选择器再计算 |
|
兄长选择器 | selecter ~ selecter | 拆分为两个选择器再计算 |
|
亲子选择器 | selecter > selecter | 拆分为两个选择器再计算 |
|
后代选择器 | selecter selecter | 拆分为两个选择器再计算 |
|
通配符选择器 | * |
| 0 |
各种伪类选择器 | 如:link, :visited, :hover, :active, :target, :root, :not等 | 10 | |
各种伪元素 | 如::first-letter,::first-line,::after,::before,::selection | 1 |
4 CSS 中其他选择器
4.1 后代选择器
只要包含该标签对象即可
div span{
font-size: 27px;
font-family: 宋体;
color: red;
}
4.2 子选择器 直系子标签
div>span{
color: red;
}
4.39 +兄弟选择器 只会改变下面相邻的元素对象
#p_1+p{
color: green;
}
4.4 ~兄弟选择器 后面所有的兄弟对象都会改变
#p_1~p{
color: red;font-size: 30px;
}
4.5 伪类选择器
a:hover{
color: red;
}
测试代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
/*后代选择器 只要包含该标签对象即可 */
/*div span{
font-size: 27px;
font-family: 宋体;
color: red;
}*/
/*子选择器 直系子标签*/
/* div>span{
color: red;
}
*/
/*兄弟选择器 只会改变下面相邻的元素对象*/
/*#p_1+p{
color: green;
}*/
/*兄弟选择器 后面所有的兄弟对象都会改变*/
#p_1~p{
color: red;
font-size: 30px;
}
/*伪类选择器*/
a:hover{
color: red;
}
</style>
</head>
<body>
<div>
<span>csdn</span>
<p>
<span>csdn123</span>
</p>
</div>
<span>csdn</span>
<hr />
<p id="p_1">我们不一样</p>
<p>我们不一样</p>
<p>我们不一样</p>
<hr />
<a href="">京东网址</a>
</body>
</html>
效果: