浅谈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 渐变(Gradients)之CSS3 线性渐变
Jul 08 HTML / CSS
纯CSS3打造动感漂亮时尚的扇形菜单
Mar 18 HTML / CSS
纯CSS3代码实现文字描边
Apr 25 HTML / CSS
详解background属性的8个属性值(面试题)
Nov 02 HTML / CSS
HTML5-WebSocket实现聊天室示例
Dec 15 HTML / CSS
详解使用HTML5的classList属性操作CSS类
Oct 13 HTML / CSS
HTML5新控件之日期和时间选择输入的实现代码
Sep 13 HTML / CSS
HTML5 Canvas画线技巧——实现绘制一个像素宽的细线
Aug 02 HTML / CSS
使用jquery实现HTML5响应式导航菜单教程
Apr 02 HTML / CSS
HTML5和CSS3实例教程总结(推荐)
Jul 18 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
May 07 HTML / CSS
html5 Canvas实现图片旋转的示例
Jan 15 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 Smarty生成EXCEL文档的代码
2008/08/23 PHP
PHP中用正则表达式清除字符串的空白
2011/01/17 PHP
PhpMyAdmin出现export.php Missing parameter: what /export_type错误解决方法
2012/08/09 PHP
C#使用PHP服务端的Web Service通信实例
2014/04/08 PHP
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP模拟post提交数据方法汇总
2016/02/16 PHP
PHP面向对象之里氏替换原则简单示例
2018/04/08 PHP
PHP-FPM和Nginx的通信机制详解
2019/02/01 PHP
php中yii框架实例用法
2020/12/22 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
jQuery选择头像并实时显示的代码
2010/06/27 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
jQuery中addClass()方法用法实例
2015/01/05 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
JS实现留言板功能
2017/06/17 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
基于Vue 2.0 监听文本框内容变化及ref的使用说明介绍
2018/08/24 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
[01:29:42]Liquid vs VP Supermajor决赛 BO 第一场 6.10
2018/07/05 DOTA
python多线程扫描端口示例
2014/01/16 Python
Python的string模块中的Template类字符串模板用法
2016/06/27 Python
在PyCharm中实现关闭一个死循环程序的方法
2018/11/29 Python
python利用插值法对折线进行平滑曲线处理
2018/12/25 Python
Python使用Shelve保存对象方法总结
2019/01/28 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
2017/12/07 HTML / CSS
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
俄罗斯游戏商店:Buka
2020/03/01 全球购物
课外小组活动总结
2014/08/27 职场文书
安全责任书
2015/01/29 职场文书
pytorch中Schedule与warmup_steps的用法说明
2021/05/24 Python
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL