css选择器优先级顺序 css三种样式及优先级
各位老铁们,大家好,今天由我来为大家分享css选择器优先级顺序,以及css三种样式及优先级的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
CSS选择器的优先级
通常我们可以将CSS的优先级由高到低分为六组:
1、无条件优先的属性只需要在属性后面使用!important。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
2、第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
3、第三级优先的属性是由一个或多个id选择器来定义的。例如#id{margin:0;}会覆盖.classname{margin:3px;}。
4、第四级的属性由一个或多个类选择器、属性选择器、伪类选择器定义。如.classname{margin:3px;}会覆盖 div{margin:6px;}
5、第五级由一个或多个类型选择器定义。如 div{margin:6px;}覆盖*{margin:10px;}。
最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。
另外,可以用一句极为简单的话来描述CSS优先级问题:当一个CSS选择器拥有更多的高级别属性时,它的优先级就会比较高。如#i100
*.c20*.c10{}的优先级就会高于#i100*.c10 div p span em{}
,这是由于前者拥有一个第三级和两个第四级的选择器而后者第三级和第四级的选择器各为一个,当然前者优先级会比较高。
如果想学习和交流更多html前端开发的技术你可以来我们这个群:先写下这三个数字:432,然后在写下中间这三个数字:664,最后写下的三个数字是:883,按照这个顺序连起来,群就会出现。还有更多的技术资料,学习课程。
CSS选择器是一个非常灵活的CSS属性,优雅的使用它会使你的页面代码不再臃肿,而且还可以作为hack的妙用方法之一。
当比较多个相同级别的CSS选择器优先级时,它们定义的位置将决定一切。下面从位置上将CSS优先级由高到低分为六级:
1、位于<head/>标签里的<style/>中所定义的CSS拥有最高级的优先权。
2、第二级的优先属性由位于<style/>标签中的@import引入样式表所定义。
3、第三级的优先属性由<link/>标签所引入的样式表定义。
4、第四级的优先属性由<link/>标签所引入的样式表内的@import导入样式表定义。
5、第五级优先的样式有用户设定。
最低级的优先权由浏览器默认。
理解了这些CSS优先级问题后,也就不必苦恼于样式定于中的此类问题了。
css选择器有哪些各种选择器优先级大小顺序
CSS选择器如下:
1.
标签名选择器
div
{
color:Red;}
/即页面中的各个标签名的css样式
2.类选择器
.divClass
{color:Red;}
/即定义的每个标签的class
中的css样式
3.ID选择器
#myDiv
{color:Red;}
/即页面中的标签的id
4.后代选择器(类选择器的后代选择器)
.divClass
span
{
color:Red;}
/即多个选择器以逗号的格式分隔
命名找到准确的标签
5.群组选择器
div,span,img
{color:Red}
/即具有相同样式的标签分组显示
选择器的优先级
1.最高优先级是
(直接在标签中的设置样式,假设级别为1000)
2.次优先级是(ID选择器
,假设级别为100)
#myDiv{color:Red;}
3.其次优先级是(类选择器,假设级别为10)
.divClass{color:Red;}
4.最后优先级是
(标签选择器,假设级别是
1)
div{color:Red;}
5.那么后代选择器的优先级就可以计算了啊
比如
.divClass
span
{
color:Red;}
优先级别就是:10+1=11
css优先级
所谓CSS优先级,即是指CSS样式在浏览器中被解析的先后顺序。既然样式有优先级,那么就会有一个规则来约定这个优先级,而这个“规则”就是重点。
样式表允许以多种方式规定样式信息。样式可以规定在单个的 HTML元素中,在 HTML页的头元素中,或在一个外部的 CSS文件中。甚至可以在同一个 HTML文档内部引用多个外部样式表。当同一个 HTML元素被不止一个样式定义时,会使用哪个样式呢?
一般而言,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字 4拥有最高的优先权。
•浏览器缺省设置
•外部样式表
•内部样式表(位于<head>标签内部)
•内联样式(在 HTML元素内部)
因此,内联样式(在 HTML元素内部)拥有最高的优先权,这意味着它将优先于以下的样式声明:<head>标签中的样式声明,外部样式表中的样式声明,或者浏览器中的样式声明(缺省值)。这只是一个大方面的优先级,在前面文章中我们讲过CSS有很多选择器,那么对于同种样式的CSS,各个选择器的优先级又是如何呢?
我们将某一个CSS看成一个三位数,通过比较数字的大小来获取优先级的高低,那么就会相当简单。在这里可以通过下面的规则来定义各个选择器对应的数字。
•百位数是该选择器上的id的数量的总和;
•十位数是用在该选择器上的其它属性选择器和伪类的总和。这里包括class(.example)和属性选择器(比如 li[id=red]);
•个位数是计算元素(就像table、p、div、*等等)和伪元素(就像:first-line等);
•如果两个选择器对应的数字相等,也就是具有同样的优先级,在样式表中后面的那个起作用。
•标有"!important"的规则具有最高优先级,例如H1{color:black!importan; font-family:sans-serif},前景色被标为important,这个前景色具有很高的优先级。但是这种声明容易引起混乱,因此通常使用得较少。
选择器数值
h1{color:blue;} 1
p em{color:purple;} 1+ 1= 2
.apple{color:red;} 10
p.bright{color:yellow;} 1+ 10= 11
p.bright em.dark{color:brown;} 1+ 10+ 1+ 10= 22
#id316{color:yellow} 100
一般我们还可以通过浏览器的插件来查看,到底哪个CSS起作用,比如Firebug(Firefox)、Developer Tools(IE8)等。上面我们介绍到当优先级相同时,哪个CSS起作用取决于所处的位置,通常后面的CSS优先级要高。但是对于IE浏览器,具有相同数值的动态CSS取决于添加的顺序前后,而不是添加的位置前后;后添加的优先级要高。
css选择器优先级顺序和css三种样式及优先级的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!