背景: 一次偶然的机会遇到一个朋友在刷css的库其中有这样一道题(css变量如何定义,calc, support, media),我看一眼熟悉而陌生,知其一而不知其二,叔可忍婶不可忍,马上就度娘起来,看一看它的真面目。

一 support

了解到了@support的这个属性,记录下:
CSS中的@support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写一套样式,如果不支持某个属性,你也可以提供另外一套样式作为替补。但是这里有一点需要注意的是:@support对于浏览器的版本也是有要求的,不是说所有的浏览器以及其所有的版本都是支持@support的。
下面就来说一下@support的用法:
1.基本语法是这样的:

@support(prop:value){
/*自己的样式*/
}
@supports (display: flex) { div { display: flex; }}

注释:如果浏览器支持display:flex属性的话,那么div的样式就是display:flex

2.逻辑操作符:“not” 的用法

@supports not (display: flex) { div { float: right; }}

注释:如果浏览器不支持display:flex属性的话,那么div的样式就是display:right

3.逻辑操作符:“and”的用法

@supports (display: flex) and ( box-shadow: 2px 2px 2px black ) {
/*自己的样式*/
}

注释:如果浏览器支持display:flex和box-shadow的属性,就执行里面自己的样式

4.逻辑操作符:“or” 的用法

@supports (display: -webkit-flex) or (display: -moz-flex) or(display: flex) {
/*自己的样式 */
}

注释:如果浏览器支持其中一个就可以执行里面自己的样式

5.混用的例子
“or”和“and”混用,在@supports中“or”和“and”混用时,必须使用括号()来区分其优先级

@supports ((transition-property: color) or (animation-name: foo)) and (transform: rotate(10deg)) {
/*自己的样式 */
}
@supports (transition-property: color) or ((animation-name: foo) and (transform: rotate(10deg))) {
/*自己的样式 */
}

“or”、“and” 和 “not” 混用

@supports (display: grid) and (not (transition-property: color) or (animation-name: foo)){
/*自己的样式 */
}

二 calc

定义与用法

calc() 函数用于动态计算长度值。

● 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px);

● 任何长度值都可以使用calc()函数进行计算;

● calc()函数支持 "+", "-", "*", "/" 运算;

● calc()函数使用标准的数学运算优先级规则;

CSS 语法

calc(expression)
值  描述
expression  必须,一个数学表达式,结果将采用运算后的返回值
width: calc(% - 80px);

注: calc兼容见 https://www.cnblogs.com/gaoht/p/11021876.html

二 media

定义和使用

使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。

当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

CSS 语法

@media mediatype and|not|only (media feature) {
CSS-Code;
}

实例

使用 @media 查询来制作响应式设计:

@media only screen and (max-width: 500px) {
.gridmenu {
width:%;
} .gridmain {
width:%;
} .gridright {
width:%;
}
}

---------------------
参考文章:

https://blog.csdn.net/liaobangxiang/article/details/80706922

https://developer.mozilla.org/en-US/docs/Web/CSS/calc

https://www.runoob.com/cssref/css3-pr-mediaquery.html

CSS中@support的用法 及其calc、media用法的更多相关文章

  1. 1:CSS中一些@规则的用法小结 2: @media用法详解

    第一篇文章:@用法小结 第二篇文章:@media用法 第一篇文章:@用法小结 这篇文章主要介绍了CSS中一些@规则的用法小结,是CSS入门学习中的基础知识,需要的朋友可以参考下     at-rule ...

  2. CSS中@support的用法

    这段时间一直在调试浏览器的兼容性问题,了解到了@support的这个属性,记录下: CSS中的@support主要是用于检测浏览器是否支持CSS的某个属性,其实就是条件判断,如果支持某个属性,你可以写 ...

  3. CSS中的class与id区别及用法

    转自http://www.divcss5.com/rumen/r3.shtml及http://www.jb51.net/css/35927.html 我们平常在用DIV CSS制作Xhtml网页页面时 ...

  4. CSS中box-sizing属性的理解与部分用法

    今天看了一些关于box-sizing的一些资料,在这里整理一下,希望也能对大家有所帮助. box-sizing是CSS的一个属性,很好的解决了盒模型的相关问题.CSS中的盒模型(Box model)分 ...

  5. Css中路径data:image/png;base64的用法详解

    今天查看一些网站的css中发现了 background-image:url(data:image/png;base64, iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAYAAAB ...

  6. DIV+CSS中标签dl dt dd常用的用法

    转自:http://smallpig301.blog.163.com/blog/static/9986093201010262499229/ < dl>< /dl>用来创建一个 ...

  7. Css中路径data:image/png;base64的用法详解 (转载)

    大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: background-image:url(data:image/png;base64, iVBORw0KGg ...

  8. CSS中路径及form表单的用法

    1.什么是路径? 路劲分为三种 1.绝对路径: 从盘符开始,然后依次的往下查找 本地: C:/Users/Administrator/Desktop/0527day01/07.html 服务器的: w ...

  9. html/css中相对定位relative和绝对定位absolute的用法

    一.相对定位(position:relative) 1.相对定位:将盒子的position属性设置为relative:可通过left.top.right.bottom设置偏移量. 相对定位基础用法示例 ...

随机推荐

  1. 在Anaconda中使用linux的命令

    在Anaconda中使用linux的命令 1.在anaconda中执行以下命令即可(要先activation 想用的环境): conda install m2-base 2.安装git.添加环境变量即 ...

  2. 大话设计模式Python实现- 抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的类 下面是一个抽象工厂的demo: #!/usr/bin/env pyth ...

  3. 海边拾贝-A-算法篇

    收集若干算法博客地址,不定期会更新: 算法 陈浩,leetcode 的C++解法  https://github.com/haoel/leetcode 王亮,很多题目讲解的比较详细   https:/ ...

  4. 转载-Qualcomm MSM8953启动流程:PBL-SBL1-(bootloader)LK-Android

    文章转载链接: https://blog.csdn.net/RadianceBlau/article/details/73229005 对于嵌入式工程师了解芯片启动过程是十分有必要的,在分析.调试各种 ...

  5. python中easydict的简单使用

    easydict的作用:EasyDict可以使得以属性的方式去访问字典的值! 1. 实例1:获取字典的值 2. 实例2: 设置属性 3. 在深度学习中往往利用easydict建立一个全局的变量

  6. argparse.ArgumentParser()用法解析

    本博客主要本人学习记录用. 内容来源 于博客:https://blog.csdn.net/the_time_runner/article/details/97941409 argparse模块官方文档 ...

  7. 机器学习(十)-------- 降维(Dimensionality Reduction)

    降维(Dimensionality Reduction) 降维的目的:1 数据压缩 这个是二维降一维 三维降二维就是落在一个平面上. 2 数据可视化 降维的算法只负责减少维数,新产生的特征的意义就必须 ...

  8. redis 面试问题问答Top 10

    1)什么是Redis? English:Redis is an open source (BSD licensed), in-memory data structure store, used as ...

  9. C# - VS2019WinFrm程序通过SMTP方式实现邮件发送

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序通过SMTP方式实现邮件发送.作为Delphi转C#的关键一步,接下来将逐步实现Delphi中常用到的功能. 准备工作 搭建WinFrm前台界 ...

  10. Spring循环依赖原因及如何解决

    浅谈Spring解决循环依赖的三种方式 SpringBoot构造器注入循环依赖及解决 原文:https://www.baeldung.com/circular-dependencies-in-spri ...