一 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 语法

1

calc(expression)

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

注: calc兼容见 calc()在less中编译报错 - echo丶若梦 - 博客园

二 media

定义和使用

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

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

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

CSS 语法

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

实例

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

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

---------------------

CSS3 @media 用法总结

//语法:
@media mediatype and | not | only (media feature) { css-code; }
//也可以针对不同的媒体使用不同的stylesheets:
<link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

一、首先是<meta>标签

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

这段代码的几个参数解释:
width = device-width:宽度等于当前设备的宽度
initial-scale:初始的缩放比例(默认设置为1.0)
minimum-scale:允许用户缩放到的最小比例(默认设置为1.0)
maximum-scale:允许用户缩放到的最大比例(默认设置为1.0)
user-scalable:用户是否可以手动缩放(默认设置为no,因为我们不希望用户放大缩小页面)

二、<head>标签中引入(CSS2 media)

其实并不是只有CSS3才支持Media的用法,早在CSS2开始就已经支持Media,具体用法,就是在HTML页面的head标签中插入如下代码:

例如我们想知道现在的移动设备是不是纵向放置的显示屏,可以这样写:

<link rel="stylesheet" type="text/css" media="screen and (orientation:portrait)" ;href="style.css">

页面宽度小于960的执行指定的样式文件:

<link rel="stylesheet" type="text/css" media="screen and (max-width:960px)" href="style.css">

既然CSS2可以实现CSS的这个效果为什么不用这个方法呢,很多人应该会问,但是上面这个方法,最大的弊端是他会增加页面http的请求次数,增加了页面负担,我们用CSS3把样式都写在一个文件里面才是最佳的方法。

下面来解释一下遇到冲突时的机制:

<link rel="stylesheet" href="styleA.css" media="screen and (min-width: 800px)">
<link rel="stylesheet" href="styleB.css" media="screen and (min-width: 600px) and (max-width: 800px)">
<link rel="stylesheet" href="styleC.css" media="screen and (max-width: 600px)">

上面将设备分成3种,分别是宽度大于800px时,应用 styleA ,宽度在600px到800px之间时应用 styleB ,以及宽度小于600px时应用 styleC 。那假如宽度正好等于800px时该应用那个样式?是 styleB,因为前两条表达式都成立,按CSS默认优先级规则后者覆盖了前者。
因此,为了避免冲突,这个例子正常情况应该这样写:

<link rel="stylesheet" href="styleA.css" media="screen">
<link rel="stylesheet" href="styleB.css" media="screen and (max-width: 800px)">
<link rel="stylesheet" href="styleC.css" media="screen and (max-width: 600px)">

三、回归CSS3 @media

上面我们大概讲了下CSS2的媒体查询用法,现在我们重新回到CSS3的媒体查询,在第一段代码上面我用的是小于960px的尺寸的写法,那现在我们来实现等于960px尺寸的代码,以下代码需要写在style标签或者css文件中:

@media screen and (max-device-width:960px){body{background:red;}
}

然后就是当浏览器尺寸大于960px时候的代码了:

@media screen and (min-width:960px){ body{background:orange;}
}

我们还可以混合使用上面的用法:

@media screen and (min-width:960px) and (max-width:1200px){body{background:yellow;}
}

上面的这段代码的意思是当页面宽度大于960px小于1200px的时候执行下面的CSS。

四、Media所有参数汇总

以上就是我们最常需要用到的媒体查询器的三个特性,大于,等于,小于的写法。媒体查询器的全部功能肯定不止这三个功能,下面是我总结的它的一些参数用法解释:

width:浏览器可视宽度。
height:浏览器可视高度。
device-width:设备屏幕的宽度。
device-height:设备屏幕的高度。
orientation:检测设备目前处于横向还是纵向状态。
aspect-ratio:检测浏览器可视宽度和高度的比例。(例如:aspect-ratio:16/9)
device-aspect-ratio:检测设备的宽度和高度的比例。
color:检测颜色的位数。(例如:min-color:32就会检测设备是否拥有32位颜色)
color-index:检查设备颜色索引表中的颜色,他的值不能是负数。
monochrome:检测单色楨缓冲区域中的每个像素的位数。(这个太高级,估计咱很少会用的到)
resolution:检测屏幕或打印机的分辨率。(例如:min-resolution:300dpi或min-resolution:118dpcm)。
grid:检测输出的设备是网格的还是位图设备。

(max-width:599px)
(min-width:600px)
(orientation:portrait) 竖屏
(orientation:landscape)        横屏
(-webkit-min-device-pixel-ratio: 2) 像素比

五、媒体类型

1.all 所有媒体
2.braille 盲文触觉设备
3.embossed 盲文打印机
4.print 手持设备
5.projection 打印预览
6.screen 彩屏设备
7.speech '听觉'类似的媒体类型
8.tty 不适用像素的设备
9.tv 电视

六、关键字

1.and
2.not not关键字是用来排除某种制定的媒体类型
3.only only用来定某种特定的媒体类型
-很多时候是用来对那些不支持媒体特性但却支持媒体类型的设备

七、浏览器支持情况

IE8-
IE9+
Chrome 5+
Opera 10+
Firefox 3.6+<
Safari 4+

八、常用的几种屏幕宽度设定:

@media screen and (min-width: 1200px) {css-code;
}
@media screen and(min-width: 960px) and (max-width: 1199px) {css-code;
}
@media screen and(min-width: 768px) and (max-width: 959px) {css-code;
}
@media screen and(min-width: 480px) and (max-width: 767px) {css-code;
}
@media screen and (max-width: 479px) {css-code;
}

参考文章:

CSS中@support的用法_liaobangxiang的博客-CSDN博客

calc() - CSS: Cascading Style Sheets | MDN

CSS3 @media查询 | 菜鸟教程

CSS3 @media 用法总结 - 简书

https://www.cnblogs.com/gaoht/p/11263976.html

CSS中calc, support, media各自的含义及用法?相关推荐

  1. Css中calc, support, media各自的含义及用法

    1.calc calc() 函数用于动态计算长度值. ● 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px): ● 任何长度值都可以使用calc()函数 ...

  2. css中 media的用法,如何在css中正确使用@media

    如何在css中使用@media作为特定分辨率?所以我想让我的侧栏更改取决于用户分辨率,所以我使用@media.如何在css中正确使用@media 这是示例代码: @media (max-width: ...

  3. Div+CSS布局入门教程(五) 页面制作-用好border和clear 附加:1.DIV+CSS设计原则 2.DIV+CSS中标签ul ol li dl dt dd用法

    这一节里面,主要就是想告诉大家如何使用好border和clear这两个属性. 首先,如果你曾用过table制作网页,你就应该知道,如果要在表格中绘制一条虚线该如何做,那需要制作一个很小的图片来填充,其 ...

  4. html scale属性,CSS中的zoom属性和scale属性的用法及区别

    CSS中的zoom属性和scale属性的用法及区别 CSS中的zoom属性和scale属性的用法及区别是什么呢?以下是小编整理的相关内容,欢迎阅读学习! zoom 属性 语法: zoom:normal ...

  5. 关于css中“点“,“井号“,“逗号“,“空格“,“冒号“的用法

    详解css中"点","井号","逗号","空格","冒号"的用法_三级小野怪的专栏-CSDN博客bo ...

  6. UML类图中各种箭头和线条的含义和用法(转)

    UML类图中箭头和线条的含义和用法 1.UML中关系 本节向大家学习一下UML箭头.线条代表的意义,UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条 ...

  7. css中calc()方法的使用

    呈现出来的效果是: 里面的盒子超出了外面的父级盒子 为了使子级的宽度不超出父级 怎么办? 第一种方法 第二种方法: 另一个例子 在calc中使用自定义的方法 转载于:https://blog.51ct ...

  8. DIV+CSS中标签ul ol li dl dt dd用法

    ul ol li dl dt dd都是DIV+CSS做网页长用的东西,相当于一棵树的树技,下面就了解一下这些东西的全体用法,本人用dd,dt,dd用得很少,懂得结合使用对做架构是很有好处的哦! DIV ...

  9. mysql 中的then_mysql中case when then end的含义和用法

    参见这篇博客:https://blog.csdn.net/rongtaoup/article/details/82183743 case when then else end 语句用于查询满足多种条件 ...

最新文章

  1. 树莓派开发3-wiring库控制继电器和继电器组
  2. 孙正义的软银愿景宫斗内幕:印度裔高管争宠,黑公关手段,设局桃色仙人跳...
  3. Java protect属性
  4. c语言调用shell命令一 popen使用以及获取命令返回值
  5. 【Session】Tomcat中Session持久化到文件系统或数据库
  6. html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解
  7. Linux:守护进程详解及实现
  8. 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
  9. 在线考试 ajax,关于在线考试使用ajax一问?
  10. python调用usb摄像头黑屏_ORB-SLAM2编译安装和USB摄像头例程运行
  11. Anaconda3环境path与notepad++的NppExec插件激活环境与快速运行python脚本与matlab脚本,c代码
  12. 【细胞分割】基于matlab GUI原子力显微镜图像分析【含Matlab源码 1371期】
  13. 前端css文本、单词、字母强制换行
  14. windows的hosts文件在哪?
  15. python课程结课感悟_python听课的感悟与建议
  16. FIR 滤波器参数意义
  17. LEADTOOLS V20,史无前例荣耀归来!!!
  18. STK12已出,STK 12 新特性介绍
  19. Chrome打包扩展程序错误,清单文件缺失或不可读
  20. Matlab:设置命令历史记录预设项

热门文章

  1. 什么是 SIGSEGV 以及导致报错的原因
  2. 计算机系统结构基本概念
  3. RunJS个人使用推荐(好用的JS、css实时预览、编辑、管理等功能)
  4. Android 网络性能优化-概述和DNS优化
  5. 设置GPU实现深度学习单卡、多卡 训练
  6. htmlparser的使用java_java htmlparser 简单使用入门
  7. 汇正财经靠谱吗?资金涌入TMT大题材
  8. thought, th Kobe 8
  9. GaussDB分布式测试环境搭建
  10. Python 进制转换,十进制与2进制、8进制、16进制之间的转换