1.标签选择器(元素选择器)
2.ID选择器(唯一性,一次引用)
3.类选择器(单类选择器,多类选择器)
4.属性选择器(简单属性选择,具体属性选择,部分属性选择, 特定属性选择)
5.派生选择器(后代选择器(descendant selector),子元素选择器(child selector),相邻兄弟选择器(Adjacent sibling selector))
1.类名选择器 .
2.id选择器 #
3.标签名选择器 p
4.通用符选择器 *
5.子代选择器 div>p
6.后代选择器 div p
7.伪类:aftet :before
8.第n个子代:p:nth-child(n)
1、标记选择器(如:body,div,p,ul,li)
2、id选择器(如:id="name",id="name_txt")
3、类选择器(如:id="name",id="name_txt")
4、后代选择器(如:#head.navulli从父集到子孙集的选择器)
5、子元素选择器(如:div>p,带大于号>)
6、伪类选择器(如:就是链接样式,a元素的伪类,4种不同的状态:link、visited、active、hover。)
我们来看一下css选择器优先级的算法:
每个规则对应一个初始"四位数":0、0、0、0
若是行内选择符,则加1、0、0、0
若是ID选择符,则加0、1、0、0
若是类选择符/伪类选择符,则分别加0、0、1、0
若是元素选择符,则分别加0、0、0、1
算法:将每条规则中,选择符对应的数相加后得到的”四位数“,从左到右进行比较,大的优先级越高。
看完了上述内容,那我们就来看看css选择器优先级的具体排序。
css选择器优先级最高到最低顺序为:
1.id选择器(#myid)
2.类选择器(.myclassname)
3.标签选择器(div,h1,p)
4.子选择器(ul>li)
5.后代选择器(li a)
6.伪类选择(a:hover,li:nth-child)
最后,需要注意的是:
!important的优先级是最高的,但出现冲突时则需比较”四位数“;
优先级相同时,则采用就近原则,选择最后出现的样式;
继承得来的属性,其优先级最低。
1.类名选择器 .
2.id选择器 #
3.标签名选择器 p
4.通用符选择器 *
5.子代选择器 div>p
6.后代选择器 div p
7.伪类:aftet :before
8.第n个子代:p:nth-child(n)
<div class = "a" id = "b">
<p></p>
</div>
1.类名选择器;
.a{
width:300px;
}
2.子代选择器;
.a>p{
width:300px;
}
3.ID选择器;
#b{
width:300px;
}
4.标签选择器;
div{
width:300px;
}
5.通用选择器;
*{
margin:0 auto;
}
6.伪类选择器;
a:hover{
width:300px;
}
权重:ID>子代>类名=伪类>标签>通用