CSS伪类:where和:is

news2024/9/25 3:22:36

CSS伪类:where和:is

  • 1 :where
    • 1.1 概述
    • 1.2 组合与叠加
    • 1.3 优先级
    • 1.4 安全性
    • 1.5 兼容性
  • 2 :is
    • 兼容性

1 :where

1.1 概述

:where()接受选择器列表作为它的参数,将会选择所有能被该选择器列表中任何一条规则选中的元素。

例如,在以下代码中,a标签都会变成红色:

header a,
div a,
p a {
    color: red;
}
<header>
	<a>橘猫吃不胖</a>
</header>
<div class="test1">
    <a>橘猫吃不胖</a>
</div>
<p class="test2">
    <a>橘猫吃不胖</a>
</p>

如果使用:where()改写以上样式,结果如下:

:where(div, p, header) a {
    color: red;
}

在上面的代码片段中,我们只选择了三个元素,但是如果有大量的元素和选择器,代码将开始看起来不整洁,并且可能变得难以阅读和理解,这就是:where()伪类函数发挥作用的地方。

1.2 组合与叠加

例如,下面是包含了大量选择器的例子,:where()可以写在不同的层级中:

示例1:层级靠前

#test1 > p,
.test2 > p,
div > p {
  	color: red;
}
/* 用:where()重写之后: */
:where(#test1, .test2, div) > p {
  color: red;
}

示例2:层级靠后

header #test1:hover,
header .test2:hover,
header div:hover {
  	color: red;
}
/* 用:where()重写之后: */
header :where(#test1, .test2, div):hover {
  color: red;
}

:where()也可以叠加使用,例如:

.test1 p,
.test2 a,
.test1 button,
.test2 a{
	color: red;
}
/* 用:where()重写之后: */
:where(.test1, .test2) :where(p, a) {
  color: red;
}

1.3 优先级

:where()的优先级是0,它的样式可以轻松被覆盖,例如下面这段代码:

.test {
    color: yellow;
}
:where(.test) {
    color: pink
}

最后字体的颜色是yellow

1.4 安全性

对于选择器列表,如果浏览器不能识别列表中的一个选择器,则整个选择器列表将被视为无效,它们的样式将不会被应用,然而,使用:where()伪类设置的样式,无效的选择器不会设置样式,但是其余有效的元素可以正常获得样式,这就是为什么:where()被称为安全的选择器。

1.5 兼容性

在这里插入图片描述

2 :is

:is():where()可以说一模一样,区别在于:is()的优先级不是0,而是由传入的选择器来决定的。

例如以下代码结构,虽然pink写在yellow之后,而且使用类选择器来选择,但是由于:where()的优先级是0,因此最后字体颜色为黄色:

div {
    color: yellow;
}
:where(.test) {
	color: pink
}
<div class="test">橘猫吃不胖</div>

如果使用:is()来选择,例如以下代码,虽然yellow写在pink之后,但是由于类选择器的优先级比标签选择器高,因此最后字体颜色为粉色:

:is(.test) {
	color: pink
}
div {
    color: yellow;
}

兼容性

在这里插入图片描述

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

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

相关文章

linux安装 jdk

1.下载 jdk 网盘资源&#xff1a; 链接: https://pan.baidu.com/s/1Z-fyHGDyj9b_km6ymR6mZg?pwdwd42 提取码: wd42 2.上传至服务器并解压 这里是上传至/opt 文件夹&#xff0c;并创建了/opt/soft 文件夹&#xff0c;解压在此 cd /opt tar -zxvf ./jdk-8u321-linux-x64.t…

8月18日上课内容 Haproxy搭建Web群集

本章结构 课程大纲 Haproxy调度算法 常见的web集群调度器 目前常见的Web集群调度器分为软件和硬件软件 通常使用开源的LVS、Haproxy、Nginx 硬件一般使用比较多的是F5&#xff0c;也有很多人使用国内的一些产品&#xff0c;如梭子鱼、绿盟等 Haproxy应用分析 LVS在企业应用中…

微信小程序使用云存储和Markdown开发页面

最近想在一个小程序里加入一个使用指南的页面&#xff0c;考虑到数据存储和减少页面的开发工作量&#xff0c;决定尝试在云存储里上传Markdown文件&#xff0c;微信小程序端负责解析和渲染。小程序端使用到一个库Towxml。 Towxml Towxml是一个可将HTML、Markdown转为微信小程…

mysql 、sql server 游标 cursor

游标 声明的位置 游标必须在声明处理程序之前被声明&#xff0c;并且变量和条件还必须在声明游标或处理程序之前被声明 游标的使用步骤 声明游标打开游标使用游标关闭游标 &#xff08;sql server 关闭游标和释放游标&#xff09; sql server 游标 declare my_cursor curs…

Redis企业级解决方案

缓存预热 “ 宕机 ” 服务器启动后迅速宕机 问题排查 1. 请求数量较高 2. 主从之间数据吞吐量较大&#xff0c;数据同步操作频度较高 , 因为刚刚启动时&#xff0c;缓存中没有任何数据 解决方案 准备工作&#xff1a; 1. 日常例行统计数据访问记录&#xff0c;统计访…

亚马逊云科技 云技能孵化营——机器学习心得

亚马逊云科技 云技能孵化营机器学习心得 前言什么是机器学习&#xff1f;机器学习如何解决业务问题&#xff1f;什么时候适合使用机器学习模型&#xff1f;总结 前言 很荣幸参加了本次亚马逊云科技云技能孵化营&#xff0c;再本期的《亚马逊云科技云技能孵化营》中&#xff0c…

eNSP综合小实验:VRRP、MSTP、Eth-Trunk、NAT、DHCP等技术应用

完成下图要求&#xff1a; 拓扑图&#xff1a; 配置命令&#xff1a; 由于交换机日志太多不便于复制&#xff0c;所以就复制命令。大概步骤如下&#xff1a; 第一步先分配IP地址&#xff0c;在sw1和sw2上创建VLAN100用于e0/0/3口配IP&#xff0c;在sw1、sw2、sw3、sw4上创建VL…

分布式搜索引擎----elasticsearch

目录 1、初识elasticsearch 1.1、什么是elasticsearch 1.2.ELK技术栈 2、正向索引和倒排索引 2.1、正向索引 2.2、倒排索引 2.3、正向索引和倒排索引的区别 3、elasticsearch中的概念理解 3.1、文档和字段 3.2、索引和映射 3.3、mysql与elasticsearch 1、初识elasti…

快手大模型出炉【快意】来袭

「快意」大模型&#xff08;KwaiYii&#xff09; 是由快手AI团队从零到一独立自主研发的一系列大规模语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;&#xff0c;当前包含了多种参数规模的模型&#xff0c;并覆盖了预训练模型&#xff08;KwaiYii-Base)…

10个比ChatGPT更值得体验的AI工具

打分依据&#xff1a;在制定比ChatGPT更酷的AI工具列表时&#xff0c;我们进行了广泛的研究&#xff0c;并考虑了各种因素&#xff0c;如性能、多功能性、创新性、用户友好度、集成契合度和行业影响及未来潜力等&#xff0c;根据这些指标仔细筛选和评估了一众AI工具&#xff0c…

(vue)多级表头且转为百分比显示

(vue)多级表头且转为百分比显示 <el-table-column align"center" label"近三个月数据情况"><el-table-column align"center" prop"amount" :label"tableLast[0]"><template slot-scope"{ row }"&g…

尚硅谷宋红康MySQL笔记 3-9

我不会记录的特别详细 大体框架 基本的Select语句运算符排序与分页多表查询单行函数聚合函数子查询 第三章 基本的SELECT语句 SQL分类 这个分类有很多种&#xff0c;大致了解下即可 DDL&#xff08;Data Definition Languages、数据定义语言&#xff09;&#xff0c;定义了…

SynchronousQueue阻塞与ArrayBlockingQueue设置容量为1阻塞的区别

SynchronousQueue阻塞的地方是在put进去一个元素即阻塞&#xff0c;没办法继续执行&#xff0c;除非其他线程take该队列的元素。 而ArrayBlockingQueue设置容量为1阻塞的地方是在下一次put&#xff0c;也就是说&#xff0c;put一个元素之后还能继续往下执行代码。 public clas…

leetcode359周赛

2828. 判别首字母缩略词 核心思想:枚举。只需要枚举首字母和s是否一一对应即可。 2829. k-avoiding 数组的最小总和 核心思想&#xff1a;自己的方法就是哈希表&#xff0c;枚举i的时候&#xff0c;将k-i统计起来&#xff0c;如果出现了那么就跳过。灵神的方法是数学法&#…

Python学习 -- 类对象从创建到常用函数

在Python编程中&#xff0c;类是一种强大的工具&#xff0c;用于创建具有共同属性和行为的对象。本篇博客将详细介绍Python中类和对象的创建&#xff0c;类的属性和方法&#xff0c;以及一些常用的类函数&#xff0c;通过丰富的代码例子来帮助读者深入理解。 一、类和对象的创…

Spring之IoC容器篇

目录 1.Spring简介 1.1Spring框架的核心特性 2.Spring IoC容器 2.1Spring IoC容器特点 2.2出现的背景 2.3关于IoC的理解 2.4案例演示 3.Spring注入方式 3.1set注入 3.2构造注入 3.3接口注入 4.Spring上下文与tomcat整合 4.1思考 4.2代码演示 4.3收获 1.Spring简介…

【内网监控】通过cpolar实现远程监控

【内网监控】通过cpolar实现远程监控 文章目录 【内网监控】通过cpolar实现远程监控前言1. 在cpolar官网预留一个空白隧道2. 完成空白数据隧道&#xff0c;生成地址3. 设置空白隧道的出口4. 空白数据隧道的出口设置5. 获取公网地址6. 打开本地电脑“远程桌面”7. 打开Windows自…

AMBA总线协议(4)——AHB(二)

目录 一、前言 二、AHB操作概述 三、AHB 基本传输 1、简单传输 2、带有等待的传输 3、多重传输 四、AHB传输类型 五、小结 一、前言 在之前的文章中对于AMBA AHB做了一个简单的介绍&#xff0c;AHB 主要用于高性能模块(如 CPU、DMA 和 DSP 等)之间的连接&#x…

【工具使用】Keil5软件使用-进阶调试篇

一、概述 本文面向已经懂得软件基本操作的职业老手&#xff0c;如果是未使用过该软件的小鲜肉&#xff0c;请移步基础篇。这里以STM32芯片为例对工具进行讲解&#xff0c;其他品牌的芯片在调试方面上可能存在差异。 二、软件说明 Keil提供了包括C编译器、宏汇编、链接器、库管…