浅谈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 transform属性详解
Sep 30 HTML / CSS
CSS3之2D与3D变换的实现方法
Jan 28 HTML / CSS
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
Dec 22 HTML / CSS
详解HTML5中垂直上下居中的解决方案
Dec 20 HTML / CSS
phonegap常用事件总结(必看篇)
Mar 31 HTML / CSS
使用phonegap查找联系人的实现方法
Mar 31 HTML / CSS
HTML5 video 上传预览图片视频如何设置、预览视频某秒的海报帧
Aug 28 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
Apr 23 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
Jan 19 HTML / CSS
HTML速写之Emmet语法规则的实现
Apr 07 HTML / CSS
html5调用摄像头实例代码
Jun 28 HTML / CSS
基于CSS制作创意端午节专属加载特效
Jun 01 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
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
yii数据库的查询方法
2015/12/28 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
基于Laravel 多个中间件的执行顺序详解
2019/10/21 PHP
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
AngularJS入门教程之AngularJS表达式
2016/04/18 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
JavaScript中各数制转换全面总结
2017/08/21 Javascript
laravel5.4+vue+element简单搭建的示例代码
2017/08/29 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
原生JavaScript实现滑动拖动验证的示例代码
2019/12/06 Javascript
Vue SPA 首屏优化方案
2021/02/26 Vue.js
Python解析excel文件存入sqlite数据库的方法
2016/11/15 Python
python 字典操作提取key,value的方法
2019/06/26 Python
Flask框架中request、请求钩子、上下文用法分析
2019/07/23 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
华为菲律宾官方网站:HUAWEI Philippines
2021/02/23 全球购物
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
《梅花魂》教学反思
2014/04/30 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
安全标语大全
2014/06/10 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
法制教育演讲稿
2014/09/10 职场文书
小学科学教学计划
2015/01/21 职场文书
大学生自我推荐信范文
2015/03/24 职场文书
三八节活动主持词
2015/07/04 职场文书
四年级数学教学反思
2016/02/16 职场文书
小学三年级语文教学反思
2016/03/03 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
SpringCloud Alibaba项目实战之nacos-server服务搭建过程
2021/06/21 Java/Android