首先回顧下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; } }