//語法:@media mediatype and | not | only (media feature) { css-code; }//也可以針對不同的媒體使用不同的stylesheets: <link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">
一、首先是<meta>標簽
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
這段代碼的幾個參數解釋:
二、<head>標簽中引入(CSS2 media)
其實并不是只有CSS3才支持Media的用法,早在CSS2開始就已經支持Media,具體用法,就是在HTML頁面的head標簽中插入如下代碼:
例如我們想知道現在的移動設備是不是縱向放置的顯示屏,可以這樣寫:
<link rel="stylesheet" type="text/css" media="screen and (orientation:portrait)" ;href="style.css">
頁面寬度小于960的執行指定的樣式文件:
<link rel="stylesheet" type="text/css" media="screen and (max-width:960px)" href="style.css">
既然CSS2可以實現CSS的這個效果為什么不用這個方法呢,很多人應該會問,但是上面這個方法,最大的弊端是他會增加頁面http的請求次數,增加了頁面負擔,我們用CSS3把樣式都寫在一個文件里面才是最佳的方法。
下面來解釋一下遇到沖突時的機制:
<link rel="stylesheet" href="styleA.css" media="screen and (min-width: 800px)"> <link rel="stylesheet" href="styleB.css" media="screen and (min-width: 600px) and (max-width: 800px)"> <link rel="stylesheet" href="styleC.css" media="screen and (max-width: 600px)">
上面將設備分成3種,分別是寬度大于800px時,應用 styleA ,寬度在600px到800px之間時應用 styleB ,以及寬度小于600px時應用 styleC 。那假如寬度正好等于800px時該應用那個樣式?是 styleB,因為前兩條表達式都成立,按CSS默認優先級規則后者覆蓋了前者。
因此,為了避免沖突,這個例子正常情況應該這樣寫:
<link rel="stylesheet" href="styleA.css" media="screen"> <link rel="stylesheet" href="styleB.css" media="screen and (max-width: 800px)"> <link rel="stylesheet" href="styleC.css" media="screen and (max-width: 600px)">
三、回歸CSS3 @media
上面我們大概講了下CSS2的媒體查詢用法,現在我們重新回到CSS3的媒體查詢,在第一段代碼上面我用的是小于960px的尺寸的寫法,那現在我們來實現等于960px尺寸的代碼,以下代碼需要寫在style標簽或者css文件中:
@media screen and (max-device-width:960px){ body{background:red;}}
然后就是當瀏覽器尺寸大于960px時候的代碼了:
@media screen and (min-width:960px){ body{background:orange;}}
我們還可以混合使用上面的用法:
@media screen and (min-width:960px) and (max-width:1200px){ body{background:yellow;}}
上面的這段代碼的意思是當頁面寬度大于960px小于1200px的時候執行下面的CSS。
四、Media所有參數匯總
以上就是我們最常需要用到的媒體查詢器的三個特性,大于,等于,小于的寫法。媒體查詢器的全部功能肯定不止這三個功能,下面是我總結的它的一些參數用法解釋: