CSS中如何为使用:is()和:where(),有什么作用
Admin 2022-06-20 群英技术资讯 1398 次浏览
这篇文章主要讲解了“CSS中如何为使用:is()和:where(),有什么作用”,文中的讲解内容简单、清晰、详细,对大家学习或是工作可能会有一定的帮助,希望大家阅读完这篇文章能有所收获。下面就请大家跟着小编的思路一起来学习一下吧。现在,Safari(技术预览版106)和Firefox(版本78)的预览版均支持新的CSS :is() 和 :where() 伪类。Chrome的实施仍然落后。
使用 :is() 减少重复
你可以使用 :is() 伪类来删除选择器列表中的重复项。
/* before */
.embed .save-button:hover,
.attachment .save-button:hover {
opacity: 1;
}
/* after */
:is(.embed, .attachment) .save-button:hover {
opacity: 1;
}
此功能主要在未处理的标准CSS代码中有用。如果使用Sass或类似的CSS预处理程序,则可能更喜欢嵌套。
注意:浏览器还支持非标准的 :-webkit-any() 和 :-moz-any() 伪类,它们与 :is() 相似,但限制更多。WebKit在2015年弃用了 :-webkit-any() ,Mozilla已将Firefox的用户代理样式表更新为使用 :is() 而不是 :-moz-any() 。
使用 :where() 来保持低特殊性
:where() 伪类与 :is() 具有相同的语法和功能。它们之间的唯一区别是 :where() 不会增加整体选择器的特殊性(即某条CSS规则特殊性越高,它的样式越优先被采用)。
:where() 伪类及其任何参数都不对选择器的特殊性有所帮助,它的特殊性始终为零。
此功能对于应易于覆盖的样式很有用。例如,基本样式表 sanitize.css 包含以下样式规则,如果缺少 <svg fill> 属性,该规则将设置默认的填充颜色:
svg:not([fill]) {
fill: currentColor;
}
由于其较高的特殊性(B = 1,C = 1),网站无法使用单个类选择器(B = 1)覆盖此声明,并且被迫添加 !important 或人为地提高选择器的特殊性(例如 .share- icon.share-icon )。
.share-icon {
fill: blue; /* 由于特殊性较低,因此不适用 */
}
CSS库和基础样式表可以通过用 :where() 包装它们的属性选择器来避免这个问题,以保持整个选择器的低特殊性(C=1)。
/* sanitize.css */
svg:where(:not([fill])) {
fill: currentColor;
}
/* author stylesheet */
.share-icon {
fill: blue; /* 由于特殊性较高,适用 */
}
总结
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
skew函数定义元素在二维平面上的倾斜转换。这种转换是一种剪切映射(横切),在水平和垂直方向上将单元内的每个点扭曲一定的角度。指定一个或两个参数,它们表示在每个方向上应用的倾斜量。
select{/*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/border:solid1px#000;/*很关键:将默认的select选择框样式清除*/appearance:none;-moz-appearance:none;-webkit-appearance:none;/*在选择框的最右侧中间显示小箭头图片*/background:url("http://
在CSS中我们常常会使用到li标签,因为li标签用途很广泛,它可以用来制作列表,选项卡,导航等等。但是li是块级元素,我们想要实现横向排列,究竟该怎样做呢?下文给大家分享了两种方法,有需要的朋友可以参考,那么接下就跟小编来学习一下吧。
这篇文章主要介绍了前端页面弹框遮罩禁止页面滚动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了CSS3实现王者匹配时的粒子动画效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008