CSS详细基础(五)选择器的优先级

news2024/11/25 7:32:29

本节介绍选择器优先级,优先级决定了元素最终展示的样式~

浏览器是通过判断CSS优先级,来决定到底哪些属性值是与元素最为相关的,从而作用到该元素上。CSS选择器的合理组成规则决定了优先级,我们也常常用选择器优先级来合理控制元素达到我们理想的显示状态,下面我们来具体了解下CSS选择器优先级及权重。

目录

一.选择器优先级

1.层叠性

 2.继承性

3.优先级 

4.权重叠加


一.选择器优先级

1.层叠性

当一个元素被定义了两种相同的属性时,按照就近原则选取属性的取值~

<!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>
     div
     {
         color: red;
         font-size: 40px;
     }
     div
     {
         color: orange;
     }

    </style>
</head>
<body>
    <div>心浮气躁乃大忌,希望你能一直铭记</div>
</body>
</html>

如上述代码,虽然div的color值被定义了两次,但是由于orange离得div更近(物理上),因此字体应该为橙色~

 2.继承性

如果子代选择器和它的父类选择器有相同的属性,则按照子类的取值呈现~

<!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>
        body
        {
            color: rgb(40, 47, 255);
            font-size: 40px;
            line-height: 1.5;
        }
        p
        {
            font-size: 20px;
        }
        div
        {
            /* 不继承body选择器的字体大小 */
            font-size: 10px;
            /* 但是继承行高的1.5倍属性 */
        }
    </style>
</head>
<body>
   男儿何不带吴钩,收取关山五十州
   <div>男儿何不带吴钩,收取关山五十州</div>
   <p>男儿何不带吴钩,收取关山五十州</p>
</body>
</html>

如上代码段中,body中的文字被设置为40px ,p中的为20px而div中只有10div,子代的优先级逐级递减,而优先级也愈发增加~效果如下:

3.优先级 

CSS选择器的优先级按照以下顺序排列:!important > 内联选择器 > ID选择器 > 类别选择器 > 属性选择器 > 伪类 > 元素选择器 > 通配符选择器 > 继承选择器。如果有多个选择器作用在同一个元素上,浏览器会根据这个优先级顺序来确定应用哪个样式。

在上述优先级顺序中,important是最高优先级,它可以覆盖其他任何优先级的样式。紧接着是内联选择器,其次是ID选择器,然后是类别选择器、属性选择器、伪类、元素选择器、通配符选择器和继承选择器。

需要注意的是,如果两个选择器的优先级相同,那么最后出现的样式将会被应用

判断下列文本的颜色?

<!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>
        div
        {
            color: red;
            font-size: 50px;
        }
        .yanse1
        {
           color: yellow;
           color:darkgrey
        }
        #yanse2
        {
            color: rgba(56, 227, 233, 0.815);
        }
        div
        {
            color: gold !important;
        }
    </style>
</head>
<body>
    <div class="yanse1" id="yanse2" style="color: bisque;">你能猜出来我是什么颜色?</div>
</body>
</html>

没错,是金色~

4.权重叠加

CSS权重叠加是指当多个CSS声明应用于同一元素时,它们的权重值会叠加,决定最终应用的样式。权重的计算是根据选择器的类型和数量来确定的。常见的选择器类型按照优先级从高到低为:内联样式,ID选择器,类选择器,元素选择器和通配符选择器。在同一类型的选择器中,选择器的数量越多,权重值越高。

通俗的说,权重值是复合选择器之间优先级的对比~

计算公式大致由下列表格决定:

 选择器 权重计算
继承父标签的样式 , * 通配符选择器0,0,0,0
标签选择器0,0,0,1
类选择器,链接伪类选择器0,0,1,0
ID 选择器0,1,0,0
标签的行内样式 style 属性1,0,0,0
样式后添加 !important权重无穷大

需要注意的是,不同选择器之间的区别为量级,不存在进位的说法! 

如下这段代码,包含了3种复合样式控制属性:

    <style>
        li
        {
            color: red;
            font-size: 50px;
        }
        ul li
        {
            color: blue;
        }
        .gold li
        {
            color: gold;
        }
    </style>
  • 第一个选择器的权值为:0,0,0,1
  • 第二个选择器的权值为:0,0,0,2
  • 第三个选择器的权值为:0,0,1,1

因此,文本的颜色应该为金色:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1050721.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

038:vue页面头部提示低版本浏览器升级问题

第038个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

一例疑似MMCore下载器分析

概述 这是一例文件夹病毒&#xff0c;手法相对比较高级&#xff0c;通过域名关联到MMCore样本&#xff0c;可能与印度方向APT组织有关联。 这个病毒使用了分离免杀技术&#xff0c;有2个样本&#xff0c;一个加载器&#xff0c;一个payload。 加载器(文件名为dwm22.exe)的主要…

并发——中断机制

1.中断概述 中断只是一种协商机制&#xff0c;如果要中断一个线程&#xff0c;需要手动调用该线程的interrupt方法&#xff0c;将此线程对象的中断标识设为true(默认中断标志位为false)&#xff0c;接着我们需要手动写代码去不断的检测要中断线程的标识位&#xff0c;如果为tr…

阿木实验室PrometheusV1.1安装+Ubuntu 20.04

1. 安装ros-noetic 2. 安装Mavros包 sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras3. GeographicLib wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh这里可以使用代理 &#xff1a;wg…

笔训day1

目录 选择题 1、%m.ns 编程题 第一题 第二题 选择题 1、%m.ns m&#xff1a;字符串的宽度。 n&#xff1a;左起截取目标字符串n个字符&#xff0c;右对齐&#xff0c;补空格。 1、字符串长度>n>m : 受n控制&#xff0c;左起截取n个字符&#xff0c;右对齐&#x…

什么是Times New Roman 字体

如何评价 Times New Roman 字体&#xff1f;&#xff1a;https://www.zhihu.com/question/24614549?sortcreated 新罗马字体是Times New Roman字体&#xff0c;是Office Word默认自带的英文字体之一。 中英文字体 写作中&#xff0c;英文和数字的标准字体为 Times New Roma…

什么是AI客流量算法?如何应用在实际场景中?

客流量分析算法简而言之就是一种利用数据分析和机器学习技术进行人流量统计、预测和分析的算法。它能够根据不同的数据来源&#xff0c;如摄像头、传感器等&#xff0c;对特定区域内的客流量进行实时监测和分析&#xff0c;并通过对历史数据的综合分析&#xff0c;提供客流趋势…

MySQL索引优化,设计原则 及 trace 详解(思维导图)

MySQL版本&#xff1a;8.0.33 MySQL联合索引使用总结&#xff1a;

基于 Python+Django 实现一个电商购物网站系统

随着互联网的高速发展&#xff0c;电子商务行业也正迎来了其黄金时代。如何搭建一个功能完备、体验良好的电商网站成了许多开发者的关心话题。 今天&#xff0c;我将带大家使用Python语言和Django框架&#xff0c;快速打造一个电商购物系统。如果你有一定的Python基础&#xf…

轻松批量重命名:使用编号为文件重新命名,提高工作效率!

如果你经常需要处理大量文件&#xff0c;那么你一定知道给文件重命名是一项多么繁琐的任务。但是&#xff0c;我们今天将为你提供一种简单的方法&#xff0c;可以批量给文件进行重命名&#xff0c;让你轻松提高工作效率 首先我们要进入文件批量改名高手主页面&#xff0c;并在…

px4的gazebo仿真相机模型报错解决办法,返回值256

&#x1f449;事情起因&#xff1a;我想做关于PX4无人机的摄像头仿真&#xff0c;根据PX4的官网文件 Tools/sitl_gazebo文件夹里面有对应的模型可以使用&#xff0c;我就想在mavros_posix_sitl文件里面修改vehicle参数&#xff0c;比如直接将vehicle“iris_stereo_camera”。然…

C++核心编程--对象篇

4.2、对象 4.2.1、对象的初始化和清理 用于对对象进行初始化设置&#xff0c;以及对象销毁前的清理数据的设置。 构造函数和析构函数 防止对象初始化和清理也是非常重要的安全问题 一个对象或变量没有初始化状态&#xff0c;对其使用后果是未知的同样使用完一个对象或变量&…

【Java 进阶篇】MySQL 多表查询详解

MySQL 是一个强大的关系型数据库管理系统&#xff0c;多表查询是数据库操作中的重要部分之一。多表查询允许您从多个表中检索和操作数据&#xff0c;以满足复杂的数据需求。本文将介绍 MySQL 多表查询的基本概念、语法和示例&#xff0c;以及一些常见的多表查询场景。 什么是多…

PC版企业微信逆向之消息发送CALL-找不到参数文本消息内容,但是确定这就是消息发送CALL

现在遇到的问题是消息内容-如何查看通过esi里面的消息内容&#xff0c;找不到有效的 找不到参数文本消息内容&#xff0c;但是确定这就是消息发送CALL 消息发送call特征码为8d 47 08 50 56 e8 ?? ?? ?? ?? 8b 07 //消息发送CALL如下 **02852932 8B07 mov eax,dword ptr…

进度条程序的编写

目录 回车换行和换行的区别 倒计时程序 进度条程序 进度条代码的优化 version2 进度条代码的优化version3 在编写进度条程序之前我们需要先了解一个概念&#xff1a;回车换行和换行的区别。 回车换行和换行的区别 刚听到的时候会很好奇&#xff0c;回车换行和换行有什么区别吗&…

【数据结构】树、二叉树的概念和二叉树的顺序结构及实现

目录 前言&#xff1a;一、树的概念及结构1.树的概念2.树的相关概念3.树的存储4.树在实际中的运用 二、二叉树概念及结构1.概念2.特殊的二叉树&#xff08;1&#xff09;满二叉树&#xff08;2&#xff09;完全二叉树 3.二叉树的性质4.二叉树的存储(1)顺序存储(2)链式存储 三、…

山西电力市场日前价格预测【2023-09-30】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-09-30&#xff09;山西电力市场全天平均日前电价为267.99元/MWh。其中&#xff0c;最高日前电价为485.05元/MWh&#xff0c;预计出现在18: 45。最低日前电价为0.00元/MWh&#xff0c;预计出…

手机搜狗输入法,输入拼音时如何分割拼音,调出“分词“功能,如何微信或QQ使用发送按钮而不是换行?

背景 有时候打字&#xff0c;输入 “xian” 的时候我们的意图是 “xi’an” &#xff08;西安&#xff09;&#xff0c;或者输入 “yue” 的时候希望是 “yu’e”&#xff08;余额&#xff09; 如何输入这个分隔符 ’ 呢&#xff1f; 设置方法 默认页面如图 希望设置成 点…

python安装第三方模块方法

正常情况下安装python第三方模块没啥说的&#xff0c;但是由于python安装模块默认是在外网下载安装&#xff0c;牵扯外网网速问题&#xff0c;所以可以配置下使用国内某镜像源来下载模块 python -m pip install xxxxxxxxxxx 和 pip install xxxxxxxxxx 的命令都可下载安装第三…

Junit单元测试为什么不能有返回值?

这个问题的产生来源于我们老师上节课说的我们班一个男生问他的想法&#xff0c;刚开始听到这个还觉得挺有意思&#xff0c;我之前使用单元测试好像下意识的就将它的返回值写为void,一般都是进行简单的测试&#xff0c;也从没思考过在某个单元测试中调用另一个单元测试&#xff…