Media Queries能在不同的條件下使用不同的樣式蚁趁,使頁(yè)面在不同在終端設(shè)備下達(dá)到不同的渲染效果。前面簡(jiǎn)單的介紹了Media Queries如何引用到項(xiàng)目中风范,但Media Queries有其自己的使用規(guī)則。具體來(lái)說(shuō),Media Queries的使用方法如下。
@media 媒體類型and (媒體特性){你的樣式}
注意:使用Media Queries必須要使用“@media”開(kāi)頭洛史,然后指定媒體類型(也可以稱為設(shè)備類型),隨后是指定媒體特性(也可以稱之為設(shè)備特性)贝奇。媒體特性的書(shū)寫(xiě)方式和樣式的書(shū)寫(xiě)方式非常相似虹菲,主要分為兩個(gè)部分,第一個(gè)部分指的是媒體特性掉瞳,第二部分為媒體特性所指定的值毕源,而且這兩個(gè)部分之間使用冒號(hào)分隔。例如:
(max-width: 480px)
從前面表中可以得知陕习,主要有十種媒體類型和13種媒體特性霎褐,將其組合就類似于不同的CSS集合。
但與CSS屬性不同的是该镣,媒體特性是通過(guò)min/max來(lái)表示大于等于或小于做為邏輯判斷冻璃,
而不是使用小于(<)和大于(>)這樣的符號(hào)來(lái)判斷。接下來(lái)一起來(lái)看看Media Queries在實(shí)際項(xiàng)目中常用的方式。
- 最大寬度max-width
“max-width”是媒體特性中最常用的一個(gè)特性省艳,其意思是指媒體類型小于或等于指定的寬度時(shí)娘纷,樣式生效。如:
@media screen and (max-width:480px){
.ads {
display:none;
}
}
上面表示的是:當(dāng)屏幕小于或等于480px時(shí),頁(yè)面中的廣告區(qū)塊(.ads)都將被隱藏跋炕。
2.最小寬度min-width
“min-width”與“max-width”相反赖晶,指的是媒體類型大于或等于指定寬度時(shí),樣式生效辐烂。
@media screen and (min-width:900px){
.wrapper{width: 980px;}
}
上面表示的是:當(dāng)屏幕大于或等于900px時(shí)遏插,容器“.wrapper”的寬度為980px。
3.多個(gè)媒體特性使用
Media Queries可以使用關(guān)鍵詞"and"將多個(gè)媒體特性結(jié)合在一起纠修。也就是說(shuō)胳嘲,一個(gè)Media Query中可以包含0到多個(gè)表達(dá)式,表達(dá)式又可以包含0到多個(gè)關(guān)鍵字扣草,以及一種媒體類型了牛。
當(dāng)屏幕在600px~900px之間時(shí),body的背景色渲染為“#f5f5f5”德召,如下所示白魂。
@media screen and (min-width:600px) and (max-width:900px){
body {background-color:#f5f5f5;}
}
4.設(shè)備屏幕的輸出寬度Device Width
在智能設(shè)備上,例如iPhone上岗、iPad等福荸,還可以根據(jù)屏幕設(shè)備的尺寸來(lái)設(shè)置相應(yīng)的樣式(或者調(diào)用相應(yīng)的樣式文件)。同樣的肴掷,對(duì)于屏幕設(shè)備同樣可以使用“min/max”對(duì)應(yīng)參數(shù)敬锐,如“min-device-width”或者“max-device-width”。
<link rel="stylesheet" media="screen and (max-device-width:480px)" href="iphone.css" />
上面的代碼指的是“iphone.css”樣式適用于最大設(shè)備寬度為480px呆瞻,比如說(shuō)iPhone上的顯示台夺,這里的“max-device-width”所指的是設(shè)備的實(shí)際分辨率,也就是指可視面積分辨率痴脾。
- not關(guān)鍵詞
使用關(guān)鍵詞“not”是用來(lái)排除某種制定的媒體類型颤介,也就是用來(lái)排除符合表達(dá)式的設(shè)備。換句話說(shuō)赞赖,not關(guān)鍵詞表示對(duì)后面的表達(dá)式執(zhí)行取反操作滚朵,如:
@media not print and (max-width: 1200px){樣式代碼}
上面代碼表示的是:樣式代碼將被使用在除打印設(shè)備和設(shè)備寬度小于1200px下所有設(shè)備中。
6.only關(guān)鍵詞
only用來(lái)指定某種特定的媒體類型前域,可以用來(lái)排除不支持媒體查詢的瀏覽器辕近。其實(shí)only很多時(shí)候是用來(lái)對(duì)那些不支持Media Query但卻支持Media Type的設(shè)備隱藏樣式表的。其主要有:支持媒體特性的設(shè)備匿垄,正常調(diào)用樣式移宅,此時(shí)就當(dāng)only不存在归粉;表示不支持媒體特性但又支持媒體類型的設(shè)備,這樣就會(huì)不讀樣式漏峰,因?yàn)槠湎葧?huì)讀取only而不是screen糠悼;另外不支持Media Queries的瀏覽器,不論是否支持only浅乔,樣式都不會(huì)被采用绢掰。如
<linkrel="stylesheet" media="only screen and (max-device-width:240px)" href="android240.css" />
在Media Query中如果沒(méi)有明確指定Media Type,那么其默認(rèn)為all童擎,如:
<linkrel="stylesheet" media="(min-width:701px) and (max-width:900px)" href="mediu.css" />
另外在樣式中,還可以使用多條語(yǔ)句來(lái)將同一個(gè)樣式應(yīng)用于不同的媒體類型和媒體特性中攻晒,指定方式如下所示顾复。
<linkrel="stylesheet" type="text/css" href="style.css" media="handheld and (max-width:480px), screen and (min-width:960px)" />
上面代碼中style.css樣式被用在寬度小于或等于480px的手持設(shè)備上,或者被用于屏幕寬度大于或等于960px的設(shè)備上鲁捏。
到目前為止芯砸,CSS3 Media Queries得到了眾多瀏覽器支持,除了IE6-8瀏覽器不支持之外给梅,在所有現(xiàn)代瀏覽器中都可以完美支持假丧。還有一個(gè)與眾不同的是,Media Queries在其他瀏覽器中不要像其他CSS3屬性一樣在不同的瀏覽器中添加前綴动羽。