【发布时间】:2016-05-02 06:00:19
【问题描述】:
我想将一个区域更改为最大溢出:仅当支持 ::-webkit-scrollbar-thumb 时才滚动。
这在纯 CSS 中可能吗?看起来@supports只检查规则,没有选择器。
【问题讨论】:
-
我想你需要modernizr.com
标签: css css-selectors pseudo-element
我想将一个区域更改为最大溢出:仅当支持 ::-webkit-scrollbar-thumb 时才滚动。
这在纯 CSS 中可能吗?看起来@supports只检查规则,没有选择器。
【问题讨论】:
标签: css css-selectors pseudo-element
您现在可以使用@supports selector() 来定位伪元素。以下是您的用例的相关示例:
@supports selector(::-webkit-scrollbar-thumb) {
.scroll-container {
overflow: scroll
}
}
请参阅this JSFiddle,它演示了浏览器对::-webkit-scrollbar-thumb 的支持
但不是
截至 2020 年 12 月,browser support 与 @supports selector 的比例约为 72%。
【讨论】:
@supports selector(::-webkit-scrollbar-thumb){/*Chrome yay, Firefox nay*/} 确实有效。
你是对的。 @supports 仅处理属性值组合。您可以在纯 CSS 中执行此操作的唯一方法是使用针对支持 ::-webkit-scrollbar-thumb 的浏览器的 CSS hack。 (没有足够的浏览器支持@supports,因为它无论如何都不能用于检查对::-webkit-scrollbar-thumb 的支持。)
【讨论】:
加上上一个答案,你可以只写伪选择器,如果浏览器不支持该道具,它将跳过css声明。
例如:
li::marker{color:blue}
旧版浏览器看不到。
【讨论】:
这是我用来识别 Webkit 浏览器的。这是我能找到的最具体的伪选择器,其他引擎似乎还没有(目前):
CSS.supports(`selector(input[type='time']::-webkit-calendar-picker-indicator)`)
【讨论】: