浅谈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圆角样式分享自定义按钮样式
Dec 27 HTML / CSS
纯CSS实现颜色渐变效果(包含环形渐变、线性渐变、彩虹效果等)
May 07 HTML / CSS
使用HTML和CSS3绘制基本卡通图案的示例分享
Nov 06 HTML / CSS
详解如何在css3打包后自动追加前缀插件:autoprefixer
Dec 18 HTML / CSS
css3 flex实现div内容水平垂直居中的几种方法
Mar 27 HTML / CSS
如何使用localstorage代替cookie实现跨域共享数据问题
Apr 18 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
Dec 13 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
Apr 23 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
Apr 15 HTML / CSS
html5写一个BUI折叠菜单插件的实现方法
Sep 11 HTML / CSS
html svg生成环形进度条的实现方法
Sep 23 HTML / CSS
详解CSS不受控制的position fixed
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
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
PHP命名空间和自动加载类
2016/04/03 PHP
php中isset与empty函数的困惑与用法分析
2019/07/05 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
用 JavaScript 迁移目录
2006/12/18 Javascript
js实现上传图片之上传前预览图片
2013/03/25 Javascript
jquery.autocomplete修改实现键盘上下键自动填充示例
2013/11/19 Javascript
原生javascript实现拖动元素示例代码
2014/09/01 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
Angular设置title信息解决SEO方面存在问题
2016/08/19 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
js获取当前时间(昨天、今天、明天)
2016/11/23 Javascript
JS实现的系统调色板完整实例
2016/12/21 Javascript
jQuery插件echarts去掉垂直网格线用法示例
2017/03/03 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
用Python给文本创立向量空间模型的教程
2015/04/23 Python
Python中使用装饰器来优化尾递归的示例
2016/06/18 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
对pandas的层次索引与取值的新方法详解
2018/11/06 Python
Python切割图片成九宫格的示例代码
2020/03/10 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
解析Python 偏函数用法全方位实现
2020/06/26 Python
QT5 Designer 打不开的问题及解决方法
2020/08/20 Python
Python pickle模块常用方法代码实例
2020/10/10 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
伦敦一家非常流行的时尚精品店:Oxygen Boutique
2017/01/15 全球购物
教师演讲稿开场白
2014/08/25 职场文书
2015年手术室工作总结
2015/05/11 职场文书
小学班长竞选稿
2015/11/20 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
浅谈python中的多态
2021/06/15 Python
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS