廣州網(wǎng)站建設(shè)在做手機(jī)網(wǎng)站的時候,經(jīng)常會涉及到屏幕的適配問題,以前的辦法是判斷手機(jī)的分辨率來的,經(jīng)常是640px之類的判斷,但是現(xiàn)在隨著手機(jī)的分辨率越來越高,分辨率的花樣越來越多,通過像素來判斷實(shí)在是太麻煩了,所以今天的這篇文章就教給大家使用css的orientation屬性來判斷手機(jī)是豎屏還是橫屏,這樣寫兩套css就可以匹配了。
@media是css3中新定義的,功能非常強(qiáng)大,顧名思義PC是無法匹配橫豎屏的,所以orientation只對移動設(shè)備起效。
1.頭部聲明
復(fù)制代碼
代碼如下:
<meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no,maximum-scale=1.0">
加到
<head></head>
2. media匹配屏幕是橫屏還是豎屏
代碼如下:
@media all and (orientation : landscape) { </p> <p>/* 這是匹配橫屏的狀態(tài),橫屏?xí)r的css代碼 */
body {
}
}
@media all and (orientation : portrait){ </p> <p>/* 這是匹配豎屏的狀態(tài),豎屏?xí)r的css代碼 */
body {
background-color: #00ff00;
}
}
3. 應(yīng)用的地方
(1)手機(jī)WEB頁面元素內(nèi)容一般都是通過百分比定義的,以便能夠在不同分辨率設(shè)備下都能正常顯示,雖然這樣,但是移動設(shè)備的屏幕分辨率寬度和高度相差還是很大,同樣的頁面在屏幕翻轉(zhuǎn)過來時可能百分比定義的元素寬度會變得非常大,這樣就會失去頁面的美觀性,這樣,如果用orientation匹配屏幕的翻轉(zhuǎn)狀態(tài),就可以寫不同的css加以控制頁面樣式。
(2)對于有背景圖的移動WEB頁面,可以根據(jù)orientation匹配屏幕屏幕狀態(tài),設(shè)置不同的background。
(3)稍微有技術(shù)的一點(diǎn):某些有相對定位元素的WEB頁面,將某元素定位到頁面底部,當(dāng)屏幕是豎屏狀態(tài)時,可能因?yàn)轫撁婵傞L度小于屏幕高度(但是大于屏幕寬度),這時將相對定位元素定位到底部是正確的,但是當(dāng)屏幕翻轉(zhuǎn)成為橫屏?xí)r,此時因?yàn)轫撁鎯?nèi)容高度大于屏幕高度(就是未翻轉(zhuǎn)時屏幕寬度),相對定位元素會覆蓋在頁面內(nèi)容之上,導(dǎo)致頁面出現(xiàn)問題,這時可用orientation匹配屏幕狀態(tài),調(diào)整css代碼。
關(guān)于匹配屏幕橫豎屏狀態(tài)還可通過JS判斷,js中onorientationchange是window的一個事件,可以通過監(jiān)聽事件匹配屏幕橫豎屏。