自适应/响应式网页设计
Responsive Web Design,翻譯為自適應(yīng)網(wǎng)頁設(shè)計(jì)或響應(yīng)式網(wǎng)頁設(shè)計(jì)。
今天,智能手機(jī)和平板電腦等移動(dòng)設(shè)備的普及程度令人難以置信,智能手機(jī)都白菜價(jià)了,幾百塊錢就能入手一部功能強(qiáng)勁的Android手機(jī)。人們通過這些移動(dòng)設(shè)備來瀏覽網(wǎng)頁的頻率和時(shí)間大有趕超傳統(tǒng)桌面設(shè)備的趨勢(shì),這些設(shè)備已經(jīng)成為了互聯(lián)網(wǎng)的最常見的終端。
不同尺寸和分辨率的屏幕給了網(wǎng)站開發(fā)設(shè)計(jì)者不少麻煩。很多網(wǎng)站的解決方法,是為不同的設(shè)備提供不同的網(wǎng)頁,比如專門提供一個(gè)mobile版本,或者iPhone / iPad版本。這樣做固然保證了效果,但是比較麻煩,同時(shí)要維護(hù)好幾個(gè)版本,而且如果一個(gè)網(wǎng)站有多個(gè)portal(入口),會(huì)大大增加架構(gòu)設(shè)計(jì)的復(fù)雜度。
2010年,Ethan Marcotte提出了“Responsive Web Design”這個(gè)名詞,指可以自動(dòng)識(shí)別屏幕寬度、并做出相應(yīng)調(diào)整的網(wǎng)頁設(shè)計(jì)。使網(wǎng)站的頁面布局能夠根據(jù)不同設(shè)備和分辨率進(jìn)行自動(dòng)調(diào)整。
?
自適應(yīng)網(wǎng)頁的實(shí)現(xiàn)
一、 在網(wǎng)頁代碼的頭部,加入一行viewport元標(biāo)簽
<meta name="viewport" content="width=devide-width, initial-scale=1" />viewport是網(wǎng)頁默認(rèn)的寬度和高度,上面這行代碼的含義是,網(wǎng)頁寬度默認(rèn)等于屏幕寬度(width=device-width),原始縮放比例(initial-scale=1)為1.0,即網(wǎng)頁初始大小占屏幕面積的100%。
二、不使用絕對(duì)寬度
由于網(wǎng)頁會(huì)根據(jù)屏幕寬度調(diào)整布局,所以不能使用絕對(duì)寬度的布局,也不能使用具有絕對(duì)寬度的元素。
具體說,CSS代碼不能指定像素寬度:
width:xxx px;
只能指定百分比寬度:
或者
?
三、相對(duì)大小的字體
字體不能使用絕對(duì)大小(px),只能使用相對(duì)大小(em)
例:
body {font: normal 100% Helvetica, Arial, sans-serif;}small {font-size: 0.875em;}?
字體大小是頁面默認(rèn)大小的100%,即16像素。
small元素的大小是默認(rèn)大小的0.875倍,即14像素(14/16=0.875)。
四、流動(dòng)布局
即各個(gè)區(qū)塊的位置都是浮動(dòng)的,不是固定不變的。
例:
.main {float: right;width: 70%; } .leftBar {float: left;width: 25%; }?
float的好處是,如果寬度太小,放不下兩個(gè)元素,后面的元素會(huì)自動(dòng)滾動(dòng)到前面元素的下方,不會(huì)在水平方向overflow(溢出),避免了水平滾動(dòng)條的出現(xiàn)。
另外,絕對(duì)定位(position: absolute)的使用,也要非常小心。
五、選擇加載CSS
“自適應(yīng)網(wǎng)頁設(shè)計(jì)”的核心就是CSS3 Media Query,它的意思就是,自動(dòng)探測(cè)屏幕,然后加載相應(yīng)的CSS文件。
CSS2.1定義了Media的部分,包括類型、組別和規(guī)則等。CSS并非為了顯示器而創(chuàng)造,而是應(yīng)用于各種各樣的媒體,比如常見的顯示器,越來愈多的手持設(shè)備,可能略顯過時(shí)的電視機(jī)等等。
而 Media Queries 的引入,其作用就是允許添加表達(dá)式用以確定媒體的情況,以此來應(yīng)用不同的樣式表。換句話說,其允許我們?cè)诓桓淖儍?nèi)容的情況下,改變頁面的布局以精確適應(yīng)不同的設(shè)備,以此加強(qiáng)體驗(yàn)。
例:
<link rel="stylesheet" type="text/css" media="screen and (max-device-width: 400px)" href="tinyScreen.css" />?
上面代碼的意思就是,如果屏幕寬度小于等于400像素(max-device-width:400px),就加載tinyScreen.css文件。
參考:
http://www.ruanyifeng.com/blog/2012/05/responsive_web_design.html
http://tech.hexun.com/2013-03-01/151612165.html
http://www.blueidea.com/tech/web/2010/7912.asp
本文+一個(gè)實(shí)例:http://www.boyige.tk/blog/?p=384轉(zhuǎn)載于:https://blog.51cto.com/kaixinbocai/1193426
總結(jié)
以上是生活随笔為你收集整理的自适应/响应式网页设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NYOJ_269_VF
- 下一篇: 前端工程与性能优化:静态资源版本更新与缓