理解CSS Media媒體查詢
2020/11/7 11:20:46 閱讀:3909
發布者:3909
在CSS2中,媒體查詢只使用于和標簽中,以media屬性存在
media屬性用于為不同的媒介類型規定不同的樣式
screen 計算機屏幕(默認值)
tty 電傳打字機以及使用等寬字符網格的類似媒介
tv 電視類型設備(低分辨率、有限的屏幕翻滾能力)
projection 放映機
handheld 手持設備(小屏幕、有限的帶寬)
print 打印預覽模式 / 打印頁
braille 盲人用點字法反饋設備
aural 語音合成器
all 適合所有設備
真正廣泛使用且所有瀏覽器都兼容的媒介類型是'screen'和'all'
媒體屬性是CSS3新增的內容,多數媒體屬性帶有“min-”和“max-”前綴,用于表達“小于等于”和“大于等于”。這避免了使用與HTML和XML沖突的“<”和“>”字符
[注意]媒體屬性必須用括號()包起來,否則無效
下表中列出了所有的媒體屬性
width | min-width | max-width
height | min-height | max-height
device-width | min-device-width | max-device-width
device-height | min-device-height | max-device-height
aspect-ratio | min-aspect-ratio | max-aspect-ratio
device-aspect-ratio | min-device-aspect-ratio | max-device-aspect-ratio
color | min-color | max-color
color-index | min-color-index | max-color-index
monochrome | min-monochrome | max-monochrome
resolution | min-resolution | max-resolution
scan | grid
分辨率(resolution)
分辨率指定輸出設備的分辨率(像素密度)。分辨率可以用每英寸(dpi)或每厘米(dpcm)的點數來表示
and
and操作符用來把多個媒體屬性組合起來,合并到同一條媒體查詢中。只有當每個屬性都為真時,這條查詢的結果才為真
[注意]在不使用not或only操作符的情況下,媒體類型是可選的,默認為all
滿足橫屏以及最小寬度為700px的條件應用樣式表
@media all and (min-width: 700px) and (orientation: landscape) { ... }
由于不使用not或only操作符的情況下,媒體類型是可選的,默認為 all,所以可以簡寫為
@media (min-width: 700px) and (orientation: landscape) { ... }
or
將多個媒體查詢以逗號分隔放在一起;只要其中任何一個為真,整個媒體語句就返回真,相當于or操作符
滿足最小寬度為700像素或是橫屏的手持設備應用樣式表
@media (min-width: 700px), handheld and (orientation: landscape) { ... }
not
not操作符用來對一條媒體查詢的結果進行取反
[注意]not關鍵字僅能應用于整個查詢,而不能單獨應用于一個獨立的查詢
@media not all and (monochrome) { ... }
//等價于
@media not (all and (monochrome)) { ... }
only
only操作符表示僅在媒體查詢匹配成功時應用指定樣式。可以通過它讓選中的樣式在老式瀏覽器中不被應用
media="only screen and (max-width:1000px)"{...}
上面這行代碼,在老式瀏覽器中被解析為media="only",因為沒有一個叫only的設備,所以實際上老式瀏覽器不會應用樣式
media="screen and (max-width:1000px)"{...}
上面這行代碼,在老式瀏覽器中被解析為media="screen",它把后面的邏輯表達式忽略了。所以老式瀏覽器會應用樣式
所以,在使用媒體查詢時,only最好不要忽略