[CSS] 新的伪类解释 :is、:where、:has

简介: is(), where(), 和 has() 是 CSS Level 4 中引入的新的伪类选择器,用于更方便和灵活地选择元素。

下面是对这些伪类选择器的解释:

:is() 伪类选择器: :is() 伪类选择器允许你使用逗号分隔的多个选择器作为参数,选择符合其中任何一个选择器的元素。它可以简化复杂的选择器结构,使样式表更易于编写和阅读。

例如,如果要选择所有的 h1、h2 和 h3 标题元素,可以使用 :is() 伪类选择器:

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

:where() 伪类选择器: :where() 伪类选择器可以视为 :is() 的别名,用法完全相同。它接受逗号分隔的多个选择器作为参数,并选择符合其中任何一个选择器的元素。不同之处在于 :where() 伪类选择器没有特定的语义意义,仅用作语法上的辅助,使选择器更易于理解。

例如,使用 :where() 伪类选择器选择所有的 h1、h2 和 h3 标题元素的示例与上述的 :is() 伪类选择器示例完全相同:

:where(h1, h2, h3) {
   
  color: blue;
}

:has() 伪类选择器: :has() 伪类选择器允许你根据元素是否包含特定后代元素来选择元素。它的参数是一个包含选择器的函数,用于指定要查找的后代元素。
例如,如果要选择包含 元素的所有

  • 元素,可以使用 :has() 伪类选择器:
    li:has(a) {
        
      background-color: yellow;
    }
    

    在这个示例中,只有包含 a 元素的 li 元素才会应用黄色背景颜色。

    需要注意的是,虽然这些伪类选择器提供了更灵活和简洁的选择器语法,但目前(截至2023年8月)并不是所有浏览器都完全支持它们。在使用时,最好检查浏览器的兼容性情况或提供备用方案。

  • 相关文章
    |
    6月前
    |
    前端开发 开发者
    提升你的CSS技能:深入理解伪类选择器和伪元素选择器!
    【4月更文挑战第2天】 提升你的CSS技能:深入理解伪类选择器和伪元素选择器!
    118 12
    |
    6月前
    |
    前端开发 JavaScript
    css之伪类hover改变自身、子元素、其他元素的样式
    css之伪类hover改变自身、子元素、其他元素的样式
    119 0
    |
    27天前
    |
    前端开发 JavaScript UED
    深入理解与应用 CSS 伪类选择器
    【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
    33 2
    CSS3 新增伪类有那些
    CSS3 引入了多种新伪类,增强了样式控制的灵活性。新增的结构伪类如 `:nth-child(n)` 和 `:first-of-type` 可以根据元素的位置和类型进行选择;状态伪类如 `:enabled` 和 `:checked` 则根据元素的状态进行选择;动态伪类如 `:hover` 和 `:active` 则基于用户的交互行为。这些伪类让样式定制更加多样和强大。
    |
    1月前
    |
    前端开发
    运用CSS伪类与属性,巧妙实现背景图片旋转效果
    运用CSS伪类与属性,巧妙实现背景图片旋转效果
    35 0
    |
    3月前
    |
    前端开发
    CSS中的层级选择器&伪类选择器和伪元素选择器
    CSS中的层级选择器&伪类选择器和伪元素选择器
    |
    3月前
    |
    前端开发
    CSS——通过伪类来自定义四个角边框
    CSS——通过伪类来自定义四个角边框
    114 3
    |
    3月前
    |
    XML 前端开发 安全
    如何使用 CSS 中的 :root 伪类选择器
    如何使用 CSS 中的 :root 伪类选择器
    125 0
    |
    5月前
    |
    前端开发 JavaScript
    CSS进阶-CSS选择器高级:伪类与伪元素
    【6月更文挑战第13天】本文探讨了CSS伪类与伪元素的核心概念,包括伪类表示元素状态,伪元素创造抽象内容。常见问题涉及二者区别、冒号使用、顺序优先级及`content`属性。实践技巧涵盖`:not()`选择器、`:hover`与子元素伪类结合及自定义形状。通过代码示例展示了高亮悬停行、添加图标、首行样式和链接颜色的应用。理解并熟练运用伪类和伪元素可提升CSS设计效率和灵活性。
    166 2
    CSS进阶-CSS选择器高级:伪类与伪元素
    |
    5月前
    |
    前端开发 开发者
    CSS伪类选择器:增强内容表现力的利器
    CSS伪类选择器:增强内容表现力的利器