浅析CSS :is() 和 :where() 即将出现在浏览器中

概述

在CSS4 Selector Level 4 规范中, :is() 和 :where() 伪类将被正式引入到浏览器中。这两个伪类都可以用来简化CSS选择器的书写,提高选择器的复用性。其中,:is() 和 :where() 功能类似,但也有细微差异。

:is() 伪类

对于复杂的选择器,我们经常需要嵌套或者使用逗号分隔不同的选择器。 :is() 可以让我们使用更简洁的方式书写这样的选择器。例如,下面的选择器:

div p,
div span,
div a {
  color: red;
}

可以简化为:

div :is(p, span, a) {
  color: red;
}

这样可以有效减少代码量,提高可读性。:is() 还支持嵌套使用,例如:

:is(div, article) > :is(h1, h2, h3) {
  color: blue;
}

这样可以选中 div.article 和 article 标签的 h1、h2、h3 标签,其它选择器同理。

:where() 伪类

:where() 功能与 :is() 相似,不过它允许我们在选择器中使用普通的语法结构,而非只能使用逗号分隔的方式。例如,下面的选择器:

div p b,
div ul li b,
div ol li b {
  color: red;
}

可以简化为:

div :where(p, ul li, ol li) b {
  color: red;
}

其中,普通的语法结构“ul li”、“ol li”都被包含在了 :where() 伪类中。:where() 可以用于任何复杂选择器的简化,例如:

:where(.red, .blue):not(.green) h1 a {
  color: red;
  text-decoration: none;
}

这样可以选中具有“red”或“blue”类的 h1 标签中的 a 标签,且不含有“green”类。

注意事项

虽然 :is() 和 :where() 看起来非常有用,但是目前这两个伪类还未被所有浏览器所支持,需要注意浏览器的版本兼容性。同时,需要注意书写格式, :is() 和 :where() 必须放在伪类列表的最后。例如:

h1:where(:first-child, :last-child):not(.title) {
  color: red;
}

示例

下面是一个选择器的示例,展示了如何使用 :is() 和 :where() 来简化选择器。

div :is(p, ul li, ol li):where(:first-child, :last-child) b {
  color: red;
}

这样可以选中 div 中的 p、ul li、ol li 标签中的第一个或者最后一个 b 标签,并将其颜色设置为红色。

另一个示例:

:is(article, div) :where(.title, h1) a {
  color: blue;
}

这样可以选中 article 和 div 标签中具有“title”类或者为 h1 标签的 a 标签,并将其颜色设置为蓝色。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅析CSS :is() 和 :where() 即将出现在浏览器中 - Python技术站

(0)
上一篇 2023年6月9日
下一篇 2023年6月9日

相关文章

  • JS树形菜单组件Bootstrap TreeView使用方法详解

    下面我将对“JS树形菜单组件Bootstrap TreeView使用方法详解”的完整攻略做出详细讲解。 一、前置条件 在使用Bootstrap TreeView组件前,需要保证已经引入了Bootstrap和jQuery库。 二、基本使用 1.引入文件 在头部引入Bootstrap和jQuery库: <!– Bootstrap –> <l…

    css 2023年6月9日
    00
  • 针对浏览器隐藏CSS之独孤九剑

    首先, 针对浏览器隐藏CSS之独孤九剑,需要了解 CSS的三种隐藏方式: display:none; 元素被完全隐藏,并且不占用页面空间 visibility:hidden; 元素被隐藏,但仍占用页面空间 opacity:0; 元素被透明化,但仍占用页面空间 以下是对应的攻略: 隐藏方式一:display:none; 方法一:通过Chrome开发者工具修改 …

    css 2023年6月10日
    00
  • div+css制作圆角矩形的原理示例解读

    下面是关于“div+css制作圆角矩形的原理示例解读”的完整攻略: 1. 理解圆角矩形的概念 圆角矩形即是在矩形的四个角上实现圆弧效果的一种设计。在 web 开发中,我们可以利用 CSS 技术来实现圆角矩形。 2. 使用CSS的border-radius属性 CSS 中有专门的属性用来实现圆角矩形,那就是 border-radius。border-radiu…

    css 2023年6月10日
    00
  • 通过 JS 判断页面是否有滚动条的实现方法

    判断页面是否有滚动条是 web 开发中常见的需求之一。可以通过 JS 判断页面是否有滚动条的实现方法有以下几种: 方法一:通过比较页面高度与窗口高度判断 在 HTML 的文档对象模型(DOM)中,document 对象的 scrollHeight 属性表示网页正文部分的高度。比较这个高度和窗口的高度,即可判断页面是否有滚动条。 if (document.bo…

    css 2023年6月10日
    00
  • CSS3弹性盒模型开发笔记(一)

    以下是关于“CSS3弹性盒模型开发笔记(一)”的完整攻略: 1. CSS3弹性盒模型概述 CSS3弹性盒模型是一种用于布局设计的模型,它可以用于任何容器(包括块级和行内元素)中,并且可以解决多种布局问题。通过定义容器中弹性盒子的排列方式和对齐方式,我们可以实现更灵活的布局效果。 1.1 弹性容器和弹性项目 在使用弹性盒模型进行布局时,我们需要将元素包含在一个…

    css 2023年6月10日
    00
  • 巧用box-shadow实现布局区域间隔变色

    巧用box-shadow实现布局区域间隔变色,实际上是给元素添加一个box-shadow阴影,然后把背景色变成透明,通过调整阴影的位置和模糊程度来达到变色的效果。整个过程步骤如下: 1.准备工作 在代码中选定你想要设置间隔变色的元素,例如ul标签。为了更好地处理间隔变色,我们需要为这个ul元素设置一个统一的背景色。 ul { background-color…

    css 2023年6月9日
    00
  • 在Vue中使用CSS3实现内容无缝滚动的示例代码

    当我们需要在Vue中实现内容无缝滚动动效时,可以通过CSS3的animation、transform等属性以及Vue的v-for指令进行实现。以下是详细的攻略过程: 步骤一:在Vue中创建一个列表数据 首先,我们需要在Vue实例中创建一个包含多个数据的列表,用于展示在页面中滚动的内容。这个列表有多种创建方式,这里介绍两个示例: 通过 data 属性创建 &l…

    css 2023年6月10日
    00
  • 两种方法实现用CSS切割图片只取图片中一部分

    下面我将为您详细讲解如何使用 CSS 切割图片只取图片中一部分的两种方法。 方法一:使用 background-position 该方法使用 CSS 的 background-position 属性来设置背景图片在元素中的位置,并通过控制元素的宽高来削减背景图片的展示区域。具体步骤如下: 将要切割的图片作为 CSS 的背景,设置在元素的 background…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部