css学习三:选择器
常用的css选择器分类:
- 元素选择器、标签选择器、element选择器
- id选择器
- class选择器
- *通配符,全局选择器
- 交集选择器
- 并级选择器(群组选择器)
- 后代选择器(包含选择器)
- 子选择器
- 伪选择器
1.标签选择器
语法:
标签 {属性:属性值;属性:属性值;属性:属性值;}
让你有的页面标签,都可以作为选择器
使用场景:
- 如果想改变某个元素的默认样式时,使用元素选择器
- 统一文档内某个元素的显示效果
2.id选择器
语法:
#id属性值 {属性:属性值;属性:属性值;属性:属性值;}
说明:
- 使用id选择器时,应该为元素定义id属性,如<div id="top"></div>
- id选择器的语法格式,在id属性值前加#
- id属性值,不能为关键字。所有的标签和属性,都是关键字。
- 一个页面的所有的id属性值,应该是唯一的
- id选择器最大的用处,创建网页的外围结构
3.class选择器
语法:
.class类名 {属性:属性值;属性:属性值;属性:属性值;}
说明:
使用类选择器时,应该为每个元素定义一个类名称
类选择器的语法格式,在class属性值(或者叫class名称)前面加"."
类名的第一个字符,不能使用数字
场景:
类选择器,更适合定义一类标签的样式
示例:
<p class="p1">abc</p> <p class="p1">123</p> <p class="p2">xyz</p> <p>456</p>
<style> .p1 { background-color: #008000; } .p2 { background-color: blue; } </style>
4.*通配符选择器
语法:
* {属性:属性值;属性:属性值;属性:属性值;}
*通配符选择器,通常用在样式表的最前面,通常用于标记padding,margin为0
* {
padding: 0;
margin: 0;
}
前面这四种选择器,常用。
5.交集选择器
语法:
选择器1选择器2 {属性:属性值;属性:属性值;属性:属性值;}
说明:
- 同时匹配多个选择器的选择器。即,既要有选择器1,也要有选择2的元素,才能匹配此选择器
- 多个选择器之间不能有空格,必须连续书写
- 标签选择器和类选择器的组合,标签选择器与id选择器的组合,id选择器与类选择器的组合
- 只能有以上三种组合,交集选择器才生效。
示例:
<p id="p1">abc</p> <p class="p2">123</p> <p id="p3" class="p4">xyz</p> <p id="p5" class="p6">opq</p> <p>456</p>
p#p1 {
background-color: red;
}
p.p2 {
background-color: green;
}
#p3.p4 {
background-color: blue;
}
.p6#p5 {
background-color: aqua;
}
6.并集选择器,也叫群组选择器
语法:
选择器1,选择器2,选择器3 {属性:属性值;}
说明:
- 并集选择器之间,使用 , 分隔
- 只要匹配其中的1个选择器,即匹配此选择器
示例:
#p1,.p2,#p3 {
background-color: red;
}
7.后代选择器
语法:
选择器1 选择器2 选择器3 {属性:属性值;}
说明:
- 选择器之间,使用空格分隔
- 选择器2所在的标签,是含选择器1所在的标签的下级标签
示例:
<div id="box1"> <p>xyz</p> </div> <div id="box2"> <p>xyz</p> <div> <p>klj</p> </div> </div>
<style> #box2 p { background-color: #008000; } </style>
8.子选择器
语法:
选择器1>选择器2 {属性:属性值;}
说明 :
- 子选择器之间,使用>分隔
- 选择器2所在的标签,是选择器1所在标签的下一级标签
使用以上的html标签,示例:
#box2>p {
background-color: #008000;
}
9.伪类选择器:
常用的伪类选择器,a标签,它的语法:
a:link {属性:属性值;} 超链接的初始状态
a:visited {属性:属性值;} 超链接被访问后的状态
a:hover {属性:属性值;} 超链接,在鼠标悬停时的状态
a:active {属性:属性值;} 超链接被激活后的状态,即鼠标按下时,超链接的状态
注意:
当这4个超链接伪类选择器,联合使用时,必须要注意它们的顺序,正常顺序为:a:link,a:visited,a:hover,a:active;错误的顺序将使选择器不能生效。
示例:
a:link {
color: red;
}
a:visited {
color: yellow;
}
a:hover {
color: #008000;
}
a:active {
color: blue;
}
<a href="#" target="_blank">百度</a>
选择器的权重:
在css中,会根据选择器的特殊性,来决定所定义的样式规则的顺序,具有更特殊选择器的规则,优先于具有一般选择器的规则。
如果两个规则的特殊性相同,那么后定义的规则优先。
css中,用4位数字表示权重,权重的表达方式,如:0,0,0,0
- 子选择器的权重为0000
- 群组选择器的权重为0000
- 继承样式的权重为0000
- 标签选择器的权重为0001
- class选择器的权重为0010
- 属性选择器的权重为0010
- 伪类选择器的权重为0010
- 伪元素选择器的权重为0010
- id选择器的权重为0100
- 包含选择器的权重:包含选择器的权重之和
- 行内样式的权重为1000
权重的数字越大,优先级越高。
示例:
<div id="box" class="cb">abc</div>
<style> div { background-color: #008000; border: solid black; } .cb { background-color: #FF0000; } #box { background-color: blue; } </style>
注意:同样的属性,会根据权重来选择;不同的属性,不会被覆盖掉。
示例中,div的权重最低,相同的属性background-color,将选择最高权重的#box中的属性。div中border属性,在其它样式中,并没有定义,因此div中的border属性将显示。
posted on 2018-11-11 12:22 myworldworld 阅读(191) 评论(0) 收藏 举报