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

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