css媒體查詢Media Queries

隨著科學(xué)技術(shù)不斷的向前發(fā)展,網(wǎng)頁(yè)的瀏覽終端越來(lái)越多樣化,用戶可以通過(guò):寬屏電視、臺(tái)式電腦、筆記本電腦、平板電腦和智能手機(jī)來(lái)訪問(wèn)你的網(wǎng)站。盡管你無(wú)法保證一個(gè)網(wǎng)站在不同屏幕尺寸和不同設(shè)備上看起來(lái)完全一模一樣,但至少要讓你的Web頁(yè)面能適配用戶的終端,讓他更好的呈現(xiàn)在你的用戶面前。本文使用CSS3中的Media Queries模塊來(lái)讓一個(gè)頁(yè)面適應(yīng)不同的終端(或屏幕尺寸),從而讓你的頁(yè)面讓用戶有一個(gè)更好的體驗(yàn)。

Media Queries

Media Queries是CSS3新增加的一個(gè)模塊功能,其最大的特色就是通過(guò)CSS3來(lái)查詢媒體,然后調(diào)用對(duì)應(yīng)的樣式。其實(shí)這個(gè)功能在CSS2.1中就有出現(xiàn)過(guò),只不過(guò)那個(gè)時(shí)候此功能并不強(qiáng)大,我們最常見(jiàn)的就是給打印設(shè)備添加打印樣式。隨著時(shí)代的變化,這個(gè)模塊功能越來(lái)越強(qiáng)大。

在徹底的了解Media Queries我們需要了解其中的兩個(gè)重要部分,第一個(gè)是媒體類(lèi)型,第二個(gè)是媒體特性。下面的內(nèi)容我們簡(jiǎn)單的來(lái)了解這兩個(gè)部分:

一、媒體類(lèi)型

媒體類(lèi)型(Media Type)在CSS2中是一個(gè)常見(jiàn)的屬性,也是一個(gè)非常有用的屬性,可以通過(guò)媒體類(lèi)型對(duì)不同的設(shè)備指定不同的樣式。

在CSS2中常碰到的就是all(全部)、screen(屏幕)、print(頁(yè)面打印或打印預(yù)覽模式),其實(shí)媒體類(lèi)型遠(yuǎn)不止這三種,W3C總共列出了10種媒體類(lèi)型。如下表所示:

10種媒體類(lèi)型

其中Screen、All和Print為最常見(jiàn)的三種媒體類(lèi)型。

二、媒體類(lèi)型的引用方法?

在實(shí)際中媒體類(lèi)型有近十種之多,實(shí)際之中常用的也就那么幾種,不過(guò)媒體類(lèi)型的引用方法也有多種,常見(jiàn)的有:link標(biāo)簽、@import和CSS3新增的@media幾種:

第一種:link方法

link方法引入媒體類(lèi)型其實(shí)就是在標(biāo)簽引用樣式的時(shí)候,通過(guò)link標(biāo)簽中的media屬性來(lái)指定不同的媒體類(lèi)型。如下所示。

<link rel="stylesheet" type="text/css" href="style.css" media="screen" />

<link rel="stylesheet" type="text/css" href="print.css" media="print" />

第二種:@import方法

@import可以引用樣式文件,同樣也可以用來(lái)引用媒體類(lèi)型。@import引入媒體類(lèi)型主要有兩種方式,一種是在樣式中通過(guò)@import調(diào)用另一個(gè)樣式文件;另一種方法是在標(biāo)簽中的中引入,但這種使用方法在IE6~7都不被支持,如樣式文件中調(diào)用另一個(gè)樣式文件時(shí),就可以指定對(duì)應(yīng)的媒體類(lèi)型。

@importurl(reset.css) screen;

@importurl(print.css) print;

在<head>中的<style>標(biāo)簽中引入媒體類(lèi)型方法

<head>

????????<styletype="text/css">

????????????@importurl(style.css) all;

????????</style>

</head>

第三種:@media方法

@media是CSS3中新引進(jìn)的一個(gè)特性,被稱為媒體查詢。在頁(yè)面中也可以通過(guò)這個(gè)屬性來(lái)引入媒體類(lèi)型。@media引入媒體類(lèi)型和@import有點(diǎn)類(lèi)似也具有兩方式。

(1)在樣式文件中引用媒體類(lèi)型:

@mediascreen{

????????選擇器{/*你的樣式代碼寫(xiě)在這里…*/}

? ?}?

(2)使用@media引入媒體類(lèi)型的方式是在<head>標(biāo)簽中的<style>中引用。

<head>

????<styletype="text/css">

????????????????@media screen{?

?????????????????????????????選擇器{/*你的樣式代碼寫(xiě)在這里…*/}

? ? ? ? ? ? ? ? ?}

????????</style>

</head>

三、Media Queries使用方法

Media Queries能在不同的條件下使用不同的樣式,使頁(yè)面在不同在終端設(shè)備下達(dá)到不同的渲染效果。前面簡(jiǎn)單的介紹了Media Queries如何引用到項(xiàng)目中,但Media Queries有其自己的使用規(guī)則。

@media 媒體類(lèi)型and (媒體特性){你的樣式}

注意:使用Media Queries必須要使用“@media”開(kāi)頭,然后指定媒體類(lèi)型(也可以稱為設(shè)備類(lèi)型),隨后是指定媒體特性(也可以稱之為設(shè)備特性)。媒體特性的書(shū)寫(xiě)方式和樣式的書(shū)寫(xiě)方式非常相似,主要分為兩個(gè)部分,第一個(gè)部分指的是媒體特性,第二部分為媒體特性所指定的值,而且這兩個(gè)部分之間使用冒號(hào)分隔。例如:

(max-width: 480px)

從前面表中可以得知,主要有十種媒體類(lèi)型和13種媒體特性,將其組合就類(lèi)似于不同的CSS集合。但與CSS屬性不同的是,媒體特性是通過(guò)min/max來(lái)表示大于等于或小于做為邏輯判斷,而不是使用小于(<)和大于(>)這樣的符號(hào)來(lái)判斷。接下來(lái)一起來(lái)看看Media Queries在實(shí)際項(xiàng)目中常用的方式。

1、最大寬度max-width

“max-width”是媒體特性中最常用的一個(gè)特性,其意思是指媒體類(lèi)型小于或等于指定的寬度時(shí),樣式生效。如:

匹配最大寬度

上面表示的是:當(dāng)屏幕小于或等于480px時(shí),頁(yè)面中的廣告區(qū)塊(.ads)都將被隱藏。

2.最小寬度min-width

“min-width”與“max-width”相反,指的是媒體類(lèi)型大于或等于指定寬度時(shí),樣式生效。

匹配最小寬度

上面表示的是:當(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)鍵字,以及一種媒體類(lèi)型。

當(dāng)屏幕在600px~900px之間時(shí),body的背景色渲染為“#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”。

上面的代碼指的是“iphone.css”樣式適用于最大設(shè)備寬度為480px,比如說(shuō)iPhone上的顯示,這里的“max-device-width”所指的是設(shè)備的實(shí)際分辨率,也就是指可視面積分辨率。

5. not關(guān)鍵詞

使用關(guān)鍵詞“not”是用來(lái)排除某種制定的媒體類(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)型,可以用來(lái)排除不支持媒體查詢的瀏覽器。其實(shí)only很多時(shí)候是用來(lái)對(duì)那些不支持Media Query但卻支持Media Type的設(shè)備隱藏樣式表的。其主要有:支持媒體特性的設(shè)備,正常調(diào)用樣式,此時(shí)就當(dāng)only不存在;表示不支持媒體特性但又支持媒體類(lèi)型的設(shè)備,這樣就會(huì)不讀樣式,因?yàn)槠湎葧?huì)讀取only而不是screen;另外不支持Media Queries的瀏覽器,不論是否支持only,樣式都不會(huì)被采用。如

css樣式

在Media Query中如果沒(méi)有明確指定Media Type,那么其默認(rèn)為all,如:

css樣式

另外在樣式中,還可以使用多條語(yǔ)句來(lái)將同一個(gè)樣式應(yīng)用于不同的媒體類(lèi)型和媒體特性中,指定方式如下所示。

css樣式

上面代碼中style.css樣式被用在寬度小于或等于480px的手持設(shè)備上,或者被用于屏幕寬度大于或等于960px的設(shè)備上。?

到目前為止,CSS3 Media Queries得到了眾多瀏覽器支持,除了IE6-8瀏覽器不支持之外,在所有現(xiàn)代瀏覽器中都可以完美支持。還有一個(gè)與眾不同的時(shí),Media Queries在其他瀏覽器中不要像其他CSS3屬性一樣在不同的瀏覽器中添加前綴。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類(lèi)選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,435評(píng)論 0 11
  • 譯自:codecademy Responsive Web Design 因?yàn)橛脩艨赡茉谌魏纬叽绲脑O(shè)備上瀏覽網(wǎng)頁(yè),i...
    我是真的YTR閱讀 504評(píng)論 0 0
  • Media Queries——媒體類(lèi)型(一) 隨著科學(xué)技術(shù)不斷的向前發(fā)展,網(wǎng)頁(yè)的瀏覽終端越來(lái)越多樣化,用戶可以通過(guò)...
    _雙眸閱讀 515評(píng)論 0 0
  • 隨著科學(xué)技術(shù)不斷的向前發(fā)展,網(wǎng)頁(yè)的瀏覽終端越來(lái)越多樣化,用戶可以通過(guò):寬屏電視、臺(tái)式電腦、筆記本電腦、平板電腦和智...
    晨曦詩(shī)雨閱讀 868評(píng)論 0 0
  • CSS參考手冊(cè) 一、初識(shí)CSS3 1.1 CSS是什么 CSS3在CSS2.1的基礎(chǔ)上增加了很多強(qiáng)大的新功能。目前...
    沒(méi)汁帥閱讀 4,280評(píng)論 1 13

友情鏈接更多精彩內(nèi)容