当前位置: 首页 > news >正文

如何使用 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);
}

相关文章:

  • java学习之路-程序逻辑控制
  • 工具-百度云盘服务-身份认证
  • MySQL大小写敏感、MySQL设置字段大小写敏感
  • 【CKA模拟题】查询消耗CPU最多的Pod
  • CIDR网络地址、广播地址、网段区间计算说明与计算工具
  • ai智能外呼机器人的功能,机器人对话常用语模板搭建
  • SpringBoot使用log4j2将日志记录到文件及自定义数据库
  • C语言案例01, 输入两个整数,获得两个数加减乘除的值,持续更新中~
  • java操作HBase
  • 全量知识系统 因子分析+在线处理+实时库+生存拓扑控制+跨语言 的设想及百度AI答问 之3
  • MySQL常见的数据类型
  • 图解I/O中的零拷贝技术
  • 每日五道java面试题之springMVC篇(三)
  • 【Javaweb】【瑞吉外卖】上传下载实现
  • oppo前端开发一面
  • 搭建一个自己的AI学术语音助手(二)
  • VBA_NZ系列工具NZ02:VBA读取PDF使用说明
  • Android Studio实现内容丰富的安卓校园二手交易平台
  • 搭建mysql主从复制(主主复制)
  • Vue 3中的reactive:响应式状态的全面管理
  • 上海下周最高气温在30℃附近徘徊,夏天越来越近
  • 14岁女生瞒报年龄文身后洗不掉,法院判店铺承担六成责任
  • 105岁八路军老战士、抗美援朝老战士谭克煜逝世
  • 水利部:山西、陕西等地旱情将持续
  • 上海启动万兆光网试点建设,助力“模速空间”跑出发展加速度
  • 澎湃研究所“营商环境研究伙伴计划”启动