使用CSS3的@media來實現網頁自適應


如今,電腦顯示器的屏幕分辨率向越來越大發展,而手機等移動設備終端的分辨率卻不可能大到哪里去。越來越多的網站,開始讓自己的頁面自適合各種分辨率,在小分辨率下顯示基本的內容,在大分辨率下顯示全部功能,甚至是分多等級的多版本。
作為web前端開發人員需要知道並且會用這種知識。

css2的@media

css2里面雖然支持@media屬性,但是能實現的功能比較少,一般只用做打印的時候做特殊定義的CSS。
語法: @media sMedia { sRules }
說明:
sMedia :  指定設備名稱。請參閱附錄:設備類型
sRules :  樣式表定義
指定樣式表規則用於指定的設備類型。請參閱link對象的media屬性(特性)。
示例:

1
2
3
4
5
6
7
8
9
// 設置顯示器用字體尺寸
@media  screen {
BODY { font-size : 12pt ; }
}
// 設置打印機用字體尺寸
@media  print {
@import  "print.css"
BODY { font-size : 8pt ;}
}

css3的@media

@media 屬性在CSS3里面已經演變成一種 media queries(媒體查詢/匹配)了,在CSS3里面,可以用查詢語句來匹配各種類型的屏幕。
語法:@media : { sRules }
取值:

1
2
<sMedia>:指定設備名稱。
{sRules}:樣式表定義。

說明:
判斷媒介(對象)類型來實現不同的展現。此特性讓CSS可以更精確作用於不同的媒介類型,同一媒介的不同條件(分辨率、色數等等).

01
02
03
04
05
06
07
08
09
10
11
12
13
media_query: [only | not]?  [ and  ]*
expression: (  [: ]? )
media_type:  all aural braille handheld print projection screen tty tv embossed
media_feature: 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
| 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

解析
media_query:媒體查詢條件。包括了 only not and 這些經常在程序里面出現的邏輯判斷。
expression:表達式。媒體特征的匹配與否。
media_type:媒體的種類。包括了很多。
media_feature:媒體的特征。常用的是 min-width max-width 最小最大寬度的判斷。

DEMO(推薦在Chrome或者FIREFOX下打開,打開后,按快捷鍵“CTRL”+”+”,“CTRL”+”-”來縮放頁面):
使用CSS3的@media來實現網頁自適應的效果圖

CSS代碼

1
2
3
4
5
body{ background : blue ;} /*寬度500px-800px之間+高度100px-400px之間 藍色*/
@media  screen and ( max-width : 500px ){body{ background : green ;}} /*寬度小於500px時 綠色*/
@media  screen and ( min-width : 800px ){body{ background : red ;}} /*寬度大於800px時 紅色*/
@media  screen and ( max-height : 100px ){body{ background :yellow;}} /*高度小於100px時 黃色*/
@media  screen and ( min-height : 400px ){body{ background :pink;}} /*高度大於400px時 粉色*/

HTML代碼

1
2
3
4
5
6
< p >效果演示,請縮小/擴大瀏覽器的窗口大小注意背景色的變化。邏輯如下:</ p >
< p >/*寬度500px-800px之間+高度100px-400px之間 藍色*/</ p >
< p >/*寬度小於500px時 綠色*/</ p >
< p >/*寬度大於800px時 紅色*/</ p >
< p >/*高度小於100px時 黃色*/</ p >
< p >/*高度大於400px時 粉色*/</ p >

demo演示地址:http://www.zjgsq.com/example?pid=1180


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM