CSS的优先级也是一个很容易忽视的基础点,我对这方面也没仔细学过,所以就像加减乘法的优先级一样,必须牢记这些优先级。
CSS优先级
如果从高到低的顺序排列的话:
在属性后面加!important。它相当于最高命令,会覆盖所有样式。
box{color:red !important;}
老二是直接在html标签中添加style属性,也就是内联样式。
<p style="color: red; margin-left: 20px">This is a paragraph</p>第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:10px;}。
<html> <head> <style> #idname { background-color:yellow; } .classname { background-color:red; } </style> </head> <body> <div id="idname" class="classname"> <p>子代选择器</p> <p>子代选择器</p> </div> <p>其他段落</p> </body> </html>子代选择器
子代选择器
其他段落
第四优先级是由一个或多个 类选择器、属性选择器、伪类选择器定义.如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
- 第五级由一个或多个 类型选择器定义。如 div{margin:6px;} 覆盖 *{margin:10px;} 。
- 所以通配选择器就是最低的一级了。
平时还会遇到多个相同级别的CSS选择器优先级,这个时候就要从位置上来分级了:
- 位于head标签里的style中所定义的CSS拥有最高级的优先权。也就是内部样式表
第二级的优先属性由位于 style标签中的 @import 引入样式表所
定义。@import语法结构
@import + 空格+ url(CSS文件路径地址);
在html和css文件中均可使用。- 第三级的优先属性由link标签所引入的样式表定义。也就是外部样式表
- 第四级的优先属性由link标签所引入的样式表内的 @import 导入样式表定义。
- 第五级优先的样式有用户设定。
- 最低级的优先权由浏览器默认。
- 如果是同一个选择器,同一个属性,是从前到后,后面的会覆盖前面的样式。