HTML網(wǎng)頁(yè)的開發(fā)中,需要對(duì)大小不一的屏幕兼容,使圖片在不同的設(shè)備中可以展示預(yù)期的效果。自適應(yīng)屏幕的寬度,利用css中background屬性可以實(shí)現(xiàn)
創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供費(fèi)縣網(wǎng)站建設(shè)、費(fèi)縣做網(wǎng)站、費(fèi)縣網(wǎng)站設(shè)計(jì)、費(fèi)縣網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、費(fèi)縣企業(yè)網(wǎng)站模板建站服務(wù),十余年費(fèi)縣做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
工具/材料
瀏覽器,文本編輯器
新建一個(gè)HTML文件,代碼如下圖
打開HTML文件所在的文件夾,雙擊文件,跳轉(zhuǎn)到瀏覽器
改變?yōu)g覽器大小,發(fā)現(xiàn)圖片沒有變化,顯示不全
在所在文件夾下,新建一個(gè)樣式文件,命名為 auto.css,代碼如下
在HTML文件中加上對(duì)樣式文件的引用,返回文件夾,雙擊HTML文件,發(fā)現(xiàn)瀏覽器的變化會(huì)引著圖片一起變化,自適應(yīng)屏幕的大小
[img]第1部分:
基本的屏幕適配知識(shí):
1、屏幕大小
在Android系統(tǒng)中,把屏幕大小分為以下4種:small、normal(標(biāo)準(zhǔn))、large、
extra large(引申為更大的屏幕)。
2、屏幕密度
在Android系統(tǒng)中,屏幕密度指的是在指定的屏幕大小區(qū)域內(nèi),有多少個(gè)像素?;締挝粸閐pi(點(diǎn)/每英寸)。
基本包括4種密度:low、dedium(中等)、high、extra high(引申為更高的密度)。
常見的屏幕密度如下:QVGA(240x320)、HVGA(320x480)、WVGA800(480x800)
第2部分:
Android官方的解決方案:
從Android1.6版系統(tǒng)起,res文件夾下面的drawable文件夾由原來的1個(gè)變?yōu)榱?個(gè)。
如下圖所示:
這三個(gè)文件夾分別用來存放高密度、中等密度和低密度的圖片。
具體的適配方法,用一個(gè)案例來說明。
例如:
創(chuàng)建一個(gè)工程:test_demo_01
在3個(gè)drawable文件夾下面分別放置高密度、中等密度和低密度的圖片。
然后在AndroidMainfest.xml中添加如下內(nèi)容:
此外需要注意的是:
1、圖片布局的基本單位應(yīng)該是dip。
2、不要使用絕對(duì)布局(AbsoluteLayout)。
以下是3種屏幕的自適應(yīng)結(jié)果
目前大部分網(wǎng)站已經(jīng)逐漸嘗試使用HTML5進(jìn)行重構(gòu),但基本大多停留使用新的HTML5語(yǔ)義化標(biāo)簽上。對(duì)于低版本IE瀏覽器,兼容新的HTML5標(biāo)簽很容易。而HTML5的新屬性用到的不多,通常都是新屬性+js兼容法。對(duì)于特殊的功能性新標(biāo)簽,國(guó)內(nèi)幾乎沒有大型網(wǎng)站使用,如video、audio、canvas等。在國(guó)內(nèi),要是等現(xiàn)代瀏覽器普及了再開始用HTML5那至少要5年以上,IE6應(yīng)該還有1年左右就差不多滅絕了,IE8短時(shí)間內(nèi)不會(huì)滅絕。建議可以考慮HTML5+兼容性輔助,讓現(xiàn)代瀏覽器顯示炫酷效果,老瀏覽器保證業(yè)務(wù)正常即可,不一定和HTML5版本樣式完全一樣,只要最基本功能有就行了。移動(dòng)端大多是webkit內(nèi)核,可放心使用HTML5。
感應(yīng)式設(shè)計(jì),簡(jiǎn)單來說,就是當(dāng)用不同設(shè)備訪問時(shí),能夠根據(jù)設(shè)備的寬度和高度對(duì)設(shè)備進(jìn)行動(dòng)態(tài)的適配;例如,用iPhone4、iPhone5、iPhone6、PC、iPad訪問同一個(gè)網(wǎng)址,正好能打開一個(gè)適合該設(shè)備的一個(gè)HTML5的頁(yè)面,不留白邊,不變形。這就算是感應(yīng)式設(shè)計(jì)了,也就是本文說的“屏幕自適應(yīng)”。由于設(shè)備分辨率不同,長(zhǎng)寬比不同,如果設(shè)計(jì)一次,就要適應(yīng)所有的屏幕(包括PC),這個(gè)幾乎是不可能的。主要有以下三種情況:
1. 如果等比例縮放,內(nèi)部位置關(guān)系會(huì)發(fā)生變化,會(huì)嚴(yán)重影響用戶體驗(yàn);同時(shí),設(shè)備屏幕之間不存在等比例的關(guān)系,所以同樣會(huì)有部分屏幕內(nèi)容無法顯示或留白邊;
2. 如果把小屏幕適配好,放在更高的大屏幕里面,那兩邊就會(huì)有白邊;或者把圖扯大,這樣就會(huì)變形;
3. 如果把大屏幕適配好,放在小屏幕中,就有些部分會(huì)丟失。
除非借助未來的AI(人工智能)的發(fā)展,否則很難自動(dòng)解決這個(gè)問題。以前的網(wǎng)站設(shè)計(jì),其實(shí)也是分開幾種版面進(jìn)行設(shè)計(jì)的,例如,根據(jù)寬度為多少時(shí)候采用一種設(shè)計(jì)板式。
所以,我就納悶了,現(xiàn)在HTML5工具到底是如何實(shí)現(xiàn)感應(yīng)式的呢?
經(jīng)研究發(fā)現(xiàn),一共有兩種方式:
第一種,偽“感應(yīng)式”設(shè)計(jì):(HTML5模板類方案)
上圖是HTML5模板類測(cè)試結(jié)果,依次是iPhone4、iPhone5、iPhone6
可以看出iPhone4時(shí),變形最嚴(yán)重,iPhone5效果最好,iPhone6是等比例縮放后,兩側(cè)邊緣,有些像素顯示不了。
因此,這種“感應(yīng)式”,稱之為偽“感應(yīng)式”HTML5工具,在設(shè)計(jì)時(shí)不會(huì)留白邊,但是要求盡量把內(nèi)容都往中間放,需要設(shè)計(jì)一張名為“背景”的底圖,用于拉伸時(shí)用。
存在的問題:
1. 內(nèi)容都要居中放置,別放上下個(gè)邊;例如,把按鈕放到最下面,iPhone打開后,就會(huì)看不到按鈕;
2. 不可能適應(yīng)PC、Pad等設(shè)備。
結(jié)論:
簡(jiǎn)單、應(yīng)急時(shí)使用。
第二種,多版面感應(yīng)式設(shè)計(jì):(VXPLO互動(dòng)大師方案)
用于互動(dòng)大師,通過添加 Device控件的方式,實(shí)際上還是需要設(shè)計(jì)幾個(gè)版面(設(shè)計(jì)上多數(shù)可以Ctrl-C +Ctrl-V,所以設(shè)計(jì)上并不算麻煩),因此本質(zhì)上是真正的“感應(yīng)式”設(shè)計(jì),只要稍微勤快點(diǎn)兒,是可以一個(gè)URL地址,完美適應(yīng)多個(gè)屏幕的,包括PC和Pad。用于互動(dòng)大師,通過添加 Device控件的方式,實(shí)際上還是需要設(shè)計(jì)幾個(gè)版面(設(shè)計(jì)上多數(shù)可以Ctrl-C +Ctrl-V,所以設(shè)計(jì)上并不算麻煩),因此本質(zhì)上是真正的“感應(yīng)式”設(shè)計(jì),只要稍微勤快點(diǎn)兒,是可以一個(gè)URL地址,完美適應(yīng)多個(gè)屏幕的,包括PC和Pad。
結(jié)論:要做真正的“感應(yīng)式”設(shè)計(jì),自動(dòng)適應(yīng)多個(gè)屏幕,又不想寫代碼,就只能用互動(dòng)大師去做。設(shè)計(jì)中不會(huì)出現(xiàn)任何變形或丟失情況,不過需要多設(shè)計(jì)幾個(gè)版面,一般如果是手機(jī)端的輕應(yīng)用設(shè)計(jì)iPhone 4 5 6的分辨率就可以了。
有兩種
1.通過設(shè)置viewport參數(shù)
2.使用css3中的縮放
兩種方法都需要獲取當(dāng)前屏幕大小然后根據(jù)網(wǎng)頁(yè)寬度來計(jì)算縮放比例,然后進(jìn)行縮放。但是因?yàn)槟壳笆謾C(jī)種類繁多,瀏覽器種類也很多,所以每種方法各自都有不少的問題。
/spanmeta name=“viewport” content=“width=device-width, initial-scale=1.0, minimum-scale=0.5, maximum-scale=2.0, user-scalable=yes” /
在網(wǎng)頁(yè)的中增加以上這句話,可以讓網(wǎng)頁(yè)的寬度自動(dòng)適應(yīng)手機(jī)屏幕的寬度。
其中:
width=device-width :表示寬度是設(shè)備屏幕的寬度
initial-scale=1.0:表示初始的縮放比例
minimum-scale=0.5:表示最小的縮放比例
maximum-scale=2.0:表示最大的縮放比例
user-scalable=yes:表示用戶是否可以調(diào)整縮放比例