返回顶部
首页 > 资讯 > 精选 >如何在CSS中使用@supports
  • 894
分享到

如何在CSS中使用@supports

2023-06-09 03:06:05 894人浏览 安东尼
摘要

今天就跟大家聊聊有关如何在CSS中使用@supports,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基于浏览器的特性检测大家应该已经很熟悉了,特别是modernizr.js推出来之

今天就跟大家聊聊有关如何在CSS中使用@supports,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

基于浏览器的特性检测大家应该已经很熟悉了,特别是modernizr.js推出来之后。其实w3c也出了规范,可以基于css来做一些特性检测,也就是@supports,这个特性已经有两年多了,之前浏览器支持度不够,现在WEBkit nightly也开始支持了,也就是说safari 9会支持到,这样的话,Blink+webKit+gecko都支持了,只剩下IE浏览器不支持了,嗯,这样更方便对IE差异化处理了。

但是@supports并不能完全替代JS的特性检测方法,它只支持对CSS属性的检测,其它HTML5 api以及webP等技术的检测还是需要JS来完成。
用法:

@supports就像media query一样简单:

CSS Code复制内容到剪贴板

  1. @supports(prop:value) {  }  

@supports也允许你用各种复杂的组合来进行特性检测。
基本用法:

CSS Code复制内容到剪贴板

  1. @supports (display: flex) { div { display: flex; } }  

你可以用这种方法来检测各种基本的CSS属性。
not关键词

就像这样:

CSS Code复制内容到剪贴板

  1. @supports not (display: flex) { div { float: left; }  }  

个人感觉有些鸡肋了,支持@supports的浏览器会不支持各种CSS属性么?不过万事没有绝对,这种情况以后还是可能会有。嗯,私有前缀的话可以试试。
多条件检测

CSS Code复制内容到剪贴板

  1. @supports (display: -webkit-flex) or (display: -moz-flex) or (display: flex) {  }   

  2.   

  3.  @supports (display: flex) and (-webkit-appearance: caret) {  }  

你也可以将or和and语句放在一起混用。

CSS Code复制内容到剪贴板

  1. @supports ((display: -webkit-flex) or (display: -moz-flex) or (display: flex)) and (-webkit-appearance: caret) {  }  

或者更复杂的:

CSS Code复制内容到剪贴板

  1. @supports ( not ((text-align-last:justify) or (-moz-text-align-last:justify) ){ …  }  

JS方法

同时也可以用javascript来做类似的检测,方法也很简单:

CSS Code复制内容到剪贴板

  1. boolValue = CSS.supports(propertyName, value); boolValue = CSS.supports(supportCondition);  

两种方法都可以,会返回一个bool值。比如:

CSS Code复制内容到剪贴板

  1. result = CSS.supports("text-decoration-style", "blink");     

  2. result = CSS.supports("display", "flex");     

  3. result = CSS.supports("( transfORM-origin: 5% 5% )");     

  4. result = CSS.supports("( transform-style: preserve ) or ( -moz-transform-style: preserve ) or ( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )" );    

用途

最大的用途是做css特性判断的时候,不用再在js(或者传统的js方法)了,用过modernizr.js的同学可能会印象很深刻,modernizr会在html标签上加上各种各样的class来区分,其它js方法也是类似的实现思路。现在可以直接用@supports来区分或者做浏览器差异化了。
浏览器支持

    chrome 28+
    opera 12.1+
    firefox22+
    safari 9+

看完上述内容,你们对如何在CSS中使用@supports有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网精选频道,感谢大家的支持。

--结束END--

本文标题: 如何在CSS中使用@supports

本文链接: https://lsjlt.com/news/255294.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何在CSS中使用@supports
    今天就跟大家聊聊有关如何在CSS中使用@supports,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。基于浏览器的特性检测大家应该已经很熟悉了,特别是modernizr.js推出来之...
    99+
    2023-06-09
  • css中@supports有什么用
    小编给大家分享一下css中@supports有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!@supports@suppo...
    99+
    2024-04-02
  • fraction如何在css中使用
    本篇文章给大家分享的是有关fraction如何在css中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。css的选择器有哪些css的选择器可以分为三大类,即id选择器、cla...
    99+
    2023-06-14
  • escape在css中如何使用
    本篇内容主要讲解“escape在css中如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“escape在css中如何使用”吧!escape在css中的使用语法是“escapedStr = C...
    99+
    2023-07-05
  • 如何在Laravel中使用Tailwind CSS?
    Tailwind Tailwind是新的CSS实用程序框架,它很快成为我最喜欢的构建界面的方法。通常,尝试一个新的框架、包或语言的最困难的部分是建立起来。建造Tailwind的人做了一项令人难以置信的工作,记录了这个过程,而且非常容易做到。...
    99+
    2024-04-02
  • 如何在CSS中使用定位
    今天就跟大家聊聊有关如何在CSS中使用定位,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS中定位介绍position 属性在英文单词中表示 位置 的意思,在 CSS 中主要作用设...
    99+
    2023-06-08
  • 如何在CSS中使用hover伪类
    这篇文章将为大家详细讲解有关如何在CSS中使用hover伪类,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。CSS伪类:hover 在IE中使用及其BUG伪类...
    99+
    2024-04-02
  • 如何在css中使用content属性
    如何在css中使用content属性?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。content属性一般用于::before、::after伪元素中,用于呈现伪元素的内容。平时...
    99+
    2023-06-08
  • 如何在CSS中使用 var()变量
    今天就跟大家聊聊有关如何在CSS中使用 var()变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。定义和使用CSS变量与任何其他CSS定义一样,变量遵循相同的范围和继承规则。使用它...
    99+
    2023-06-08
  • 如何在css中使用transition属性
    这篇文章给大家介绍如何在css中使用transition属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。css的三种引入方式1.行内样式,最直接最简单的一种,直接对HTML标签使用style=""...
    99+
    2023-06-08
  • 如何在css中使用border属性
    今天就跟大家聊聊有关如何在css中使用border属性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、CSS边框基础知识CSS 边框即CSS border是控制对象的边框边线宽度、...
    99+
    2023-06-08
  • 如何在css中使用display:block;属性
    本篇文章为大家展示了如何在css中使用display:block;属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。对所有的块元素都没有意义,块元素的dispaly属性默认值为block,没必要再显...
    99+
    2023-06-09
  • 如何在css中使用position属性
    如何在css中使用position属性?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。position 属性值的含义:static元素框正常生成。块级元素生成一个...
    99+
    2023-06-08
  • 如何在css中使用display:box 属性
    本篇文章为大家展示了如何在css中使用display:box 属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、display:box;  在元素上设置该属性,可使其子代排列在同一水平上,类似d...
    99+
    2023-06-08
  • 如何在CSS中使用outline属性
    这篇文章给大家介绍如何在CSS中使用outline属性,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。轮廓(outline)是绘制于元素周围的一条线,位于边框边缘的外围,可起到突出元素的作用。轮廓(outline)属性指...
    99+
    2023-06-08
  • 如何在css中如何定义使用变量
    今天就跟大家聊聊有关如何在css中如何定义使用变量,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。CSS中原生的变量定义语法是:--*,变量使用语法是:var(--*)  ;...
    99+
    2023-06-15
  • 如何在css中使用line-height属性
    这期内容当中小编将会给大家带来有关如何在css中使用line-height属性,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、line-height语法line-height属性的具体定义列表如下:语法...
    99+
    2023-06-08
  • 如何在CSS中使用pointer-events属性
    今天就跟大家聊聊有关如何在CSS中使用pointer-events属性,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在关闭弹层时,以fadeOut动画效果为例,我这里是利用opaci...
    99+
    2023-06-08
  • 如何在CSS中使用Sprite雪碧图
    本篇文章为大家展示了如何在CSS中使用Sprite雪碧图,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。雪碧图的使用场景静态图片,不随用户信息的变化而变化。小图片,容量比较小(2~3k)。图片加载量比...
    99+
    2023-06-08
  • 如何在CSS中使用position:fixed和margin-top
    这期内容当中小编将会给大家带来有关如何在CSS中使用position:fixed和margin-top,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。问题描述想用CSS实现顶部固定的效果:尝试margin-...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作