@supports
规则检查选择器支持的能力令人惊讶地强大!虽然经常用于测试property: value
对兼容性,但selector()
函数扩展了评估选择器支持的功能。这是通过简单地将选择器放置在括号中来完成的:
@supports选择器(:nth-child(.foo)1){ / *如果支持选择器,则应用样式 */ }
:nth-child(n of .foo)
选择器,“选择器列表参数”与:nth-child
家族选择器兼容,是一个很好的例子。当前,只有Safari支持此特定选择器。
考虑一个场景,您需要在其中设置带有分离器和斑马条纹的列表。理想情况下,您将使用这样的选择来实现斑马条纹,同时忽略分离器:
li:nth-child(.list-item的奇数){ 背景:Lightgoldenrodolow; }
但是,由于浏览器的支持有限,您可以使用@supports
来有条件地应用这种样式:
@supports选择器(:nth-child(.foo)1){ li { 填充:0.25EM; } li:nth-child(.list-item的奇数){ 背景:Lightgoldenrodolow; } li.Separator { 列表风格:无; 保证金:0.25EM 0; } } @supports不是selector(:nth-child(.foo)){ li.Separator { 身高:1px; 列表风格:无; 边界:1px虚拟紫色; 保证金:0.25EM 0; } }
这为缺乏支持高级选择器的浏览器提供了后备样式。改进的语法可能会使用@when
@else
时,可以简化这一点:
/ *假设的未来语法 */ @when supports(selector(:nth-child(.foo)1)){ / *用于支撑浏览器的样式 */ } @别的 { / *后备样式 */ }
还存在用于测试选择器支持的JavaScript API:
css.supports(“选择器(:nth-child(.foo)1)”)
此方法在Safari中true
,在Chrome中(在撰写false
时)。
尽管@supports
规则具有强大的功能,但具有不一致的跨浏览器支持的CSS选择器的数量,并且需要@Supports的用例@supports
的数量相对较小。现在,许多以前有问题的选择器,例如::marker
和对案例不敏感的属性选择器,现在都可以享有广泛的支持。选择器如:fullscreen
或:-webkit-full-screen
可能会提供有趣且有用的应用程序,因为它们在iOS Safari中缺乏支持。
以上是@supports selector()的详细内容。更多信息请关注PHP中文网其他相关文章!

SVG具有自己的一套元素,属性和属性集,以至于内联SVG代码可能会变得漫长而复杂。通过利用CSS和SVG 2规范的一些即将到来的功能,我们可以减少该代码以进行清洁标记。

PWA(Progressive Web应用程序)已经与我们在一起了一段时间。但是,每次我尝试向客户解释它时,同样的问题都会出现:“我的用户会成为


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver Mac版
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具