新的CSS 伪类函数 :is() 和 :where()示例详解

下面是针对“新的CSS 伪类函数 :is() 和 :where()示例详解”的完整攻略:

介绍

在 CSS Level 4 规范中,我们看到了两个新的伪类函数,它们是 :is() 和 :where() ,它们都可以用于过滤选择器,以简化 CSS 选择器的代码。

这两个伪类函数都可以将一个或多个选择器作为参数,并返回与这些选择器匹配的所有元素。

:is() 伪类

:is() 伪类选择器的作用相当于简化并列选择器的语法,将多个选择器组合为一个选择器。例如,以下选择器将选中所有段落和标题元素:

p, h1, h2, h3, h4, h5, h6 {
  color:red;
}

可以用 :is() 伪类简化为:

:is(p,h1,h2,h3,h4,h5,h6) {
  color:red;
}

这样可以减少重复的代码和提高可读性,还可以使代码更加简洁。

:where() 伪类

:where() 伪类选择器的作用与 :is() 相似,但是它只是一个容器,它不会对选择器应用特殊的规则。它通常与其它伪类一起使用,例如 :not() 。它也可以简化并列选择器的语法。

例如,以下选择器将选中所有段落和标题元素中的第一个元素:

p:first-of-type, h1:first-of-type, h2:first-of-type, h3:first-of-type, h4:first-of-type, h5:first-of-type, h6:first-of-type {
  color: red;
}

可以使用 :where() 伪类简化为:

:where(p, h1, h2, h3, h4, h5, h6):first-of-type {
  color: red;
}

这样同样可以减少重复的代码和提高可读性,还可以使代码更加简洁。

示例

以下是两个示例,展示了如何使用 :is() 和 :where() 这两个新的伪类函数:

示例一:使用 :is() 伪类

以下代码将会选中所有段落和 H2 标题元素:

:is(p, h2) {
  color: red;
}

这只有一行代码,而且非常容易阅读和理解。

示例二:使用 :where() 伪类

以下代码将会选中所有三个类别的元素中的最后一个:

.where {
  :where(section, nav, aside) :last-child {
    border-bottom: 5px solid black;
  }
}

使用 :where() 可以使代码更加简洁,而且可读性更高。

结论

:is() 和 :where() 伪类函数是一些非常有用的工具,它们可以使代码更加简洁,并提高可读性。尽管这两个伪类函数仍处于 CSS Level 4 规范的草案阶段,但是它们已经实现在许多现代的浏览器中使用。如果您想使 CSS 代码更加高效且缩短您的开发时间,那么 :is() 和 :where() 伪类函数就是您需要的工具。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:新的CSS 伪类函数 :is() 和 :where()示例详解 - Python技术站

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

相关文章

  • JS实现九宫格拼图游戏

    如何实现JS九宫格拼图游戏? 前置知识: HTML、CSS、JS基础 DOM操作 事件监听 游戏规则: 将原图分成N * N(N >= 3)个拼图块 每个拼图块可以通过与空白块交换位置来移动 目标是将所有的拼图块移动到正确的位置,还原原图形 实现步骤: 3.1 HTML基本结构 通过HTML代码搭建游戏基本框架 将原图划分成若干个小块,并将它们放置到九…

    css 2023年6月11日
    00
  • CSS hack实现 CSS完美兼容IE6/IE7/FF的通用方法

    CSS hack是为了兼容不同浏览器所采用的编写CSS代码的技巧。下面是通用方法的攻略: 一、注释法 在CSS代码块中编写以下代码: .selector { color: red; /*所有浏览器应用此代码*/ _color: blue; /*只有IE6、IE7浏览器应用此代码,其他浏览器忽略*/ *color: yellow; /*IE6、IE7应用此代码…

    css 2023年6月10日
    00
  • 基于html和CSS3制作酷炫的导航栏

    制作酷炫的导航栏需要掌握 HTML 和 CSS3 的相关知识,下面是一些制作导航栏的示例和攻略: 1. 基础导航栏 首先,在 HTML 中创建一个无序列表,每个列表项表示一个导航标签,并用 CSS 对列表进行样式设置。可以给选中的导航标签添加不同的背景色或字体样式,以突出其特殊性。 HTML 代码示例: <nav> <ul> <…

    css 2023年6月9日
    00
  • 使用CSS实现outline切换的动画效果

    使用CSS实现outline切换的动画效果是一种常见的布局变换效果。该效果适用于在用户与网站互动时添加一些视觉反馈,比如悬停在链接上时添加一个虚线边框。下面是实现该效果的攻略。 步骤一:HTML结构 要使用CSS实现outline切换的动画效果,首先需要准备HTML结构。下面是一个简单的示例: <!– 定义一个链接 –> <a href…

    css 2023年6月10日
    00
  • 关于css设置层透明

    设置层透明可以使用CSS3中的opacity属性或RGBA颜色值,以下是详细的攻略: 使用opacity属性设置层透明 opacity的范围为0到1,0表示完全透明,1表示完全不透明。可以将opacity属性应用于想要设置透明度的HTML元素的样式中,如下示例: div { background-color: #000; opacity: 0.5; } 以上…

    css 2023年6月9日
    00
  • javascript实现俄罗斯方块游戏的思路和方法

    实现俄罗斯方块游戏一般需要以下几个步骤: 1. 界面搭建 首先需要在页面上创建一个游戏画布,使用 canvas 标签元素可以很好地实现这一效果。然后需要设置画布的宽高,并使用一个二维数组来代表游戏的网格。每个网格可以对应一个小方块。 示例代码: <canvas id="canvas" width="400" he…

    css 2023年6月9日
    00
  • element table 数据量大页面卡顿的解决

    当页面数据量大时,常常会出现卡顿的情况。对于使用element UI的表格组件的网站,为了解决这个问题,可以考虑以下几个方面的优化。 1. 分页加载数据 当数据量较大时,可以考虑使用分页来加载数据。通过设置分页属性,可以减少一次性加载大量数据所造成的卡顿。同时,也可以避免占用过多的服务器资源。 在使用element的表格组件时,可以通过设置paginatio…

    css 2023年6月10日
    00
  • 多种方法使背景图片占据整个屏幕

    当我们需要使用背景图片时,有时候我们需要把它占满整个屏幕,而不出现任何留白。这里我们提供几种方法供参考。 1. 使用CSS3属性background-size CSS3中的背景图片大小属性background-size可以帮助我们轻松实现此功能。将该属性设置为cover,就可以让背景图片在不改变其纵横比的情况下占据整个容器。以下是一段示例代码: body {…

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