其達(dá)到的效果都一致的,自適應(yīng)屏幕大小來改變頁面布局適應(yīng)當(dāng)前屏幕。
10年積累的網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站經(jīng)驗(yàn),可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有灤南免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
類似爸爸,老爸,爹地,叫法不一樣而已。
一、自適應(yīng)網(wǎng)頁設(shè)計(jì)
自從2010年,Ethan Marcotte提出了 “自適應(yīng)網(wǎng)頁設(shè)計(jì)”(Responsive Web Design)這個(gè)名詞,指可以自動識別屏幕寬度、并做出相應(yīng)調(diào)整的網(wǎng)頁設(shè)計(jì)。
他制作了一個(gè) 范例,里面是《福爾摩斯歷險(xiǎn)記》六個(gè)主人公的頭像。如果屏幕寬度大于1300像素,則6張圖片并排在一行。
如果屏幕寬度在600像素到1300像素之間,則6張圖片分成兩行。
如果屏幕寬度在400像素到600像素之間,則導(dǎo)航欄移到網(wǎng)頁頭部。
如果屏幕寬度在400像素以下,則6張圖片分成三行。
mediaqueri.es上面有更多這樣的例子。
這里還有一個(gè) 測試小工具,可以在一張網(wǎng)頁上,同時(shí)顯示不同分辨率屏幕的測試效果,我推薦安裝。
二、需要允許網(wǎng)頁寬度自動調(diào)整
“自適應(yīng)網(wǎng)頁設(shè)計(jì)”到底是怎么做到的,其實(shí)并不難。
首先,在網(wǎng)頁代碼的頭部,加入一行 viewport元標(biāo)簽。
viewport是網(wǎng)頁默認(rèn)的寬度和高度,上面這行代碼的意思是,網(wǎng)頁寬度默認(rèn)等于屏幕寬度(width=device-width),原始縮放比例(initial-scale=1)為1.0,即網(wǎng)頁初始大小占屏幕面積的100%。
所有主流瀏覽器都支持這個(gè)設(shè)置,包括IE9。對于那些老式瀏覽器(主要是IE6、7、8),需要使用 css3-mediaqueries.js。
三、在進(jìn)行設(shè)計(jì)的時(shí)候不能使用絕對寬度
由于網(wǎng)頁會根據(jù)屏幕寬度調(diào)整布局,所以不能使用絕對寬度的布局,也不能使用具有絕對寬度的元素。這一條非常重要。
具體說,CSS代碼不能指定像素寬度:
width:xxx px;
只能指定百分比寬度:
width: xx%;
或者
width:auto;
四、相對大小的字體
字體也不能使用絕對大?。╬x),而只能使用相對大?。╡m)。
body {
font: normal 100% Helvetica, Arial, sans-serif;
}
上面的代碼指定,字體大小是頁面默認(rèn)大小的100%,即16像素。
h1 {
font-size: 1.5em;
}
然后,h1的大小是默認(rèn)大小的1.5倍,即24像素(24/16=1.5)。
small {
font-size: 0.875em;
}
small元素的大小是默認(rèn)大小的0.875倍,即14像素(14/16=0.875)。
五、流動布局(fluid grid)或瀑布流
“流動布局”的含義是,各個(gè)區(qū)塊的位置都是浮動的,不是固定不變的。
.main {
float: right;
width: 70%;
}
.leftBar {
float: left;
width: 25%;
}
float的好處是,如果寬度太小,放不下兩個(gè)元素,后面的元素會自動滾動到前面元素的下方,不會在水平方向overflow(溢出),避免了水平滾動條的出現(xiàn)。
另外,絕對定位(position: absolute)的使用,也要非常小心。
六、選擇性加載CSS
“自適應(yīng)網(wǎng)頁設(shè)計(jì)”的核心,就是CSS3引入的 Media Query模塊。
它的意思就是,自動探測屏幕寬度,然后加載相應(yīng)的CSS文件。
上面的代碼意思是,如果屏幕寬度小于400像素(max-device-width: 400px),就加載tinyScreen.css文件。
如果屏幕寬度在400像素到600像素之間,則加載smallScreen.css文件。
除了用html標(biāo)簽加載CSS文件,還可以在現(xiàn)有CSS文件中加載。
@import url(“tinyScreen.css”) screen and (max-device-width: 400px);
七、CSS的@media規(guī)則
同一個(gè)CSS文件中,也可以根據(jù)不同的屏幕分辨率,選擇應(yīng)用不同的CSS規(guī)則。
@media screen and (max-device-width: 400px) {
.column {
float: none;
width:auto;
}
#sidebar {
display:none;
}
}
上面的代碼意思是,如果屏幕寬度小于400像素,則column塊取消浮動(float:none)、寬度自動調(diào)節(jié)(width:auto),sidebar塊不顯示(display:none)。
八、圖片的自適應(yīng)(fluid image)
除了布局和文本,”自適應(yīng)網(wǎng)頁設(shè)計(jì)”還必須實(shí)現(xiàn)圖片的 自動縮放。
這只要一行CSS代碼:
img { max-width: 100%;}
這行代碼對于大多數(shù)嵌入網(wǎng)頁的視頻也有效,所以可以寫成:
img, object { max-width: 100%;}
老版本的IE不支持max-width,所以只好寫成:
img { width: 100%; }
此外,windows平臺縮放圖片時(shí),可能出現(xiàn)圖像失真現(xiàn)象。這時(shí),可以嘗試使用IE的 專有命令:
img { -ms-interpolation-mode: bicubic; }
或者,Ethan Marcotte的 imgSizer.js。
addLoadEvent(function() {
var imgs = document.getElementById(“content”).getElementsByTagName(“img”);
imgSizer.collate(imgs);
});
不過,有條件的話,最好還是根據(jù)不同大小的屏幕,加載不同分辨率的圖片。有 很多方法可以做到這一條,服務(wù)器端和客戶端都可以實(shí)現(xiàn)。
只要遵循這8條設(shè)計(jì)準(zhǔn)則,我相信你們可以很快的設(shè)計(jì)出自適應(yīng)的網(wǎng)頁出來。
感應(yīng)式設(shè)計(jì),簡單來說,就是當(dāng)用不同設(shè)備訪問時(shí),能夠根據(jù)設(shè)備的寬度和高度對設(shè)備進(jìn)行動態(tài)的適配;例如,用iPhone4、iPhone5、iPhone6、PC、iPad訪問同一個(gè)網(wǎng)址,正好能打開一個(gè)適合該設(shè)備的一個(gè)HTML5的頁面,不留白邊,不變形。這就算是感應(yīng)式設(shè)計(jì)了,也就是本文說的“屏幕自適應(yīng)”。由于設(shè)備分辨率不同,長寬比不同,如果設(shè)計(jì)一次,就要適應(yīng)所有的屏幕(包括PC),這個(gè)幾乎是不可能的。主要有以下三種情況:
1. 如果等比例縮放,內(nèi)部位置關(guān)系會發(fā)生變化,會嚴(yán)重影響用戶體驗(yàn);同時(shí),設(shè)備屏幕之間不存在等比例的關(guān)系,所以同樣會有部分屏幕內(nèi)容無法顯示或留白邊;
2. 如果把小屏幕適配好,放在更高的大屏幕里面,那兩邊就會有白邊;或者把圖扯大,這樣就會變形;
3. 如果把大屏幕適配好,放在小屏幕中,就有些部分會丟失。
除非借助未來的AI(人工智能)的發(fā)展,否則很難自動解決這個(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模板類測試結(jié)果,依次是iPhone4、iPhone5、iPhone6
可以看出iPhone4時(shí),變形最嚴(yán)重,iPhone5效果最好,iPhone6是等比例縮放后,兩側(cè)邊緣,有些像素顯示不了。
因此,這種“感應(yīng)式”,稱之為偽“感應(yīng)式”HTML5工具,在設(shè)計(jì)時(shí)不會留白邊,但是要求盡量把內(nèi)容都往中間放,需要設(shè)計(jì)一張名為“背景”的底圖,用于拉伸時(shí)用。
存在的問題:
1. 內(nèi)容都要居中放置,別放上下個(gè)邊;例如,把按鈕放到最下面,iPhone打開后,就會看不到按鈕;
2. 不可能適應(yīng)PC、Pad等設(shè)備。
結(jié)論:
簡單、應(yīng)急時(shí)使用。
第二種,多版面感應(yīng)式設(shè)計(jì):(VXPLO互動大師方案)
用于互動大師,通過添加 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。用于互動大師,通過添加 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ì),自動適應(yīng)多個(gè)屏幕,又不想寫代碼,就只能用互動大師去做。設(shè)計(jì)中不會出現(xiàn)任何變形或丟失情況,不過需要多設(shè)計(jì)幾個(gè)版面,一般如果是手機(jī)端的輕應(yīng)用設(shè)計(jì)iPhone 4 5 6的分辨率就可以了。
html5企業(yè)網(wǎng)站和自適應(yīng)網(wǎng)站并不是矛盾,只能二者取一的。HTML5是互聯(lián)網(wǎng)的下一代標(biāo)準(zhǔn),是構(gòu)建以及呈現(xiàn)互聯(lián)網(wǎng)內(nèi)容的一種語言方式,廣泛應(yīng)用于互聯(lián)網(wǎng)應(yīng)用的開發(fā)。而自適應(yīng)網(wǎng)站模板是讓同一張網(wǎng)頁自動適應(yīng)不同大小的屏幕,根據(jù)屏幕寬度,自動調(diào)整網(wǎng)頁內(nèi)容大小。
兩者沒有說哪個(gè)好,一個(gè)是編程技術(shù),一個(gè)是設(shè)計(jì)樣式。
自適應(yīng)網(wǎng)站模板就是能實(shí)現(xiàn)電腦、平板電腦、手機(jī)的自適應(yīng),不同像素終端獲得同樣的呈現(xiàn)效果,隨著瀏覽方式的改變,網(wǎng)頁實(shí)現(xiàn)多終端自適應(yīng)。
本身是現(xiàn)成做好的自適應(yīng)網(wǎng)站,用戶下載自適應(yīng)網(wǎng)站模板后,只需把原本網(wǎng)站的素材改成自己的東西,解決了如何才能在不同大小的設(shè)備上呈現(xiàn)同樣的網(wǎng)頁。
使用HTML5的localStorage即可。
例如:
當(dāng)文本框值發(fā)生變化時(shí),存儲數(shù)據(jù)
localStorage.mydata=$('input').val()
下次打開時(shí),讀取
$('input').val(localStorage.mydata||'')