人亦已歌 发表于 2023-1-31 22:49:34

CSS核心(二十四)css样式的优先级精讲

先说一下何为优先级
1、假设我们给一个标签同时写了行内样式、内联样式和外联样式,而且样式属性全部一样,请问最终生效的是哪个呢?
答案是:行内样式>内联样式/外联样式,内联样式和外联样式不存在优先级问题,谁后渲染(加载)谁生效。

2、假设一个标签同时有id、class和name属性,请问,如果我们分别使用id、class和name选择器给这个标签设置样式,最终生效的是哪个呢?
答案是:伪类首字选择器>伪类首行选择器>!important>id选择器>类名选择器/属性选择器>标签名选择器>通配选择器

以上两个问题就是优先级的问题。


下面我们用代码来说明一下:


<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>css样式的优先级</title>
</head>
<body>
<style>
        *{
                color:pink !important;       
        }
       
        #myid{
                color:blue;       
        }
       
        .box{
                color:green;       
        }
       
        div:first-letter{
                color:brown;       
        }
        div:first-line{
                color:yellow;       
        }
       
        {
                color:purple;       
        }
       
        div{
                /*width:100px;
                height:100px;*/
                /* !important强制优先 */
                /*background:#f00 !important;        */
               
               
                color:red;
        }
</style>
<div class="box" id="myid" name="zhangsan">
        飞来山上千寻塔,<br>
    闻说鸡鸣见日升!
</div>
</body>
</html>



显示结果如下:



以上代码中,我们分别用id、name、class、标签、首字、首行给div设置了样式,我们看到,最终首字的颜色覆盖了首行的颜色,由于我们给通配选择器中的color属性添加了!important,所以通配选择器的color属性的优先级高于除了首字和首行选择的器的任何选择器,最终第二行的颜色是通配选择器的颜色。


boybinxue 发表于 2023-2-17 15:12:21

写的太好了,我也是学计算机的,深有感触啊

0 发表于 2023-2-24 03:20:36

jiangsibei 发表于 2023-2-28 10:53:35

我是文盲,所以我不懂。我是孜孜不倦的追求者,所以我成功。。。

jian81237 发表于 2023-3-5 22:26:42

编程的不一定是程序员,比如我就只是业余爱好者,一个程序能够运行畅通是我最大的愿望。我甚至是最基本的VB6也没有熟悉,但为了提高实际工作中的效率,只有勉为其难的编一些小程序在工作中用。相比之下你们这些经过系统学习的人是幸运的,共同努力吧,但愿你们能成为中国的娇子。

xtsmq 发表于 2023-3-11 22:27:26

这太使我我感动了,作为一个计算机专业的人,我觉的他说的太对了

寂静星夜 发表于 2023-3-17 22:27:51

真是让人受益非浅,真希望多看到有这样的文章。也真希望大家能多帮助我,我只是一个初学者,这篇的文章让我的平静了下来。本以为程序设计不是什么难事。、

土匪假期 发表于 2023-3-22 13:06:54

谢了多交流才会进步吗

aixo 发表于 2023-3-27 13:56:39

不错!

shliping 发表于 2023-3-30 14:34:57

谢谢您的提醒。我好象也在犯你的错误
页: [1] 2 3 4
查看完整版本: CSS核心(二十四)css样式的优先级精讲