溫馨提示×

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

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

如何解決html5在移動(dòng)端的屏幕適應(yīng)問題

發(fā)布時(shí)間:2021-09-30 14:36:23 來(lái)源:億速云 閱讀:196 作者:iii 欄目:web開發(fā)

這篇文章主要講解了“如何解決html5在移動(dòng)端的屏幕適應(yīng)問題”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“如何解決html5在移動(dòng)端的屏幕適應(yīng)問題”吧!

Html5 曾經(jīng)是最最炙手可熱的技術(shù),移動(dòng)端也因?yàn)閔tml5技術(shù)的加入變得更加變通一些,人人都喜歡“Write once,run more”,但在今年扎克伯格承認(rèn)在html5上的失策以來(lái),我們也應(yīng)該清醒的認(rèn)識(shí)到html5作為一種新興技術(shù),還有許多不完善的地方,比如html5 的效率問題,這足以讓眾多程序員們無(wú)力吐槽,消費(fèi)者們也會(huì)無(wú)法忍受。但不可否認(rèn)的是html5給我們帶來(lái)給好的web技術(shù),它是未來(lái)發(fā)展的趨勢(shì),并且不是 終點(diǎn),我們能夠做的就是更加努力的完善它,寫出更好,更有效率的代碼。

好了,說了這么多廢話,現(xiàn)在開始進(jìn)入主題,android的適配問題是最讓android程序員頭疼的問題,大家為此也是八仙過海,各顯神通啊,但在 html5這里我們可以更好的解決這項(xiàng)問題。手機(jī)瀏覽器是把頁(yè)面放在一個(gè)虛擬的“窗口”(viewport)中,通常這個(gè)虛擬的“窗口” (viewport)比屏幕寬,這樣就不用把每個(gè)網(wǎng)頁(yè)擠到很小的窗口中(這樣會(huì)破壞沒有針對(duì)手機(jī)瀏覽器優(yōu)化的網(wǎng)頁(yè)的布局),用戶可以通過平移和縮放來(lái)看網(wǎng) 頁(yè)的不同部分。常用的viewport布局為:<meta name="viewport" content="width=device-width,user-scalable=no" />

具體的含義是:
width:控制 viewport 的大小,可以指定的一個(gè)值,如果 600,或者特殊的值,如 device-width 為設(shè)備的寬度(單位為縮放為 100% 時(shí)的 CSS 的像素),默認(rèn)的虛擬窗口為980像素寬(目前大部分網(wǎng)站的標(biāo)準(zhǔn)寬度),然后按一定的比例(3:1或2:1)進(jìn)行縮放。

height:和 width 相對(duì)應(yīng),指定高度。

target- densitydpi:一個(gè)屏幕像素密度是由屏幕分辨率決定的,通常定義為每英寸點(diǎn)的數(shù)量(dpi)。Android支持三種屏幕像素密度:低像素密度, 中像素密度,高像素密度。一個(gè)低像素密度的屏幕每英寸上的像素點(diǎn)更少,而一個(gè)高像素密度的屏幕每英寸上的像素點(diǎn)更多。Android Browser和WebView默認(rèn)屏幕為中像素密度。

下面是 target-densitydpi 屬性的 取值范圍

device-dpi &ndash;使用設(shè)備原本的 dpi 作為目標(biāo) dp。 不會(huì)發(fā)生默認(rèn)縮放。

high-dpi &ndash; 使用hdpi 作為目標(biāo) dpi。 中等像素密度和低像素密度設(shè)備相應(yīng)縮小。

medium-dpi &ndash; 使用mdpi作為目標(biāo) dpi。 高像素密度設(shè)備相應(yīng)放大, 像素密度設(shè)備相應(yīng)縮小。 這是默認(rèn)的target density.

low-dpi -使用mdpi作為目標(biāo) dpi。中等像素密度和高像素密度設(shè)備相應(yīng)放大。

<value> &ndash; 指定一個(gè)具體的dpi 值作為target dpi. 這個(gè)值的范圍必須在70&ndash;400之間。

<meta name="viewport" content="target-densitydpi=device-dpi" />
<meta name="viewport" content="target-densitydpi=high-dpi" />
<meta name="viewport" content="target-densitydpi=medium-dpi" />
<meta name="viewport" content="target-densitydpi=low-dpi" />
<meta name="viewport" content="target-densitydpi=200" />

為了防止Android Browser和WebView 根據(jù)不同屏幕的像素密度對(duì)你的頁(yè)面進(jìn)行縮放,你可以將viewport的target-densitydpi 設(shè)置為 device-dpi。當(dāng)你這么做了,頁(yè)面將不會(huì)縮放。相反,頁(yè)面會(huì)根據(jù)當(dāng)前屏幕的像素密度進(jìn)行展示。在這種情形下,你還需要將viewport的 width定義為與設(shè)備的width匹配,這樣你的頁(yè)面就可以和屏幕相適應(yīng)。
initial-scale:初始縮放比例,也即是當(dāng)頁(yè)面第一次 load 的時(shí)候縮放比例。
maximum-scale:允許用戶縮放到的最大比例,范圍從0到10.0。
minimum-scale:允許用戶縮放到的最小比例,范圍從0到10.0。
user-scalable:用戶是否可以手動(dòng)縮放,值可以是:①yes、 true允許用戶縮放;②no、false不允許用戶縮放,如果你將其設(shè)置為no,那么minimum-scale 和 maximum-scale都將被忽略,因?yàn)楦静豢赡芸s放。

所有的縮放值都必須在0.01&ndash;10的范圍之內(nèi)。

將這些屬性設(shè)置之后放入html5 的meta屬性中,即可對(duì)手機(jī)屏幕進(jìn)行適應(yīng),例:

代碼如下:

[mw_shl_code=xhtml,true]<meta name="viewport"
content="
height = [pixel_value | device-height] ,
width = [pixel_value | device-width ] ,
initial-scale = float_value ,
minimum-scale = float_value ,
maximum-scale = float_value ,
user-scalable = [yes | no] ,
target-densitydpi = [dpi_value | device-dpi | high-dpi | medium-dpi | low-dpi]
"
/>[/mw_shl_code]


下面是兩個(gè)實(shí)際使用的例子:

(設(shè)置屏幕寬度為設(shè)備寬度,禁止用戶手動(dòng)調(diào)整縮放)

代碼如下:

<meta name="viewport" content="width=device-width,user-scalable=no" />


(設(shè)置屏幕密度為高頻,中頻,低頻自動(dòng)縮放,禁止用戶手動(dòng)調(diào)整縮放)

代碼如下:

<meta name="viewport" content="width=device-width,target-densitydpi=high-dpi,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

感謝各位的閱讀,以上就是“如何解決html5在移動(dòng)端的屏幕適應(yīng)問題”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)如何解決html5在移動(dòng)端的屏幕適應(yīng)問題這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

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

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

AI