首先回顾下css3中的@media
定义和使用:
使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。
@media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。
当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。
实例:如果文档宽度小于 300 像素则修改背景颜色(background-color):
@media screen and (max- 300px) { body { background-color:lightblue; } }
@media功能在scss和在css中基本一样,只是增强了一下。
scss允许@media在css规则中进行嵌套,如果@media嵌套在CSS规则内,编译时,@media将被编译到文件的最外层,包含嵌套的父选择器,scss代码实例如下:
.sidebar { width: 300px; @media screen and (orientation: landscape) { 500px; } }
编译成css代码如下:
.sidebar { width: 300px; } @media screen and (orientation: landscape) { .sidebar { width: 500px; } }
@media的queries允许互相嵌套使用,编译时,scss自动添加and。
代码实例如下:
@media screen { .sidebar { @media (orientation: landscape) { 500px; } } }
编译后的css代码如下:
@media screen and (orientation: landscape) { .sidebar { width: 500px; } }
@media当然也可以使用scss中的变量、运算符以及函数,代码实例如下:
$media: screen; $feature: -webkit-min-device-pixel-ratio; $value: 1.5; @media #{$media} and ($feature: $value) { .sidebar { width: 500px; } }
被编译后的css代码如下:
@media screen and (-webkit-min-device-pixel-ratio: 1.5) { .sidebar { width: 500px; } }