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 语法
1 |
|
值 | 描述 |
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各自的含义及用法?相关推荐
- Css中calc, support, media各自的含义及用法
1.calc calc() 函数用于动态计算长度值. ● 需要注意的是,运算符前后都需要保留一个空格,例如:width: calc(100% - 10px): ● 任何长度值都可以使用calc()函数 ...
- css中 media的用法,如何在css中正确使用@media
如何在css中使用@media作为特定分辨率?所以我想让我的侧栏更改取决于用户分辨率,所以我使用@media.如何在css中正确使用@media 这是示例代码: @media (max-width: ...
- Div+CSS布局入门教程(五) 页面制作-用好border和clear 附加:1.DIV+CSS设计原则 2.DIV+CSS中标签ul ol li dl dt dd用法
这一节里面,主要就是想告诉大家如何使用好border和clear这两个属性. 首先,如果你曾用过table制作网页,你就应该知道,如果要在表格中绘制一条虚线该如何做,那需要制作一个很小的图片来填充,其 ...
- html scale属性,CSS中的zoom属性和scale属性的用法及区别
CSS中的zoom属性和scale属性的用法及区别 CSS中的zoom属性和scale属性的用法及区别是什么呢?以下是小编整理的相关内容,欢迎阅读学习! zoom 属性 语法: zoom:normal ...
- 关于css中“点“,“井号“,“逗号“,“空格“,“冒号“的用法
详解css中"点","井号","逗号","空格","冒号"的用法_三级小野怪的专栏-CSDN博客bo ...
- UML类图中各种箭头和线条的含义和用法(转)
UML类图中箭头和线条的含义和用法 1.UML中关系 本节向大家学习一下UML箭头.线条代表的意义,UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条 ...
- css中calc()方法的使用
呈现出来的效果是: 里面的盒子超出了外面的父级盒子 为了使子级的宽度不超出父级 怎么办? 第一种方法 第二种方法: 另一个例子 在calc中使用自定义的方法 转载于:https://blog.51ct ...
- DIV+CSS中标签ul ol li dl dt dd用法
ul ol li dl dt dd都是DIV+CSS做网页长用的东西,相当于一棵树的树技,下面就了解一下这些东西的全体用法,本人用dd,dt,dd用得很少,懂得结合使用对做架构是很有好处的哦! DIV ...
- mysql 中的then_mysql中case when then end的含义和用法
参见这篇博客:https://blog.csdn.net/rongtaoup/article/details/82183743 case when then else end 语句用于查询满足多种条件 ...
最新文章
- 树莓派开发3-wiring库控制继电器和继电器组
- 孙正义的软银愿景宫斗内幕:印度裔高管争宠,黑公关手段,设局桃色仙人跳...
- Java protect属性
- c语言调用shell命令一 popen使用以及获取命令返回值
- 【Session】Tomcat中Session持久化到文件系统或数据库
- html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解
- Linux:守护进程详解及实现
- 小汤学编程之JAVA基础day09——常用类(一):比较器、内部类和包装类
- 在线考试 ajax,关于在线考试使用ajax一问?
- python调用usb摄像头黑屏_ORB-SLAM2编译安装和USB摄像头例程运行
- Anaconda3环境path与notepad++的NppExec插件激活环境与快速运行python脚本与matlab脚本,c代码
- 【细胞分割】基于matlab GUI原子力显微镜图像分析【含Matlab源码 1371期】
- 前端css文本、单词、字母强制换行
- windows的hosts文件在哪?
- python课程结课感悟_python听课的感悟与建议
- FIR 滤波器参数意义
- LEADTOOLS V20,史无前例荣耀归来!!!
- STK12已出,STK 12 新特性介绍
- Chrome打包扩展程序错误,清单文件缺失或不可读
- Matlab:设置命令历史记录预设项