css选择器的优先级以及用法

在 CSS 中,当多个选择器同时作用于一个元素,并且为该元素的同一属性设置了不同的值时,就需要依据选择器的优先级来确定最终应用哪个样式。本文详细介绍 CSS 选择器优先级的相关内容。

本文目录

      • 一、单个选择器的优先级
        • 1. 内联样式
        • 2. ID 选择器
        • 3. 类选择器、属性选择器和伪类选择器
        • 4. 元素选择器和伪元素选择器
        • 5. 通用选择器和组合器
      • 二、多个优先级计算规则
      • 三、!important 声明

一、单个选择器的优先级

1. 内联样式

直接写在 HTML 元素的 style 属性中的样式。

<p style="color: red;">使用内联样式的段落</p>

优先级:内联样式具有最高的优先级,因为它直接作用于元素,会覆盖其他所有类型选择器定义的样式。

2. ID 选择器

通过元素的 id 属性来选择元素,使用 # 符号开头。

<!DOCTYPE html>
<html lang="en"><head><style>#unique-paragraph {color: blue;}</style>
</head><body><p id="unique-paragraph">使用 ID 选择器设置样式的段落</p>
</body></html>

优先级:ID 选择器的优先级仅次于内联样式,因为 id 在一个页面中是唯一的,它能精确地定位到特定元素。

3. 类选择器、属性选择器和伪类选择器

类选择器
通过元素的 class 属性来选择元素,使用 . 符号开头。

<!DOCTYPE html>
<html lang="en"><head><style>.highlight {background-color: yellow;}</style>
</head><body><p class="highlight">使用类选择器设置样式的段落</p>
</body></html>

属性选择器
根据元素的属性及其值来选择元素,例如 [attribute=value] 的形式。

<!DOCTYPE html>
<html lang="en"><head><style>input[type="text"] {border: 1px solid gray;}</style>
</head><body><input type="text" placeholder="请输入文本">
</body></html>

伪类选择器
用于选择处于特定状态的元素,如 :hover(鼠标悬停状态)、:active(元素被激活状态)等。

<!DOCTYPE html>
<html lang="en"><head><style>a:hover {color: red;}</style>
</head><body><a href="#">链接</a>
</body></html>

优先级:类选择器、属性选择器和伪类选择器的优先级相同,它们的优先级低于 ID 选择器,但高于元素选择器。

4. 元素选择器和伪元素选择器

元素选择器
通过元素的标签名来选择元素,如 ph1div 等。

<!DOCTYPE html>
<html lang="en"><head><style>p {font-size: 16px;}</style>
</head><body><p>使用元素选择器设置样式的段落</p>
</body></html>
  • 伪元素选择器
    用于选择元素的特定部分,如 ::first-line(选择元素的第一行)、::first-letter(选择元素的第一个字母)等。
<!DOCTYPE html>
<html lang="en"><head><style>p::first-line {color: green;}</style>
</head><body><p>第一行文字会显示为绿色。</p>
</body></html>

优先级:元素选择器和伪元素选择器的优先级相同,是优先级较低的选择器类型。

5. 通用选择器和组合器

通用选择器
使用 * 符号表示,它可以选择页面中的所有元素。

<!DOCTYPE html>
<html lang="en"><head><style>* {margin: 0;padding: 0;}</style>
</head><body><!-- 页面内容 -->
</body></html>
  • 组合器:如 +(相邻兄弟组合器)、~(通用兄弟组合器)、>(子组合器)、(后代组合器)等,它们本身不具有优先级,只是用于组合其他选择器。
    优先级:通用选择器的优先级是最低的,组合器的优先级取决于与之组合的选择器。

二、多个优先级计算规则

当多个选择器同时作用于一个元素时,可以通过计算每个选择器的优先级得分来确定最终应用的样式。通常采用以下规则来计算优先级:

  • 内联样式:计为 1000 分。
  • ID 选择器:每个 ID 选择器计为 100 分。
  • 类选择器、属性选择器和伪类选择器:每个计为 10 分。
  • 元素选择器和伪元素选择器:每个计为 1 分。
  • 通用选择器:计为 0 分。

下面按照上面进行分析

<!DOCTYPE html>
<html lang="en"><head><style>/* 元素选择器,优先级为 1 分 */p {color: black;}/* 类选择器,优先级为 10 分 */.text-style {color: blue;}/* ID 选择器,优先级为 100 分 */#special-paragraph {color: red;}</style>
</head><body><p>普通段落,文字颜色为黑色</p><p class="text-style">使用类选择器设置样式的段落,文字颜色为蓝色</p><p id="special-paragraph" class="text-style">同时使用 ID 选择器和类选择器的段落,文字颜色为红色,因为 ID 选择器优先级更高</p>
</body></html>

第三个段落同时应用了 ID 选择器和类选择器,但由于 ID 选择器的优先级(100 分)高于类选择器(10 分),所以最终文字颜色为红色。

三、!important 声明

在 CSS 中,还可以使用 !important 声明来强制应用某个样式,无论该样式的选择器优先级如何。

p {color: green!important;
}

使用 !important 声明的样式会覆盖其他所有样式



← 上一篇 AngularJS知识快速入门(上)
记得点赞、关注、收藏哦!
下一篇 Ajax——在OA系统提升性能的局部刷新 →

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

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

相关文章

hercules zos 安裝 jdk 8

首先到 IBM 官網下載相關 PAX 檔 (SDK8_31bit_SR8_FP45.PAX.Z) 和 SDK8_31bit_readme.txt https://www.ibm.com/support/pages/java-sdk-products-zos 在 hercules 裡加一些新卷用來存放這個 JDK (UAPP02)&#xff0c;UTMP02 也可以順便加上讓 OMVS IBMUSER 下多一些存放空間&…

张量索引操作

一.前言本期我们来说一下张量的索引操作&#xff0c;需要掌握张量不同索引操作&#xff0c;我们在操作张量时&#xff0c;经常需要去进⾏获取或者修改操作&#xff0c;掌握张量的花式索引操作是必须的⼀项能⼒。二.简单行、列索引import torchdata torch.randint(0, 10, [4, 5…

docker 启动中间件

docker 启动 MySQL # 创建目录 mkdir -p /Users/dongdong/software/mysql/{conf,data}docker run -d \ -p 3306:3306 \ -v /Users/dongdong/software/mysql/conf:/etc/mysql/conf.d \ -v /Users/dongdong/software/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -…

如何批量旋转视频90度?

用相机拍摄视频的时候&#xff0c;原本是竖直拍的&#xff0c;但是放到电脑里面看的时候&#xff0c;却变成了横版的。如果我们需要放到剪映或者其他软件做剪辑的时候&#xff0c;一个一个去旋转视频会比较麻烦&#xff0c;这里&#xff0c;我们可以事先用.bat文件批处理的方式…

(2025)IDEA 下载与安装保姆级指南

目录 一、下载 IntelliJ IDEA &#xff08;一&#xff09;访问官方网站 &#xff08;二&#xff09;选择版本 &#xff08;三&#xff09;下载安装包 二、安装 IntelliJ IDEA &#xff08;一&#xff09;运行安装程序 &#xff08;二&#xff09;选择安装语言 &#xf…

【CV综合实战】基于深度学习的工业压力表智能检测与读数系统【1】压力表位置检测

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

性能狂飙 Gooxi 8卡5090服务器重新定义高密度算力

国鑫Intel Eagle Stream平台8卡RTX5090AI服务器性能到底有多强&#xff1f;小编一文带你看懂个中奥妙。国鑫Intel Eagle Stream平台8卡RTX5090AI服务器如图&#xff0c;国鑫Intel Eagle Stream平台8卡RTX5090AI服务器&#xff08;SY6108G-G4&#xff09;只有6U高度&#xff0c;…

零基础掌握Go语言需要多久?报班的话哪家好?

大家有没有发现&#xff0c;近年来&#xff0c;Go语言越来越受欢迎了&#xff0c;TIOBE榜单中&#xff0c;Go现在已经稳居前10了。 尤其在云计算、区块链、微服务等领域&#xff0c;Go语言更是“钦点语言”&#xff0c;很多大厂也都在积极使用Go语言&#xff0c;薪资待遇更是连…

【网络】Linux 内核优化实战 - net.ipv4.tcp_no_metrics_save

目录一、TCP连接指标缓存的作用二、tcp_no_metrics_save的取值及含义三、适用场景与影响推荐启用缓存&#xff08;值为0&#xff09;的场景&#xff1a;推荐禁用缓存&#xff08;值为1&#xff09;的场景&#xff1a;实际影响&#xff1a;四、如何查看和修改参数1. 查看当前值2…

13. G1垃圾回收器

1. JVM介绍和运行流程-CSDN博客 2. 什么是程序计数器-CSDN博客 3. java 堆和 JVM 内存结构-CSDN博客 4. 虚拟机栈-CSDN博客 5. JVM 的方法区-CSDN博客 6. JVM直接内存-CSDN博客 7. JVM类加载器与双亲委派模型-CSDN博客 8. JVM类装载的执行过程-CSDN博客 9. JVM垃圾回收…

算法学习笔记:13.归并排序——从原理到实战,涵盖 LeetCode 与考研 408 例题

归并排序是一种基于分治策略的经典排序算法&#xff0c;由约翰・冯・诺依曼在 1945 年提出。它以稳定的 O (nlogn) 时间复杂度和良好的可并行性&#xff0c;在大规模数据排序场景中占据重要地位。与快速排序的 “先分区后排序” 不同&#xff0c;归并排序采用 “先排序后合并”…

Kotlin基础学习记录

变量和函数 变量 // val为常量&#xff0c;一旦赋值就不可变 val a 10 val a: Int 10 a 3 // 报错// var为变量 var a 10 a 3 var b: Int 20 b 2函数fun add(a: Int, b: Int): Unit {a b // 报错&#xff0c;参数默认val }fun add(a: Int, b: Int) {var x: Int ax b …

【C#】GraphicsPath的用法

在 C# 中&#xff0c;GraphicsPath 是 GDI 提供的一个非常强大的类&#xff0c;用于创建和操作复杂图形路径。它可以用来绘制直线、曲线、多边形等形状&#xff0c;并支持判断点是否在路径内或路径的轮廓上。一、基本概念GraphicsPath 类功能&#xff1a;添加各种几何图形&…

C语言32个关键字

文章目录数据类型1、数据类型&#xff08;12个&#xff09;控制语句2、控制语句关键字&#xff08;12个&#xff09;存储类型3、存储类型关键字&#xff08;4个&#xff09;其他关键字4、其他关键字&#xff08;4个&#xff09;​一共32个关键字分为 数据类型 1、数据类型&am…

粒子滤波|粒子滤波的相关算法理论介绍

在自动控制、导航、目标跟踪等众多领域&#xff0c;系统状态估计是获取真实状态的关键环节。由于观测信号常受噪声干扰&#xff0c;滤波技术成为提取可靠信息的核心手段。本文将围绕目标跟踪技术中的滤波算法理论展开&#xff0c;重点解析粒子滤波框架的原理与应用。一、动态系…

Jenkins+Gitee+Docker容器化部署

写在前文 本文主要是通过Jenkins的maven项目版本GiteeDocker-maven插件来进行部署的&#xff0c;本文没有使用dockerfile/docker-compose。 本文默认已经安装了Docker 1、安装Jenkins Step1、创建文件夹当作映射jenkins的home文件夹 mkdir /app/jenkins Step2、赋权&#xff…

[Meetily后端框架] 多模型-Pydantic AI 代理-统一抽象 | SQLite管理

第5章&#xff1a;人工智能模型交互&#xff08;Pydantic-AI 代理&#xff09; 欢迎回来&#xff01; 在上一章第四章&#xff1a;文字记录处理逻辑中&#xff0c;我们学习了TranscriptProcessor如何将冗长的会议记录分解为称为"块"的较小片段&#xff0c;因为人工…

利用DeepSeek实现rust调用duckdb动态链接库的duckdb CLI

提示词&#xff1a;请用rust调用duckdb-rs实现一个duckdb CLI,支持语法突出显示和计时&#xff0c;还支持命令行管道输入输出 Cargo.toml [package] name "duckdb-cli" version "0.1.0" edition "2024"[dependencies] duckdb "1.3.1&qu…

C++,从汇编角度看《虚拟继承的邪恶》

刷到一篇文章&#xff1a; 作者&#xff1a; 原文&#xff1a;虛擬繼承的邪惡 讨论到这样的一个程序&#xff0c;最终输出什么&#xff1f;&#xff1f;&#xff1f; 代码有简化命名 using namespace std;class A { public:A(int a 0) : v(a) {};int v; };template <type…

多 Agent 强化学习实践指南(一):CTDE PPO 在合作捕食者-猎物游戏中的应用详解

我们来详细讲解如何在合作捕食者-猎物游戏中结合 PPO (Proximal Policy Optimization) 算法。我们将聚焦于 CTDE&#xff08;Centralized Training, Decentralized Execution&#xff0c;集中训练、分散执行&#xff09; 模式&#xff0c;因为这是处理合作多 Agent 任务的常用且…