1.1 :is()伪类选择器

在日常写代码中,经常遇见重复的同一个元素在不同的标签中的情况,这样我们想要统一写一个这个元素的样式时就会比较麻烦,稍加不注意就会出现错误。例如:

li a,
artcile a,
section a {
color: #000000;
}
h1 a,
h2 a,
h3 a {
color: blue;
}

使用 CSS :is() 伪类选择器

CSS中的:is()伪类选择器可以解决这样的问题,并把最终的选择器视为匹配到的那一个。

:is(li, article, p) a {
color: #999999;
}

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

这样写不仅是简单了很多,实现的效果也是一样的。

同时,:is()也可以用在各种选择器的组合中,例如子节点选择器、邻居选择器等:

例如下面的子节点选择器:

:is(article, p) :is(h2, li) a {
color: #ff3344;}
展开就等于:

article h2 a,
article li a,
p h2 a,
p li a {
color: #ff3344;
}

与其它伪类选择器结合

:is()还可以与其他伪类选择器结合者使用,例如当一个文章所有的 h1-h6 标题,hover 的时候,在后面加上一个 "Hello Word",如果使用传统的方式,我们会写成:

h1:hover::after,
h2:hover::after,
h3:hover::after,
h4:hover::after,
h5:hover::after,
h6:hover::after {
content: "Hello Word";
}

在使用:is()后可以写成:

:is(h1, h2, h3, h4, h5, h6):hover::after {
content: "Hello Word";
}

这样对比下来,:hover伪类选择器、::after伪元素都只需要写一次

几个重要的特性

:is() 伪类函数的列表值是宽松的:如果列表中的选择器是无效的,规则将继续匹配有效的选择器

:is() 选择器的权重是根据其列表来计算的

:is() 伪类函数的列表值中不能使用伪元素(至少到目前为止是这样)

:is() 伪函数的成组

兼容性

目前还是正在逐步规范化的新特性,:is() 伪类选择器的兼容性在目前主流的浏览器的版本都是兼容的。

1.2:where()伪类选择器

:where()的功能和用法和:is()完全一致。唯一的区别在于,:where()的优先级始终是0.

.btn span > a:hover,
#header span > a:hover,
h3#footer span > a :hover ,{
content: "Hello Word";
}

这样去写

:where(.btu,#header,#footer) span >a:hover{
content: "Hello Word";
}

:is()伪类选择器 :where()伪类选择器相关推荐

  1. CSS复合选择器(后代选择器、子元素选择器、并集选择器、伪类选择器、:focus伪类选择器)

    复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的. 1. 后代选择器 后代选择器又称为包含选择器 作用:用来选择元素或元素组的子孙后代 其写法就是把外层标签写在前面,内层标签写在后面,中间 ...

  2. css 选择器(标签选择器、类选择器、层级选择器、id选择器、组选择器、伪类选择器、通配符选择器)

    css 选择器的定义 css 选择器是用来选择标签的,选出来以后给标签加样式. css 选择器的种类 标签选择器 类选择器 层级选择器(后代选择器) id选择器 组选择器 伪类选择器 通配符选择器 标 ...

  3. html5复合选择器,web前端练习31----Css,选择器(基本选择器,复合选择器,属性选择器,伪类,伪元素,优先级,雪碧图练习)...

    参考文档:https://man.ilovefishc.com/css3/ 一.基本选择器: 1通配符选择器 * 2元素选择器 element 3类选择器 .class 4id选择器 #id 5内联样 ...

  4. css3学习 之 css选择器(结构性伪类选择器)

    同上篇:先说明下本机浏览器吧:opera 10 firefox 4.0 chrome 由于是公司机器xp的..所以ie版本为 ie8  另外有一个ietest 所谓伪元素选择器,是指并不是针对真正的元 ...

  5. CSS3之伪元素选择器和伪类选择器

    伪类选择器,和一般的DOM中的元素样式不一样,它并不改变任何DOM内容.只是插入了一些修饰类的元素,这些元素对于用户来说是可见的,但是对于DOM来说不可见.伪类的效果可以通过添加一个实际的类来达到. ...

  6. CSS之关系选择器、属性选择器、伪类选择器

    一.关系选择器 后代选择器:只要是这个元素的后代,样式都会发生变化,div下面的所有h1标签样式都会改变 关系选择器:子代选择器,只改变子标签的样式 <!DOCTYPE html> < ...

  7. web前端入门学习 css(8)(新增语义化标签、video/audio、新增input类型、新增表单属性、属性选择器、结构伪类选择器、伪元素选择器、css3盒子模型、模糊、calc函数、过渡

    https://www.bilibili.com/video/BV1pE411q7FU?p=276 文章目录 html5新特性 html5新增语义化标签 header头部 nav导航 article内 ...

  8. css--css选择器,伪类

    前戏 前面我们说过CSS规则由选择器和声明组成,我们要给标签设置属性,那我们就要找到对应的标签,CSS选择器可以帮我们找到我们需要的标签 css选择器有: 标签选择器 类选择器 ID选择器 全局选择器 ...

  9. CSS:基本概念、选择器、伪类伪元素

    基本概念 HTML使用结构化标记的理由:易于建立内容索引.增加文档可用性.增加可访问性.易于维护.  元素(element):文档结构的基础,每个元素生成一个框(box)其中包含元素的内容, 元素的两 ...

  10. CSS常用选择器、伪元素选择器、伪类选择器大全——响应式Web系列学习笔记

    1. 常用的CSS选择器 CSS选择器的作用就是从HTML页面中找出特定的某类元素.常用的几类CSS选择器如下表所示. 选择器 代码 示例代码 说明 通用选择器 * *{} 选择所有元素. 标签选择器 ...

最新文章

  1. javascript中的闭包这一篇就够了
  2. php上传图片限制类型,php,_使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置,php - phpStudy...
  3. 业界首个高性能交互式自动标注工具EISeg正式开源,跨越式提升你的标注体验...
  4. Firefly支持AI引擎Tengine,性能提升,轻松搭建AI计算框架
  5. Microsoft SQL Server 2019开发版安装配置教程
  6. ajax传递数组:属性traditional设置
  7. .jar文件如何打开_ofd发票文件如何打开
  8. VBoxManage获取虚拟机IP地址
  9. leetcode —— 31. 下一个排列
  10. Android 系统(233)---AOSP 代码管理
  11. MySQL8 Zip的下载和安装
  12. 傻瓜攻略(二)——MATLAB数据挖掘之Apriori算法实现
  13. 在虚拟机安装windows xp时所需要的序列号
  14. 冲压模板自动标注LISP_自动标注.LSP
  15. 串口屏和并口屏的区别?
  16. 测试用例方法--等价类划分法
  17. 初中计算机考试ppt操作视频,初中信息技术PPT操作题课件.ppt
  18. Python爬虫基础之BeautifulSoup
  19. n9009+android+4.4.2,三星N9009 (Galaxy Note 3 电信版 Android 4.4)ROOT教程,一键获取ROOT权限...
  20. LeetCode07整数反转(JAVA)

热门文章

  1. 平均年薪60.8万,Linux开发拿下这个证书有多吃香?
  2. 水库大坝实时安全监测特点分析
  3. 数据监控难点之实时监测
  4. 新春伊始:从CHAT-GPT到生成式AI,人工智能新范式
  5. Turtlebot3 buger在仿真环境下建图导航
  6. 如何提高加好友通过率
  7. 知识图谱综述及技术地图概览(智能问答系统)
  8. 企业微信发送图片失败
  9. 【附源码】计算机毕业设计java众筹平台设计与实现
  10. 【公众号技能+】添加白名单,允许其他公众号转载文章