当前位置: 首页 > news >正文

【CSS/SCSS】@supports的介绍与用法

目录

  • 支持多个属性
  • 不支持某个特性时的样式
  • 嵌套 @supports
  • 性能考虑
  • 兼容性

@supports测试浏览器是否支持CSS功能,如果不支持则允许开发人员提供后备样式,这通常称为功能查询。

@supports (display: grid) {main {display: grid;}
}

在这个例子中,只有在浏览器支持 CSS Grid 布局的情况下,main 元素才会应用网格样式。

支持多个属性

@supports (display: flex) and (flex-direction: column) {.flex-column {display: flex;flex-direction: column;}
}

在这个例子中,只有在浏览器支持 Flexbox 布局及其 flex-direction 属性为 column 的情况下,.flex-column 类才会被应用。

不支持某个特性时的样式

您可以使用 not 来定义在不支持特定特性的情况下应用的样式。

@supports not (backdrop-filter: blur(5px)) {.overlay {background-color: rgba(0, 0, 0, 0.5);}
}

如果浏览器不支持 backdrop-filter 属性,.overlay 类将应用黑色半透明背景。

嵌套 @supports

可以在 @supports 块内嵌套其他条件:

@supports (display: grid) {@supports (grid-template-columns: repeat(3, 1fr)) {.container {display: grid;grid-template-columns: repeat(3, 1fr);}}
}

在这个例子中,只有在浏览器同时支持 grid 和 grid-template-columns 的情况下,才会应用相应的样式。

性能考虑

  • 性能:尽量避免在 @supports 中使用复杂的条件,因为这可能会影响性能,尤其是在大型样式表中。
  • 兼容性:@supports 在现代浏览器中得到广泛支持,但在某些老旧浏览器中可能无法使用。使用时请确保了解目标浏览器的支持情况。

兼容性

在这里插入图片描述


http://www.mrgr.cn/news/60603.html

相关文章:

  • 网络应用技术 实验一:路由器实现不同网络间通信(华为ensp)
  • Rust整合Elasticsearch
  • 负载均衡详解:背景、实现技术、作用范围与常用算法
  • 深入解析东芝TB62261FTG,步进电机驱动方案
  • opencv-platform实现人脸识别
  • 基于Arduino的LED亮灭按键控制
  • 【深度学习|地学应用】人工智能技术的发展历程与现状:探讨深度学习在遥感地学中的应用前景
  • arduino uno R3更换328pb-au芯片,烧录bootloader
  • “药品追溯到客户管理:数字化转型下的药企发展之路”
  • 基于LLaMA Factory对LLama 3指令微调的操作学习笔记
  • 新增、修改弹窗封装
  • java溯本求源之基础(二十七)之--Map常用子类及源码分析(6000字长文)
  • 中项到高项:软考信息系统项目管理师证书进阶指南
  • Pytest用例执行顺序和跳过执行详解
  • SQL-lab靶场less1-4
  • 《C++ 旧项目全局变量模块化改造:稳扎稳打,守护原有功能》
  • Flow-based生成模型理解
  • DevSecOps在数字政府建设中的实践研究
  • MinIO方法封装
  • 【C++】Type punning类型双关、union联合体、C++中的类型转换casting
  • 手机也能开数电票了,可能我也即将要失业了
  • Codigger桌面模式之Size Look介绍
  • 使用语言模型进行文本摘要的五个级别(llm)
  • 去中心化的概述
  • 机器学习中的谱聚类及实践案例
  • VLAN聚合