美文网首页
选择器优先级

选择器优先级

作者: 亚萍 | 来源:发表于2016-12-29 22:31 被阅读32次

    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 选择器>类选择器>标签选择器

    举例

    html css 浏览器中的 CSS 显示顺序

    在这个例子中,我们看到浏览器显示的样式从上到下的排列,它按照优先级先后顺序排列的,最上面的优先级最高。

    总结上面案例:
    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 为四等选择器。则整个选择器表达式的特殊性的值为 1
    10+2*1=12

    我直接搬过来了,这个说法更清晰明了。

    相关文章

      网友评论

          本文标题:选择器优先级

          本文链接:https://www.haomeiwen.com/subject/ycmpvttx.html