使用CSS媒體查詢創(chuàng)建響應式布局教程

現(xiàn)如今在Web前端領域,BootStrap是一個最流行的UI庫,其12列的柵欄系統(tǒng)為響應式布局提供了一種對程序員來說很好操作的模式。
追究Bootstrap的內(nèi)在原理,其實就是通過媒體查詢來完成對不同屏幕大小、不同分辨率、不同設備導致的不同場景下的Css樣式的選擇。今天我就對媒體查詢這一工具或者說方法來進行一個總結。
從 CSS 版本 2 開始,就可以通過媒體類型在 CSS 中獲得媒體支持。
1、如何使用媒體查詢:
- <link rel="stylesheet" type="text/css" href="site.css" media="screen" />
- <link rel="stylesheet" type="text/css" href="print.css" media="print" />
以上的兩句引入Css樣式表的語句,比一般的Css引入語句就多了一個關鍵字“media”,media 屬性定義了應該用于指定每種媒體類型的樣式表:
•screen 適用于計算機彩色屏幕。
•print 適用于打印預覽模式下查看的內(nèi)容或者打印機打印的內(nèi)容。
*這里是將media屬性放在了Css引入的語句中,所以在以下查詢語句中就可以省略screen或者print。
2、一般的媒體查詢語法:
- @media “media type” condition {/*CSS樣式表*/}其中“@media”也可以有另一中寫法,“media=”;
“media type”是應用媒體查詢的媒體類型,例如“all”,意思是所有媒體都使用接下來的css樣式表;或者“(min-width:800px)”,意思是屏幕最小寬度為800px時使用接下來的CSS樣式表,如果屏幕寬度大于800px則不會應用此CSS。
也就是說,媒體查詢包含一個媒體類型,后跟一個或多個檢查特定條件(如最小的屏幕寬度)的表達式。通過評估條件的真假,如果改條件為true則應用Css,否則不應用。
由此我們可以擴展出很多的媒體查詢類型。
3、在Css的媒體查詢中,可以使用三種邏輯運算,也即“and”,“or”,“not”,意思我當然不用解釋。舉幾個例子一眼就明白了:
- /*在將某個媒體查詢應用于所有媒體類型時,會省略 all*/
- @media (min-width:800px) { ... }
- /*寬度在800~1200px之間時激活*/
- @media (min-width:800px) and (max-width:1200px) { ... }
- /*可以使用多個and運算符,這里添加了第三個判斷方向為縱向*/
- @media (min-width:800px) and (max-width:1200px) and (orientation:portrait) { ... }
- /*寬度為800px或者方向為縱向時激活*/
- @media (min-width:800px) or (orientation:portrait) { ... }
- /*寬度不是800px時激活*/
- @media (not min-width:800px) { ... }
4、寬度和高度非常相似,所以二者的條件可以在一起使用:
@media (min-width:800px) and (min-height:400px) { ... }orientation查詢:
@media (orientation:portrait) { ... }不帶max-或min-的查詢,當然這種查詢的的可用性不是很大:
@media (width:800px) and (height:400px) { ... }
5、常見媒體查詢
因為 Apple 首次向市場推出了用戶智能手機和平板電腦產(chǎn)品,所以下列大多數(shù)媒體查詢都是基于這些型號的設備。
如果目標是橫向模式智能手機,則使用: @media (min-width: 321px) { ... }
如果目標是縱向模式智能手機,則使用: @media (max-width: 320px) { ... }
如果目標是橫向模式 Apple iPad,則使用: @media (orientation: landscape) { ... }
如果目標是縱向模式 iPad,則使用: @media (orientation: portrait) { ... }
您可能已經(jīng)注意到了,iPad 上使用的是 orientation 媒體特性,而 width 用于 Apple iPhone 之上。主要是因為 iPhone 不支持orientation 媒體特性。您必須使用 width 模擬這些方向斷點。
6、嵌套的媒體查詢:
- #header {
- width: 400px;
- @media (min-width: 800px) {
- width: 100%;
- }
- }
以上代碼編譯后為以下的結果:
- #header {
- width: 400px;
- }
- @media (min-width: 800px) {
- #header {
- width: 100%;
- }
- }
以上以寬度為例來對媒體查詢進行一個小結, 管中窺豹,可見一斑。width和height只是兩種可以用媒體查詢來進行控制的屬性,還有顏色(color)、顏色索引(integer)、寬高比(ratio)等屬性都是也可以使用的。
以上這篇使用CSS媒體查詢創(chuàng)建響應式布局教程就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
原文地址:http://www.cnblogs.com/mcbye/archive/2016/03/29/CssMediaQueries.html
相關文章
- 響應式網(wǎng)站設計的理念就是頁面的設計與開發(fā)應當根據(jù)用戶行為以及設備環(huán)境進行相應的響應和調(diào)整,這篇文章就帶大家簡單了解一下響應式設計,感興趣的小伙伴們可以參考一下2016-07-15
- 下面小編就為大家?guī)硪黄憫讲季挚偨Y(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-10
- 下面小編就為大家?guī)硪黄猚ss3media響應式布局實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-08
像素密度與CSS3的viewport在移動端Web響應式布局中的運用
viewport是CSS3中調(diào)整縮放的利器,特別適用于移動端Web界面的操作與布局,接下來我們就來詳解像素密度與CSS3的viewport在移動端web響應式布局中的運用.2016-05-27- CSS3的rem屬性除了設置字體大小,還經(jīng)常被用來做頁面布局中的很多尺寸控制,這里我們就來看一下使用CSS3的rem屬性制作響應式頁面布局的要點解析2016-05-24
- 這篇文章主要介紹了自適應屏幕的CSS響應式布局設計技巧總結,響應式設計是現(xiàn)在移動端頁面開發(fā)的熱門話題,需要的朋友可以參考下2016-04-22
- 下面小編就為大家?guī)硪黄憫讲季值暮唵伟咐?。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-07-18