溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

CSS基礎(chǔ)教程 -- 媒體查詢屏幕適配

發(fā)布時(shí)間:2020-08-11 16:16:40 來源:網(wǎng)絡(luò) 閱讀:629 作者:Angel_andy 欄目:開發(fā)技術(shù)


響應(yīng)式布局
	
Media Query 的使用方法
在上例中, 我們使用Media Queries來根據(jù)3種不同尺寸的窗口使用3種不同的樣式。通過不同的媒體類型和條件定義樣式表規(guī)則,媒體查詢讓CSS可以更精確作用于不同的媒體類型和同一媒體的不同條件。媒體查詢的大部分媒體特性都接受min和max用于表達(dá)”大于或等于”和”小與或等于”。如:width會(huì)有min-width和max-width媒體查詢可以被用在CSS中的@media和@import規(guī)則上,也可以被用在HTML和XML中。通過這個(gè)標(biāo)簽屬性,我們可以很方便的在不同的設(shè)備下實(shí)現(xiàn)豐富的界面,特別是移動(dòng)設(shè)備,將會(huì)運(yùn)用更加的廣泛。媒體查詢能夠獲取的值如下:
	設(shè)備的寬和高device-width,device-heigth顯示屏幕/觸覺設(shè)備。
	渲染窗口的寬和高width,heigth顯示屏幕/觸覺設(shè)備。
	設(shè)備的手持方向,橫向還是豎向orientation(portrait|lanscape)和打印機(jī)等。
	畫面比例aspect-ratio點(diǎn)陣打印機(jī)等。
	設(shè)備比例device-aspect-ratio-點(diǎn)陣打印機(jī)等。
	對(duì)象顏色或顏色列表color,color-index顯示屏幕。
	設(shè)備的分辨率resolution。

	語法結(jié)構(gòu)及用法

媒體查詢有兩種使用方式, 一種是在CSS樣式中內(nèi)嵌“@media”,在同一個(gè)CSS中通過不同窗口編寫不同的樣式去選擇。 另一種是使用外部樣式表的引用, 在@import和link中使用“@media”,根據(jù)不同的窗口大小選擇對(duì)應(yīng)的樣式文件。這兩種方式的使用方法是一樣的。Media Queries的使用方法如下所示:

@media 設(shè)備類型 only (選取條件)  not (選取條件)  and  (設(shè)備特性),設(shè)備二 { 樣式代碼 }

	在CSS3中的Media Queries模塊中支持對(duì)外部樣式表的引用, 使用方法類型如下代碼:

@import url(color.css) screen and (min-width: 1000px);                /*使用@import導(dǎo)入css文件*/
或:
<link rel="stylesheet" type="text/css" media="only screen and (max-width: 480px),only screen and (max-device-width: 480px)" href="link.css" rel="external nofollow" />   /*使用link導(dǎo)入外部css文件*/
簡(jiǎn)寫:
<link rel="stylesheet" type="text/css" media="screen and (max-width: 480px)  href="link.css" />

	上面使用中only可省略,限定于計(jì)算機(jī)顯示器,第一個(gè)條件max-width是指渲染界面最大寬度,第二個(gè)條件max-device-width是指設(shè)備最大寬度。在樣式表中內(nèi)嵌@media的代碼示例如下所示:

@media screen (min-device-width:1024px) and (max-width:989px), screen and (max-device-width:480px), (max-device-width:480px) and (orientation:landscape), (min-device-width:480px) and (max-device-width:1024px) and (orientation:portrait) { 樣式代碼 }
簡(jiǎn)寫:
@media screen and (max-width:640px)  { 樣式代碼 }
在上面的示例代碼中,設(shè)置了電腦顯示器分辨率(寬度)大于或等于1024px(并且最大可見寬度為989px);屏寬在480px及其以下手持設(shè)備;屏寬在480px以及橫向(即480尺寸平行于地面)放置的手持設(shè)備;屏寬大于或等于480px小于1024px以及垂直放置設(shè)備的css樣式。從上面的例子可以看出,字符間以空格相連,選取條件包含在小括號(hào)內(nèi),樣式代碼為兼容設(shè)置的樣式表,包含在中括號(hào)里面。only(限定某種設(shè)備,可省略),and(邏輯與),not(排除某種設(shè)備)為邏輯關(guān)鍵字,多種設(shè)備用逗號(hào)分隔,這一點(diǎn)繼承了css基本語法。

	可用的設(shè)備類型

在上面的語法中,例如在CSS中嵌入“@media”的方式, 開頭必須書寫“@media”,然后指定設(shè)備類型(上例使用screen代表電腦顯示器)。CSS中定義了10種設(shè)備類型,可以指定的值與該值所代表的設(shè)備類型如表1-20所示:
表1-20 在Media Queries中可以指定的值與該值所代表的設(shè)備類型
可以指定的值	設(shè)置類型
All	所有設(shè)備
Braille	盲文,即盲人用點(diǎn)字法觸覺回饋設(shè)備
embossed	盲文打印機(jī)
handheld	手持的便攜設(shè)備
Print	文檔打印用紙或打印預(yù)覽視圖模式
projection	各種投影設(shè)備
Screen	彩色電腦顯示器屏幕
Speech	語言和音頻合成器
Tty	固定字母間距的網(wǎng)格的媒體,比如電傳打字機(jī)和終端
Tv	電視機(jī)類型的設(shè)備

	可用的設(shè)備特性參數(shù)

通過設(shè)備類型可以區(qū)分使用的設(shè)備,再通過設(shè)備特性參數(shù)來設(shè)置同一設(shè)備的不同型號(hào)。例如,通過設(shè)備類型指定電腦顯示器, 再通過設(shè)備特性參數(shù)指用多大屏幕的顯示器。設(shè)備特性的書寫方式與樣式的書寫方式很相似, 分為兩個(gè)部分,當(dāng)中由冒號(hào)分割, 冒號(hào)前書寫設(shè)備的某種特性, 冒號(hào)后書寫該特性的具體值。例如“(min-width:320px)”。CSS中的設(shè)置特性共有13種, 是一個(gè)類似于CSS屬性的集合。但與CSS屬性不同的是,大部分設(shè)備特性的指定接受min/max的前綴, 用來表示大于等于或小于等于的邏輯,以此避免使用“<”和“>”這些字符。對(duì)于這13種設(shè)備特性參數(shù)的說明如表1-21所示:
	表1-21 13種設(shè)備特性的說明
特性	可指定值	可用媒體類型	是否接受
min/max前綴	特性說明
width	帶單位的長度值
例如:640px	視覺屏幕/觸摸設(shè)備	允許	定義輸出設(shè)備中的頁面可見區(qū)域?qū)挾?單位一般為px),即瀏覽器窗口的寬度
heigth	帶單位的長度值
例如:320px	視覺屏幕/觸摸設(shè)備	允許	定義輸出設(shè)備中的頁面可見區(qū)域高度(單位一般為px),即瀏覽器窗口的高度
device-width	帶單位的長度值
例如:640px	視覺屏幕/觸摸設(shè)備	允許	定義輸出設(shè)備的屏幕可見寬度(單位一般為px),即設(shè)備屏幕分辨率的寬度值
device-heigth	帶單位的長度值
例如:320px	視覺屏幕/觸摸設(shè)備	允許	定義輸出設(shè)備的屏幕可見高度(單位一般為px) ,即設(shè)備屏幕分辨率的高度值
orientation	只能指定兩個(gè)值:
portrait 或 landscape	位圖介質(zhì)類型	不允許	瀏覽器窗口的方向是縱向還是橫向, 當(dāng)窗口商度大于等于寬度值是該特性值為portait(橫向),否則為landscape(豎向)
aspect-ratio	比例值
例如16/9	位圖介質(zhì)類型	允許	定義’width’與’height’的比率,即瀏覽器的長寬比
device-aspect-ratio	比例值
例如16/9	位圖介質(zhì)類型	允許	定義’device-width’與’device-height’的比率,即設(shè)備屏幕長寬比。如常見的顯示器比率:4/3, 16/9,16/10
color	整數(shù)值	視覺媒體	允許	設(shè)備使用多少位的顏色值,如果不是彩色設(shè)備,則值等于0
color-index	整數(shù)值	視覺媒體	允許	色彩表中的色彩數(shù)
monochrome	整數(shù)值	視覺媒體	允許	定義在一個(gè)單色框架緩沖區(qū)中每像素包含的單色原件個(gè)數(shù)。如果不是單色設(shè)備,則值等于0
resolution	分辨率值
例如300dpi	位圖介質(zhì)類型	允許	定義設(shè)備的分辨率。如:96dpi,300dpi,118dpcm
scan	只能指定兩個(gè)值:
progressive 或interlace	電視類	不允許	定義電視類設(shè)備的掃描方式, progressive逐行掃描,interlace隔行掃描
grid	只能指定兩個(gè)值:
0 或1	柵格設(shè)備	不允許	用來查詢輸出設(shè)備是否使用柵格或基于位圖。1代表是,0代表否

可以使用and關(guān)鍵字來指定當(dāng)某種設(shè)備類型的某種特性的值滿足某個(gè)條件時(shí)所使用的樣式, 例如以下語句指定了當(dāng)設(shè)備窗口寬度小于640px時(shí)所使用的樣式:

@media screen and (max-width: 640px) { 樣式代碼 }

	可以使用多條語句來將同一個(gè)樣式應(yīng)用于不同的設(shè)備類型和設(shè)備特性中, 指定方式類似如下所示:
	
@media handheld and (min-width:360px), screen and (max-width: 480px) { 樣式代碼 }

	可以在表達(dá)式中加上not關(guān)鍵字或only關(guān)鍵字, not關(guān)鍵字表示對(duì)后面的表達(dá)式執(zhí)行取反操作, 書寫方法類似如下所示:

/* 樣式代碼將被使用在除便攜設(shè)備之外的其他設(shè)備或非彩色便攜設(shè)備中 */
@media not handheld and (color) { 樣式代碼 }
/* 樣式代碼將被使用在非彩色設(shè)備中 */
@media all and (not color) { 樣式代碼 }
	使用only關(guān)鍵字的作用是讓那些不支持Media Queries但是能夠讀取Media Type的設(shè)備的瀏覽器將表達(dá)式的樣式隱藏起來。 例如:

@media only screen and (color) { 樣式代碼 }
	
	上面的語句對(duì)于支持Media Queries的設(shè)備來說,將能夠正確應(yīng)用樣式, 就像only不存在一樣。對(duì)于不支持Media Queries但能夠讀取Media Type的設(shè)備(例如IE8只支持“@media screen”)來說, 由于先讀到的是only而不是screen, 將忽略這個(gè)樣式。對(duì)于不支持Media Queries的瀏覽器(例如IE8之前的瀏覽器)來說, 無論是否有only, 都將忽略這個(gè)樣式。
在移動(dòng)設(shè)備上設(shè)置原始大小顯示

	在iPhone系列和iPod touch使用的是Safari瀏覽器, 支持前面介紹的媒體查詢表達(dá)式。 例如,使用iPhone分辨率是320px × 480px 去訪問我們前面的布局示例,卻不是我們想看到的結(jié)果, 并不是從上到下排列顯示, 而是和電腦顯示器訪問的布局是一樣的。為什么會(huì)這樣?因?yàn)樵趇Phone中使用的Safari瀏覽器在進(jìn)行頁面顯示時(shí)是將窗口的寬度作為980px進(jìn)行顯示的, 因?yàn)樘嗑W(wǎng)頁是按照800px左右標(biāo)準(zhǔn)進(jìn)行制作的, 所以Safari瀏覽器默認(rèn)按照980px的寬度來顯示,就可以正常顯示絕大多數(shù)的網(wǎng)頁了。所以即使在頁面中已經(jīng)寫好了頁面在小尺寸窗口中運(yùn)行的樣式, iPhone中的Safari瀏覽器也不會(huì)使用這個(gè)樣式, 而是選擇窗口寬度為980px時(shí)所使用的樣式。 所以我們需要在移動(dòng)設(shè)備上設(shè)置原始大小顯示和是否縮放的聲明。是在頁面的頭部<head></head>之間加上下面這樣的語句∶

<meta name="viewport" content="width=device-width; initial-scale=1.0" />
或
<meta name="viewport" content="width=600px " />
	 meta 標(biāo)簽的viewport屬性是在移動(dòng)設(shè)備上設(shè)置原始大小顯示和是否縮放的聲明。可以使用的參數(shù)設(shè)置如下∶
	width : viewport的寬度 
	height : viewport的高度 
	initial-scale : 初始的縮放比例 
	minimum-scale : 允許用戶縮放到的最小比例 
	maximum-scale : 允許用戶縮放到的最大比例 
	user-scalable : 用戶是否可以手動(dòng)縮放

如果在頁面中已經(jīng)準(zhǔn)備好了在小尺寸的窗口中使用的樣式, 并且有可能在iPhone或iPod touch中被打開時(shí),請(qǐng)不要忘記了加入<meta>標(biāo)簽并在標(biāo)簽中寫入指定的窗口寬度。其實(shí)還可以通過viewport把自己冒充成更寬的屏幕。

本文為 H5EDU 機(jī)構(gòu)官方 HTML5培訓(xùn) 教程,主要介紹:CSS基礎(chǔ)教程 —— 媒體查詢屏幕適配
 

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI