使用CSS的@supports标记来检测浏览器的兼容情况
建站知识 2021-07-03 08:15www.168986.cn长沙网站建设
CSS @supports标记在CSS代码里跟@media查询语句的语法相似
CSS Code复制内容到剪贴板
- @supports(prop:value) {
- / 各种样式 /
- }
CSS @supports允许程序员用多种不同的方法来探测当前浏览器是否支持某项CSS样式特征。
基本属性检测
你可以执行对基本属性和属性值的检测
CSS Code复制内容到剪贴板
- @supports (display: flex) {
- div { display: flex; }
- }
这是@supports标记最基本的用法。
not关键字
@supports标记可以和‘not’关键字组合,用来应对不支持的情况
CSS Code复制内容到剪贴板
- @supports not (display: flex) {
- div { float: left; } / 替换样式 /
- }
多检测及条件检测
CSS Code复制内容到剪贴板
- / or /
- @supports (display: -webkit-flex) or
- (display: -moz-flex) or
- (display: flex) {
- / use styles here /
- }
- / and /
- @supports (display: flex) and (-webkit-appearance: caret) {
- / something crazy here /
- }
- / and and or /
- @supports ((display: -webkit-flex) or
- (display: -moz-flex) or
- (display: flex)) and (-webkit-appearance: caret) {
- / use styles here /
- }
Javascript CSS.supports()
在Javascript中通过使用window.CSS.supports方法来对CSS @supports进行检测,规范中提供了两个方法,一个方法可以接收两个参数boolValue = CSS.supports(propertyName, value);另一个可以接收一个字符串(A DOMString containing the condition to check),boolValue = CSS.supports(supportCondition);具体使用看下例
JavaScript Code复制内容到剪贴板
- //测试环境,Chrome:34.0.1847.131 m
- var res01 = CSS.supports("text-decoration-style", "blink");
- //Outputs: false
- console.log(res01);
- var res02 = CSS.supports("display", "flex");
- //Outputs: true
- console.log(res02);
- var res03 = CSS.supports("( transform-origin: 5% 5% )");
- //Outputs: false
- console.log(res03);
- var res04 = CSS.supports("( transform-style: preserve ) or ( -moz-transform-style: preserve ) or " +
- "( -o-transform-style: preserve ) or ( -webkit-transform-style: preserve )" );
- //Outputs: false
- console.log(res04);
@supports的使用场景
大多数情况,@supports是用来支持老式浏览器,并在有可能的情况下,利用现代浏览器的新特征来提高用户体验。@supports的一个最重要的使用场景是页面布局。很多现代浏览器都提供了对flexbox网页布局的支持,在这种还有很多浏览器不支持的情况下,你的代码可以写成这样
CSS Code复制内容到剪贴板
- section {
- float: left;
- }
- @supports (display: -webkit-flex) or
- (display: -moz-flex) or
- (display: flex) {
- section {
- display: -webkit-flex;
- display: -moz-flex;
- display: flex;
- float: none;
- }
- }
相信随着程序员对这种新的@supports功能的使用和体验,更多的更好的使用场景会不断的出现。
长沙网站设计
- 如何自己建一个网站 自己想建个网站,怎么建
- 如何制作网站免费建站 创建网站免费注册
- html简单网页代码 html简单网页代码超链接
- dreamweaver网页制作 dreamweaver网页制作模板
- 上海网站建设 上海网站建设制作微信
- 如何制作网站和网页 如何制作一个网页
- html网页制作代码大全 端午节html网页制作代码大
- app开发公司 app开发公司前十名
- html网页制作 html网页制作文字居中
- app制作一个需要多少钱 请人制作一个app多少钱
- 成都网站制作 成都网站制作维护
- 百度建一个网站多少钱 百度做个公司网站要多少
- html+css网页制作成品 web网页制作成品css+javascrip
- html网页制作案例 html网页设计案例
- html+css网页制作成品 web网页制作成品css+javascrip
- 个人网站模板 个人网站模板HTML