首先回顾下css3中的@media

  定义和使用:

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

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

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

  实例:如果文档宽度小于 300 像素则修改背景颜色(background-color):

@media screen and (max-width: 300px) {
body {
background-color:lightblue;
}
}

  @media功能在scss和在css中基本一样,只是增强了一下。

  scss允许@media在css规则中进行嵌套,如果@media嵌套在CSS规则内,编译时,@media将被编译到文件的最外层,包含嵌套的父选择器,scss代码实例如下:

.sidebar {
width: 300px;
@media screen and (orientation: landscape) {
width: 500px;
}
}

  编译成css代码如下:

.sidebar {
width: 300px;
}
@media screen and (orientation: landscape) {
.sidebar {
width: 500px;
}
} 

  @media的queries允许互相嵌套使用,编译时,scss自动添加and。

  代码实例如下:

@media screen {
.sidebar {
@media (orientation: landscape) {
width: 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;
}
}
05-11 22:19