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

css中:is和:where 伪函数

在 CSS 里,:is() 属于伪类函数,其作用是对一组选择器进行匹配,只要元素与其中任何一个选择器相匹配,就可以应用对应的样式规则。以下是详细介绍:
基本语法
:is() 函数的参数是一个或多个选择器,各个选择器之间用逗号分隔。其基本语法如下:

:is(selector1, selector2, ...) {/* 样式声明 */
}

功能说明
1. 选择器分组
运用 :is() 能够把多个选择器组合起来,让匹配这些选择器的元素应用相同的样式。示例代码如下:

:is(h1, h2, h3) {color: red;
}

2. 简化复杂选择器
在编写复杂选择器时,:is() 能避免重复书写相同的选择器前缀,使代码更简洁。示例如下:

article :is(h1, h2, h3) {font-family: sans-serif;
}

优先级计算
:is() 函数的优先级由其参数中优先级最高的选择器决定。例如:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 这里 #one-is 的优先级最大, :is(#one-is, .two-is) 的优先级等于#one-is,所以背景都是黄色*/:is(#one-is, .two-is) {background: yellow;}.two-is {background: pink;}</style>
</head><body><div id="one-is">测试is的1</div><div class="two-is">测试is的2</div>
</body></html>

与 :where() 的区别
:is() 和 :where() 都能对选择器进行分组,但二者在优先级计算上有所不同。 :is() 的优先级由其参数中优先级最高的选择器决定,而 :where() 的优先级始终为 0。示例如下:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* 这里 #one-is 的优先级最大, :is(#one-is, .two-is) 的优先级等于#one-is,所以背景都是黄色*/:is(#one-is, .two-is) {background: yellow;}.two-is {background: pink;}/* where 的优先级为0, 所以 :where(#one-where, .two-where) 的优先级没有.two-where 的大*//* 测试where的2 的颜色是粉色 */:where(#one-where, .two-where) {background: yellow;}.two-where {background: pink;}</style>
</head><body><div id="one-is">测试is的1</div><div class="two-is">测试is的2</div><div id="one-where">测试where的1</div><div class="two-where">测试where的2</div>
</body></html>

需要注意的是:旧版本浏览器中可能存在兼容性问题,使用时要注意

http://www.xdnf.cn/news/2817.html

相关文章:

  • Dia-1.6B环境搭建推理测试
  • docker本地部署ClipCascade,实现跨设备剪贴板同步
  • 【大语言模型开发】BPE算法(Byte-Pair)
  • 跨端开发技术总结
  • Python爬虫实战:获取软科网最新特定专业大学排名数据并做分析,为高考填报志愿做参考
  • 逆向设计——CWDM_splitter
  • 10.Excel:快速定位目标值
  • QT—布局管理器之BoxLayout篇
  • 【Java ee初阶】多线程(4)
  • 培养一个输出型的爱好
  • Profinet 从站转 EtherNet/IP 从站网关
  • MATLAB实现神经网络的OCR识别
  • 爬虫学习笔记(三)--Http协议
  • CSS元素动画篇:基于页面位置的变换动画
  • leetcode 19. 删除链表的倒数第 N 个结点
  • [多彩数据结构] 笛卡尔树
  • 智能Python开发工具PyCharm v2025.1——AI层级功能重磅升级
  • Ajax 提交表单与文件上传
  • Windows 图形显示驱动-待机休眠优化
  • 升级Xcode16,flutter项目报错
  • 浏览器插件,提示:此扩展程序未遵循 Chrome 扩展程序的最佳实践,因此已无法再使用
  • jeecgboot 3.8.0 集成knife4j问题一文解决
  • MCP:如何通过模型控制推理助力AI模型实现“深度思考”?
  • 机器视觉的坐标标定
  • Python分支结构全面解析与实战应用指南
  • opendds编译开发(c#封装)
  • Android WebRTC回声消除
  • 具身智能:从理论突破到场景落地的全解析
  • 小目标检测的集成融合论文阅读
  • 项目实战-贪吃蛇大作战【补档】