浅谈CSS3特性查询(Feature Query: @supports)功能简介


Posted in HTML / CSS onJuly 31, 2017

我们已经知道使用媒体查询(Media Query)来检测屏幕尺寸,从而实现响应式界面设计。

而特性查询则用来查询用户代理(如桌面浏览器)是否支持某个CSS3的特性,这个功能除了IE之外,已被其他浏览器所支持。

语法格式

@supports <supports-condition> {
  <group-rule-body>
}

特性查询使用@supports规则(和媒体查询@media类似,都是使用一个@符号前缀:at-rule),该CSS规则允许我们把CSS样式写在条件块中,这样只有在当前用户代理支持一个特定的CSS属性值对(property-value pair)的时候才被应用。

举个简单的例子,如果我们要为支持弹性框(flexbox)特性的浏览器定义样式,可以像下面这样写:

@supports ( display: flex ) {
    .foo { display: flex; }
}

同样的,和媒体查询规则类似,可以使用一些逻辑操作符(如and、or和not),并支持串接在一起:

@supports (display: table-cell) and (display: list-item) {
    … /* your styles */
}
 
@supports not ((text-align-last:justify) or (-moz-text-align-last:justify) ){
    … /* 不支持justify时,用这里的代码来模拟text-align-last:justify */
}

使用实例

检测动画特性:

@supports (animation-name: test) {
    … /* 当UA支持无前缀animations特性时的特定样式 */
    @keyframes { /* @supports 作为一个CSS条件组at-rule,可以包含其他at-rules */
      …    
    }
}

检测自定义属性:

@supports (--foo: green) {
  body {
    color: green;
  }
}

规范状态

尚处于候选推荐CR(Candidate Recommendation)状态,规范链接:CSS Conditional Rules Module Level 3.

浏览器兼容性

桌面系统:

浅谈CSS3特性查询(Feature Query: @supports)功能简介

移动设备:

浅谈CSS3特性查询(Feature Query: @supports)功能简介

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
使用CSS3制作倾斜导航条和毛玻璃效果
Sep 12 HTML / CSS
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
Aug 11 HTML / CSS
css3 伪元素和伪类选择器详解
Sep 04 HTML / CSS
CSS3中HSL和HSLA的简单使用示例
Jul 14 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
Mar 29 HTML / CSS
详解CSS 3 中的 calc() 方法
Jan 12 HTML / CSS
利用CSS3动画实现圆圈由小变大向外扩散的效果实例
Sep 10 HTML / CSS
在HTML5中使用MathML数学公式的简单讲解
Feb 19 HTML / CSS
Adobe Html5 Extension开发初体验图文教程
Nov 14 HTML / CSS
canvas实现图片镜像翻转的2种方式
Jul 22 HTML / CSS
CSS中Single Div 绘图技巧的实现
Jun 18 HTML / CSS
使用HBuilder制作一个简单的HTML5网页
Jul 07 HTML / CSS
css3旋转木马_动力节点Java学院整理
Jul 12 #HTML / CSS
css3边框_动力节点Java学院整理
Jul 11 #HTML / CSS
使用 css3 实现圆形进度条的示例
Jul 05 #HTML / CSS
css3学习系列之移动属性详解
Jul 04 #HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 #HTML / CSS
利用css3如何设置没有上下边的列表间隔线
Jul 03 #HTML / CSS
利用css3画个同心圆示例代码
Jul 03 #HTML / CSS
You might like
学习PHP的数组总结【经验】
2016/05/05 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
JavaScript 基础问答三
2008/12/03 Javascript
通过js简单实现将一个文本内容转译成加密文本
2013/10/22 Javascript
IE下JS保存图片的简单实例
2016/07/15 Javascript
AngularJs Forms详解及简单示例
2016/09/01 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
js canvas实现擦除效果示例代码
2017/04/26 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
jQuery实现锚点向下平滑滚动特效示例
2017/08/29 jQuery
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
详解JavaScript自定义函数
2020/07/29 Javascript
详解Django中的form库的使用
2015/07/18 Python
简单讲解Python中的字符串与字符串的输入输出
2016/03/13 Python
总结网络IO模型与select模型的Python实例讲解
2016/06/27 Python
win10下Python3.6安装、配置以及pip安装包教程
2017/10/01 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
Python字符串中删除特定字符的方法
2020/01/15 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
如何利用Python写个坦克大战
2020/11/18 Python
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
安全生产月演讲稿
2014/05/09 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
团组织推优材料
2014/12/29 职场文书
导游词格式
2015/02/13 职场文书
教师节倡议书2015
2015/04/27 职场文书
怒海潜将观后感
2015/06/11 职场文书
委托收款证明
2015/06/23 职场文书
中秋节感想
2015/08/10 职场文书