現在,電腦顯示器的屏幕分辨率向愈來愈大發展,而手機等移動設備終端的分辨率卻不可能大到哪裏去。愈來愈多的網站,開始讓本身的頁面自適合各類分辨率,在小分辨率下顯示基本的內容,在大分辨率下顯示所有功能,甚至是分多等級的多版本。
做爲web前端開發人員須要知道而且會用這種知識。css
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
;}
}
|
@media 屬性在CSS3裏面已經演變成一種 media queries(媒體查詢/匹配)了,在CSS3裏面,能夠用查詢語句來匹配各類類型的屏幕。
語法:@media : { sRules }
取值:css3
1
2
|
<sMedia>:指定設備名稱。
{sRules}:樣式表定義。
|
說明:
判斷媒介(對象)類型來實現不一樣的展示。此特性讓CSS能夠更精確做用於不一樣的媒介類型,同一媒介的不一樣條件(分辨率、色數等等).web
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 最小最大寬度的判斷。chrome
DEMO(推薦在Chrome或者FIREFOX下打開,打開後,按快捷鍵「CTRL」+」+」,「CTRL」+」-」來縮放頁面):express
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時 粉色*/
|
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瀏覽器