CSS3 Media Queries 實現響應式設計

在 CSS2 中,你能夠爲不一樣的媒介設備(如屏幕、打印機)指定專用的樣式表,而如今藉助 CSS3 的 Media Queries 特性,能夠更爲有效的實現這個功能。你能夠爲媒介類型添加某些條件,檢測設備並採用不一樣的樣式表。css

  例如,你能夠把用於大屏幕上顯示的樣式和用於移動設備的專用樣式放在一個樣式文檔中,這樣,在不改變文檔內容的狀況下,不一樣的設備能夠呈現不一樣的界面外觀。閱讀這篇文章學習 CSS3 Media Queries 的基本功能和國外使用 CSS3 的 Media Queries 特性的優秀網站案例。html

CSS3 Media Queries

看下這個 在線演示,調整你的瀏覽器窗口尺寸,看看它的變化。jquery

Max Width

下面的樣式會在可視區域的寬度小於 600px 的時候被應用。git

1
2
3
4
5
@media       screen           and (     max-width     :     600px     ) {
       .class {
         background     :     #ccc     ;
       }
}

若是你想連接到一個單獨的樣式表,把下面的代碼放在<head>標籤裏。github

1
<link rel=     "stylesheet"           media=     "screen and (max-width: 600px)"           href=     "small.css"           />

Min Width

下面的樣式會在可視區域的寬度大於 900px 的時候被應用。web

1
2
3
4
5
@media       screen           and (     min-width     :     900px     ) {
       .class {
         background     :     #666     ;
       }
}

Multiple Media Queries

你還能夠使用過個匹配條件,下面的樣式會在可視區域的寬度在 600px 和 900px 之間的時候被應用。瀏覽器

1
2
3
4
5
@media       screen           and (     min-width     :     600px     ) and (     max-width     :     900px     ) {
       .class {
         background     :     #333     ;
       }
}

Device Width

下面的樣式會在 max-device-width 是 480px 的設備上觸發。(提示:max-device-width 是設備的實際分辨率,而 max-width 指的是可視區域分辨率。)iphone

1
2
3
4
5
@media       screen           and (max-device-     width     :     480px     ) {
       .class {
         background     :     #000     ;
       }
} 

For iPhone 4

下面的樣式是爲 iPhone 4 專門寫的 (做者: Thomas Maier)。佈局

1
<link rel=     "stylesheet"           media=     "only screen and (-webkit-min-device-pixel-ratio: 2)"           type=     "text/css"           href=     "iphone4.css"           /> 

For iPad

你還能夠使用 media query 在 iPad 上檢測方向(portrait or landscapse) (做者: Cloud Four)。學習

1
2
<link rel=     "stylesheet"           media=     "all and (orientation:portrait)"           href=     "portrait.css"     >
<link rel=     "stylesheet"           media=     "all and (orientation:landscape)"           href=     "landscape.css"     > 

Media Queries for IE

遺憾是的,IE8 及更老版本的瀏覽器不支持 CSS3 Media Queries,不過能夠使用 Javascript  彌補,下面是一些解決方案:

附:CSS3 Media Queries 瀏覽器兼容性表

 

CSS3 Media Queries 應用案例

須要在下面這些支持 Media Queries 特性的瀏覽器中瀏覽:IE9+, Firefox, Chrome 和 Safari。瀏覽每一個站點,看頁面佈局是如何響應瀏覽器窗口變化的。

Hicksdesign

  • 大尺寸: 3 列側欄

  • 較小尺寸: 2 列表側欄 (中間一列降低到左邊的列)

  • 更小尺寸: 1 列側欄 (右列上移到標誌下方)

  • 最小尺寸: 沒有側欄 (LOGO及右列上移,其餘側邊欄列移到底部)

screen capture

Colly

頁面的佈局會根據瀏覽器的尺寸在1列,2列和4列之間切換。

screen capture

A List Apart

  • 大尺寸: 導航在頂部,圖片只有一行。

  • 中等尺寸: 導航在左邊,圖片變成3列。

  • 小尺寸: 導航在頂部,LOGO沒有了背景圖片,圖片變成3列。

screen capture

Tee Gallery

這個和前面的 Colly 很像,不過這個案例中的圖片也會隨着佈局的變化而變化。技巧是使用百分比設置元素的寬度。

screen capture

總結

  請記住:爲移動設備優化了樣式表並不意味着你的網站就適合在移動設備顯示了。要作到真正的移動設備優化,要削減圖像大小、標籤數量和加載的資源尺寸等等。CSS3 Media Queries 是用於設計的呈現,而不是優化。

相關文章
相關標籤/搜索