浅谈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中的calc函数浅析
Jul 10 HTML / CSS
使用JS+CSS3技术:让你的名字动起来
Apr 27 HTML / CSS
CSS3 flex布局之快速实现BorderLayout布局
Dec 03 HTML / CSS
HTML5 本地存储实现购物车功能
Sep 07 HTML / CSS
HTML5验证以及日期显示的实现详解
Jul 05 HTML / CSS
html5教程制作简单画板代码分享
Dec 04 HTML / CSS
Application Cache未缓存文件无法访问无法加载问题
May 31 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
Apr 15 HTML / CSS
HTML5通用接口详解
Jun 12 HTML / CSS
HTML5 canvas基本绘图之图形组合
Jun 27 HTML / CSS
Canvas实现保存图片到本地的示例代码
Jun 28 HTML / CSS
H5 video poster属性设置视频封面的方法
May 25 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
解析htaccess伪静态的规则
2013/06/18 PHP
thinkphp框架下实现登录、注册、找回密码功能
2016/04/06 PHP
Zend Framework前端控制器用法示例
2016/12/11 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
2016/09/20 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
微信小程序实现通过双向滑动缩放图片大小的方法
2018/12/30 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
toString.call()通用的判断数据类型方法示例
2020/08/28 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
原生js实现滑块区间组件
2021/01/20 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
Python 文件操作实现代码
2009/10/07 Python
python实现数值积分的Simpson方法实例分析
2015/06/05 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
Python扫描端口的实现
2021/01/25 Python
名人珠宝设计师:Melinda Maria Jewelry
2019/03/06 全球购物
蒂娜商店:Tiina the Store
2019/12/07 全球购物
简单的辞职信范文
2014/01/18 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
大专毕业生求职信
2014/07/05 职场文书
2014年语文教学工作总结
2014/12/17 职场文书
2015年纪检监察工作总结
2015/04/08 职场文书
网吧员工管理制度
2015/08/05 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL