美文网首页web前端
css拾遗(4)-优先级问题

css拾遗(4)-优先级问题

作者: 姜治宇 | 来源:发表于2022-03-31 09:55 被阅读0次

行内样式优先级不一定是最高的

虽然行内样式优先级一般是最高的,但也有例外:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .hi{
            color:red !important;
        }
    </style>
</head>
<body>
   <div class="hi" style="color:yellow;">hello</div>
</body>
</html>

最终呈现的是红色文字,说明增加了重要声明 !important 的优先级是更高的。但是重要声明滥用也是挺麻烦的,我们尽量使用css规定的优先级规则。
那如何计算优先级呢?

计算优先级

计算优先级的方式,可以用数值来标记,通常用逗号间隔。
比如“1,2,2”表示1个ID,2个类,2个标签组成。

/*1,0,1*/
#nav a{...}
/*1,1,0*/
#nav .list{...}

如下代码最终呈现是黄色:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #nav a{
            color:red;
        }
        #nav .list{
            color:yellow;
        }
    </style>
</head>
<body>
   
    <div id="nav">
        <a href="#" class="list">hello</a>
    </div>
</body>
</html>

“1,0,0”的优先级高于“0,10,2”,以此类推。
注意,以下优先级是一样的:

.nav a{...}
/*标签和类名之间没有空格*/
a.list{...}

如下代码最终呈现是黄色:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .nav a{
            color:red;
        }
        a.list{
            color:yellow;
        }
    </style>
</head>
<body>
   
    <div class="nav">
        <a href="#" class="list">hello</a>
    </div>
</body>
</html>

如果只用类名,优先级会降低,最终还是红色:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .nav a{
            color:red;
        }
        .list{
            color:yellow;
        }
    </style>
</head>
<body>
   
    <div class="nav">
        <a href="#" class="list">hello</a>
    </div>
</body>
</html>

经验法则

1、在选择器中不要使用ID。

就算只用一个ID,也会大幅提升优先级。

2、尽量不要使用重要声明!important

相关文章

  • css拾遗(4)-优先级问题

    行内样式优先级不一定是最高的 虽然行内样式优先级一般是最高的,但也有例外: 最终呈现的是红色文字,说明增加了重要声...

  • css选择器优先级以及photoshop快捷键

    css选择器优先级 CSS选择器的优先级:作用的元素一样,样式一样,就会有优先级问题,当优先级相同时,一旦发生重...

  • CSS

    [TOC] CssNotes 1、HTML5样式嵌入方法 2、css优先级 3、css长度单位 4、css选择器 ...

  • 前端复习第二周

    主要复习CSS,style来引入css,link来外联css文件 优先级标签内css优先级 > hand内部css...

  • CSS要点记录

    CSS要点记录 CSS 指层叠样式表 (Cascading Style Sheets) 多种样式时的优先级问题 数...

  • 1.css基础

    1.CSS的定义 2.如何编写CSS (优先级逐次降低) 3.CSS选择器综述 4.CSS伪类和伪元素 5.CSS...

  • css优先级问题

    样式的优先级 多重样式(Multiple Styles):如果外部样式、内部样式和内联样式同时应用于同一个元素,就...

  • CSS优先级问题

    想要自己进行修改bootstrap又不能修改源文件,只能用自己的css文件进行覆盖样式。所以就必须要了解引入优先级...

  • css选择器的优先级                      

    css选择器的使用条件:当样式冲突时,就会有优先级问题。 其中css选择器可以分为:1.通配选择器,其优先级为0;...

  • 2020年9-10月份前端面试题总结

    css 1.css的盒子模型 2.div垂直水平居中的方法 3.css选择器的优先级 4.css如何清除浮动以及原...

网友评论

    本文标题:css拾遗(4)-优先级问题

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