CSS四种引用方式
1.行内样式
在四种引用方式中优先级最高,是在 html 标签上写 style 样式,一般不推荐这么写
2.内嵌样式
优先级次之,是在 <head> 标签中写 <style> 样式,一般简单、单一的页面可以使用,复杂的多页面不推荐
3.导入样式
优先级次之,将独立的 CSS 文件引入 <head> 标签,包在 <style> 标签中,这样引入 @import"mystyle.css"
;
导入式会在整个网页加载完后再加载CSS文件,因此这就导致了一个问题,如果网页比较大则会儿出现先显示无样式的页面,闪烁一下之后,再出现网页的样式。平时基本不用。
4.链接样式
优先级次之,将独立的 CSS 文件直接引入<head>标签,注意引入的顺序,一般公共的样式先引入,平时使用链接样式最多,<link href="mystyle.css" rel="stylesheet" type="text/css"/>
CSS样式的优先级
ID 选择器>类选择器>标签选择器
举例
在这个例子中,我们看到浏览器显示的样式从上到下的排列,它按照优先级先后顺序排列的,最上面的优先级最高。
总结上面案例:
1.在浏览器中优先级最高的排在最上面,会作用到对应 html 上,下面的样式就会被覆盖不起作用;
2.ID选择器在后代选择器和类选择器及标签选择器中的优先级最高;
3.后代选择器的数量相同,里面的类选择器和标签选择器也相同,那么优先级与他们的书写顺序有关,在下面的会覆盖上面的样式;
4.后代选择器中如果包含类选择器(不含ID选择器),类选择器越多优先级越高;
5.后代选择器中如果只有标签选择器,那么标签选择器多的那个优先级高;
我看到有博客说到计算优先级:
在CSS中,会根据选择器的特殊性来决定所定义的样式规则的次序,具有更特殊选择器的规则优先于具有一般选择器的规则,如果两个规则的特殊性相同,那么后定义的规则优先。
把特殊性分为 4 个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值。
4个等级的定义如下:
第一等:代表内联样式,如: style=””,权值为 1000。
第二等:代表ID选择器,如: #content,权值为 100。
第三等:代表类,伪类和属性选择器,如 .content,权值为 10。
第四等:代表类型选择器和伪元素选择器,如 div p,权值为 1。
注意:通用选择器(*),子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以他们的权值都为 0。
例如:ul#nav li.active a,其中 #nav 为二等选择器,.active 为三等选择器,ul、li 和 a 为四等选择器。则整个选择器表达式的特殊性的值为 1100+110+31=113
.ul li a,其中 .ul 为三等选择器,li 和 a 为四等选择器。则整个选择器表达式的特殊性的值为 110+2*1=12
我直接搬过来了,这个说法更清晰明了。