css规则之间可以互相覆盖,这一点我们应该已经习以为常了。然而正是由于规则之间可以互相覆盖、子元素继承父元素的默认行为,导致了css冲突的问题。 碰到css冲突时,通常我们会加入一些更加详细的规则来明确如何显示,以此解决冲突。通常越详细的规则优先级会越高,但优先级究竟是如何定义的呢?
首先根据CSS定义位置来区别,优先级从低到高如下:
同样定义位置的规则,根据不同类型选择器的个数来确定。选择器的优先级从低到高如下规则:
即 ID > 伪类 > 属性 > 类 > 元素 > 通配符,首先我们数规则中ID的个数,ID个数越多的规则优先级越高。如果相同,再数伪类,以此类推。
来个例子:
立即学习“前端免费学习笔记(深入)”;
article p span{ color: blue;}#red{ color: red;}再比如:
#wrapper header div nav #gnavi{ list-style-type: none;}#top #hright #gnavi{ list-style-type: square;}此外,最高优先级的是!import的属性,如果都加了!important那就继续数规则中属性和元素的个数。
能避免!important的话就不要这样写了,这样的样式太难扩展了。
参考链接:
除非注明,本博客文章均为原创,转载请以链接形式标明本文地址: http://harttle.com/2015/07/16/css-priority.html
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号