如何使用 CSS 中的 :root 伪类选择器

了解 CSS 的 :root 伪类选择器,以及在项目中可能想要如何使用它!

CSS 的 :root 伪类选择器用于选择给定规范的最高级父级。在 HTML 规范中,:root 本质上等同于 html 选择器。

在下面的 CSS 片段中,:roothtml 样式将执行相同的操作:

:root {background-color: gray;
}html {background-color: gray;
}

如果你注意到我说 :root 本质上等同于 html 选择器。事实上,:root 选择器比 html 具有更高的优先级。这是因为它实际上被视为伪类选择器(就像 :first-child:hover 一样)。

作为伪类选择器,它比标签选择器具有更高的优先级:

:root {background-color: blue;color: white;
}html {background-color: red;color: white;
}

尽管 html 选择器出现在后面,:root 选择器仍然胜出,这要归功于它更高的优先级!

跨规范

在 HTML 规范中,:root 伪类针对最高级父级:html

由于 CSS 也设计用于 SVG 和 XML,你实际上可以使用 :root,它将对应到不同的元素。

例如,在 SVG 中,最高级父级是 svg 标签。

:root {fill: gold;
}svg {fill: gold;
}

与 HTML 类似,:rootsvg 标签选择相同的元素,但 :root 选择器的优先级更高。

实际用途

:root 有什么实际用途?正如我们之前所介绍的,它是 html 选择器的安全替代品。

这意味着你可以做任何你通常会用 html 选择器做的事情:

:root {margin: 0;padding: 0;color: #0000FF;font-family: "Helvetica", "Arial", sans-serif;line-height: 1.5;
}

如果你愿意,你可以重构这段代码,使用 CSS 自定义属性在全局级别创建变量!

:root {margin: 0;padding: 0;--primary-color: #0000FF;--body-fonts: "Helvetica", "Arial", sans-serif;--line-height: 1.5;
}p {color: var(--primary-color);font-family: var(--body-fonts);line-height: var(--line-height);
}

使用 :root 而不是 html 的额外好处是你可以为你的 SVG 图形设置样式!🤯

:root {margin: 0;padding: 0;--primary-color: #0000FF;--body-fonts: "Helvetica", "Arial", sans-serif;--line-height: 1.5;
}svg {font-family: var(--body-fonts);
}svg circle {fill: var(--primary-color);
}

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

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

相关文章

deepin23beta中SQLite3数据库安装与使用

SQLite 是一个嵌入式 SQL 数据库引擎,它实现了一个自包含、无服务器、零配置、事务性 SQL 数据库引擎。 SQLite 的代码属于公共领域,因此可以免费用于任何商业或私人目的。 SQLite 是世界上部署最广泛的数据库,其应用程序数量之多&#xff0c…

Linux使用Docker部署Registry结合内网穿透实现公网远程拉取推送镜像

文章目录 1. 部署Docker Registry2. 本地测试推送镜像3. Linux 安装cpolar4. 配置Docker Registry公网访问地址5. 公网远程推送Docker Registry6. 固定Docker Registry公网地址 Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)…

VUE 运行NPM 报错:npm ERR! code CERT_HAS_EXPIRED 解决方案

现象 由于各种原因需要调试一下VUE代码,用Git拉下来运行不了(之前是可以正常运行的),报错为:npm ERR! code CERT_HAS_EXPIRED........... 原因 NPM 证书签名过期了 解决方法 第一步:CMD 命令 查看NPM代理源…

【C++ RB树】

文章目录 红黑树红黑树的概念红黑树的性质红黑树节点的定义红黑树的插入代码实现总结 红黑树 AVL树是一颗绝对平衡的二叉搜索树,要求每个节点的左右高度差的绝对值不超过1,这样保证查询时的高效时间复杂度O( l o g 2 N ) log_2 N) log2​N),…

MySQL锁整理

MySQL锁信息来源 MySQL锁太多,内容太杂。写篇文章记录一下

【C++ 设计模式】策略模式与简单工厂模式的结合

文章目录 前言一、为什么需要策略模式简单工厂模式二、策略模式简单工厂模式实现原理三、UML图四、示例代码总结 前言 在软件设计中,常常会遇到需要根据不同情况选择不同算法或行为的情况。策略模式和简单工厂模式是两种常见的设计模式,它们分别解决了对…

z1-5输入编码器实验

一. 实验内容 1、制作LED计数电路,输入是编号为1~5的5个开关,输出是5个发光二极管(LED) 点几号开关,就有几个LED发光。 2、制作一个5位输入3位输出的编码器, 输入的第5位为1,输出就是数字5对应…

鸿蒙Harmony应用开发—ArkTS声明式开发(容器组件:ColumnSplit)

将子组件纵向布局,并在每个子组件之间插入一根横向的分割线。 说明: 该组件从API Version 7开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 可以包含子组件。 ColumnSplit通过分割线限制子组件的高度。初始…

SQLiteC/C++接口详细介绍之sqlite3类(三)

快速跳转文章列表:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍之sqlite3类(二) 下一篇:SQLiteC/C接口详细介绍之sqlite3类(四) 6.sqlite3_create_module与sqlite3_create_module_v2函数…

栈队列数组试题(三)——栈和队列的应用

一、单项选择题 01.栈的应用不包括( ). A.递归 B.表达式求值 C.括号匹配 D.缓冲区 02.表达式a* (bc)-d的后缀表达式是()。 A. abcd*一 B. abc*d- C. abc*d- …

简单了解 vim 编辑器最基础的操作

简单了解 vim 编辑器最基础的操作 vim 这个是 Linux 上自带的一个文本编辑器,使用 vim 就可以更灵活的对文件进行编辑了(虽然和记事本的定位差不多,实际上vim的使用要复杂很多) 1.打开文件 语法:vim 文件名 示例:…

速盾:cdn是什么和作用有哪些

CDN, 也叫内容分发网络(Content Delivery Network),是一种构建在分布式网络基础上的网络技术,旨在提高页面的访问速度和用户体验。CDN通过在全球各地部署服务器节点,并将网站的静态和动态内容复制到这些节点上&#xf…

16.旋转图像

给定一个 n n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。 你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&…

关于本地项目连接git远程仓库以及git设置ignore文件

一、本地项目如何连接git远程仓库 第一步, 首先我们在git上新建仓库。 第二步,打开本地项目文件夹,鼠标右键选择Git Bash Here 。 第三步,输入git init 命令(在目录中创建新的 Git 仓库)。 第四步&#xff…

Python强大的库和框架——NumPy

NumPy(Numerical Python)是一个用于科学计算的强大库,提供了支持大型、多维数组和矩阵的数据结构,以及用于处理这些数组的大量数学函数。 以下是关于 NumPy 的一些详解: 1. 安装 NumPy: 可以使用以下命令…

ubuntu 安装 infiniband 和 RoCE 驱动

下载驱动程序 驱动程序地址 https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/ 安装 安装参考文档 https://docs.nvidia.com/networking/display/mlnxofedv24010331/installing+mlnx_ofed#src-2571322208_InstallingMLNX_OFED-InstallationProced…

BUGKU-WEB cookies

题目描述 题目截图如下: 进入场景看看: 解题思路 看源码看F12:看请求链接看提示:cookies欺骗 相关工具 插件:ModHeader或者hackbarbase64解密 解题步骤 看源码 就是rfrgrggggggoaihegfdiofi48ty598whrefeoia…

构建部署_Jenkins介绍与安装

构建部署_Jenkins介绍与安装 构建部署_Jenkins介绍与安装Jenkins介绍Jenkins安装 构建部署_Jenkins介绍与安装 Jenkins介绍 Jenkins是一个可扩展的持续集成引擎。 持续集成,就是通常所说的CI(Continues Integration),可以说是现…

MySQL--深入理解MVCC机制原理

什么是MVCC? MVCC全称 Multi-Version Concurrency Control,即多版本并发控制,维持一个数据的多个版本,主要是为了提升数据库的并发访问性能,用更高性能的方式去处理数据库读写冲突问题,实现无锁并发。 什…

JUC之volatile关键字

Volatile 被volatile修饰的变量有两大特点:可见性与有序性 volatile的内存语义 volatile凭什么可以保证可见性和有序性???内存屏障 Memory Barrier 内存屏障 四大屏障 Volatile保证可见性、没有原子性,指令禁重…