css 权重

ops/2024/12/12 19:24:26/

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

CSS 权重(或称为 CSS 优先级)决定了当多个 CSS 规则作用于同一元素时,哪一条规则会被应用。CSS 权重是由选择器的不同组成部分决定的。它通常是由数字形式表示的,数字越大,优先级越高。

1. CSS 权重的计算规则

CSS 权重是由四个组成部分计算得出的:

  1. 内联样式(Inline styles):

    • 内联样式的权重最高,因为它直接在 HTML 元素上设置了样式。
    • 权重计算:a = 1,其他三个位置为 0
    • 例如:<div style="color: red;">
  2. ID 选择器(ID selectors):

    • ID 选择器的权重较高。
    • 权重计算:b = 1,其他两个位置为 0
    • 例如:#header
  3. 类选择器、属性选择器和伪类选择器(Class selectors, Attribute selectors, Pseudo-classes):

    • 类选择器、属性选择器和伪类选择器的权重次之。
    • 权重计算:c = 1,其他位置为 0
    • 例如:.nav, [type="text"], :hover
  4. 元素选择器和伪元素选择器(Element selectors and pseudo-elements):

    • 元素选择器和伪元素选择器的权重最低。
    • 权重计算:d = 1,其他位置为 0
    • 例如:div, p, ::before

2. 权重的计算示例

CSS 权重是根据选择器的组成部分来计算的。计算的方式如下:
将每种选择器类型的数量作为数字,组成一个四元组 (a, b, c, d)。每一位代表不同类型选择器的数量,权重越高,优先级越大。

示例 1:

css">/* 选择器:div */
div {color: red;
}
  • 权重:(0, 0, 0, 1)

示例 2:

css">/* 选择器:.class */
.class {color: green;
}
  • 权重:(0, 0, 1, 0)

示例 3:

css">/* 选择器:#id */
#id {color: blue;
}
  • 权重:(0, 1, 0, 0)
示例 4:
css">/* 选择器:div.class */
div.class {color: yellow;
}
  • 权重:(0, 0, 1, 1)

示例 5:

css">/* 选择器:#id .class */
#id .class {color: purple;
}
  • 权重:(0, 1, 1, 0)

3. 权重比较规则

当多个 CSS 规则同时作用于同一元素时,浏览器会选择权重较高的规则应用。如果权重相同,则后面的规则会覆盖前面的规则。

示例:
css">/* 权重为 (0, 0, 1, 0) */
.class {color: red;
}/* 权重为 (0, 1, 0, 0) */
#id {color: blue;
}/* 权重为 (0, 0, 0, 1) */
div {color: green;
}

对于同一元素,#id 会应用 color: blue,因为它的权重 (0, 1, 0, 0) 高于 .class (0, 0, 1, 0)div (0, 0, 0, 1)

4. 使用 !important 声明

!important 可以强制某条规则的应用,绕过正常的权重计算规则。具有 !important 的规则将优先应用,但它的优先级仍然遵循上述权重计算规则。如果多个规则都包含 !important,则按正常的权重规则比较。

示例:

css">/* 权重为 (0, 1, 0, 0) */
#id {color: blue !important;
}/* 权重为 (0, 0, 1, 0) */
.class {color: red !important;
}

在这种情况下,#id { color: blue !important; } 会应用,因为 !important 使其具有最高的优先级。

5. 总结

  • 内联样式 > ID 选择器 > 类选择器、属性选择器、伪类 > 元素选择器、伪元素选择器
  • 计算权重时,按照选择器的种类和数量来给出优先级。
  • 使用 !important 可以强制应用某条规则,但仍然受权重规则的限制。

掌握 CSS 权重规则可以帮助你更好地管理样式的应用顺序,避免样式冲突。


http://www.ppmy.cn/ops/141317.html

相关文章

Linux Minio 安装

找个安装目录 /usr/local/ 下 mkdir minio cd minio mkdir data mkdir bin chmod 777 data/ chmod 777 bin/ 日志文件 touch minio.log #wget https://dl.minio.org.cn/server/minio/release/linux-amd64/minio wget https://dl.minio.io/server/minio/release/linux-amd64/min…

React之react-redux的使用

前言 前面我们讲过了redux的配置及使用&#xff0c;下面我们看一下react-redux的是如何使用的, 首先我们先了解一下redux和react-redux的关系&#xff1f; redux和react-redux的关系 redux是react中进行state状态管理的JS库&#xff08;并不是react插件&#xff09;&#xff0c…

图论【Lecode_HOT100】

文章目录 1.岛屿数量No.2002.腐烂的橘子No.9943.课程表No.2074.实现Trie&#xff08;前缀树&#xff09;No.208 1.岛屿数量No.200 class Solution {public int numIslands(char[][] grid) {if (grid null || grid.length 0) {return 0;}int numIslands 0;int rows grid.len…

Redis02 SpringBoot整合Redis

使用方式 1.创建boot项目引入Web(Spring Web)NoSQl(Spring Data Redis(AccessDriver)) 2.修改配置文件 spring:redis:host: 127.0.0.1port: 6379password: 123456lettuce:pool:max-active: 8 #最大连接max-idle: 8 #最大空闲连接min-idle: 0 #最小空闲连接max-wait: 1000ms #…

PT8M2103 触控 I/O 型 8-Bit MCU

1 产品概述 ● PT8M2103 是一款可多次编程(MTP)I/O 型8位 MCU&#xff0c;其包括 2K*16bit MTP ROM、256*8bit SRAM、PWM、Touch 等功能&#xff0c;具有高性能精简指令集、低工作电压、低功耗特性且完全集成触控按键功能。为各种触控按键的应用&#xff0c;提供了一种简单而又…

109.【C语言】数据结构之二叉树层序遍历

目录 1.知识回顾 2.代码实现 准备工作 LevelOrder函数 代码框架 关键代码 3.执行结果 1.知识回顾 层序遍历参见106.【C语言】数据结构之二叉树的三种递归遍历方式文章 截取的部分内容 定义:按层的方式遍历(,设n为树的深度,h1-->h2-->h3-->...-->hn) 以下面…

15.Java 网络编程(网络相关概念、InetAddress、NetworkInterface、TCP 网络通信、UDP 网络通信、超时中断)

一、网络相关概念 1、网络通信 网络通信指两台设备之间通过网络实现数据传输&#xff0c;将数据通过网络从一台设备传输到另一台设备 java.net 包下提供了一系列的类和接口用于完成网络通信 2、网络 两台以上设备通过一定物理设备连接构成网络&#xff0c;根据网络的覆盖范…

分布式系统架构1:共识算法Paxos

1.背景 今天开始更新分布式的文章&#xff0c;工作几年后还没系统的学习分布式的内容&#xff0c;趁着还有时间学习沉淀的时候多输出些文章 2.为什么需要分布式共识算法 思考&#xff1a;现在你有一份随时变动的数据&#xff0c;需要确保它正确存储在网络的几台不同机器上&a…