視(shì)界 . 企業(yè)互聯網 +
企業(yè)品牌一(yī)站(zhàn)式服務
新聞動态
發表時(shí)間(jiān): 2017-12-05 14:03:22
作(zuò)者: 鄭州品高企業形象策劃有限公司
浏覽:
老(lǎo)鳥教你(nǐ)如(rú)何玩(wán)轉Web響應λ γ式網站(zhàn)布局,鳥最初接觸的(de)***個(₹∏Ω₩gè)項目是(shì)類似于 Jira 的(de)基于Web ↑的(de)項目管理(lǐ)網站(zhàn),其中讓人(rén)印象深刻的(de)是(shì)這(zhè)個(★× ↕gè)網站(zhàn)的(de)用(yòng)戶是(shì)公φ€←司的(de)內(nèi)部員(yuán)工(gōng),它的•γ(de)設計(jì)都(dōu)是(shì)固定的(✘®de)寬度(960px),而這(zhè)種寬度設計♠♥∑(jì)在員(yuán)工(gōng)的(de)筆(bǐ)記♣↕Ω本上(shàng)顯示得(de)剛好(hǎo)。•÷
由于公司期望給所有(yǒu)終端用(yòn§↕g)戶最為(wèi)一(yī)緻的(de)₽÷≥用(yòng)戶體(tǐ)驗,取決于這(zhè)種設計(jì'β Ω)目的(de),我們用(yòng)一(yī)個(gè)固定的(de)寬度恰好(γ←hǎo)合适,但(dàn)是(shì)這(zhè)種寬度設計δ☆(jì)在高(gāo)分(fēn)辨率顯示器(qì),小(xiǎo)屏幕設€↑©₽備(上(shàng)網本等),甚至是(shì)移動端的(de)産₽>φ<品上(shàng)顯然是(shì)不(bù)合适的(de)。
透過這(zhè)件(jiàn)事(shì)λ≠Ω,我們網頁開(kāi)發者在進行(xíng)±λ×網頁開(kāi)發的(de)時(shí)候會(huì)有(yǒuφ✘ γ)以下(xià)兩種選擇:
針對(duì)每種設備開(kāi)發一(yī)套網站(zhàn)
開(kāi)發一(yī)個(gè)網站(z ♦hàn)适配所有(yǒu)設備
顯然前者并不(bù)是(shì)一("☆yī)個(gè)明(míng)智的(de)選擇,但(dàn)幸運的<✘ (de)是(shì),現(xiàn)在我們可(kě)≠♣™↕以采用(yòng)響應式網頁設計(jì)≈' 來(lái)實現(xiàn)所有(yǒu)網站(zhàn)的(de≤₽™)适配,做(zuò)一(yī)個(gè)網站(zhàn)同時(shí)能↓→(néng)兼容各種設備和(hé)屏幕。
什(shén)麽是(shì)響應式設計(jì)?
響應式網頁設計(jì):由 Ethan Marcotte 提出≥>≠,Ethan Marcotte在 A List Apart 發表了(₽δ≥le)一(yī)篇開(kāi)創性的(de)文(wén)章(αεzhāng),将三種已有(yǒu)的(de)開(kāi)發•"技(jì)巧(彈性網格布局,彈性圖片,媒體(tǐ)和(hé)媒體(tǐ)查詢)整合起來(lái),并命名為(wèi)響應式網頁設計(jì∑≥☆)。
真正的(de)響應式設計(jì)方法不(bù)是(shì)✘★♠↓根據視(shì)口大(dà)小(xiǎo)改變✔ε↓σ網頁布局,恰巧相(xiàng)反,它是(shì)從(cóng)整體(tǐ)上γ₽α(shàng)颠覆我們當前設計(jì)網頁的(de)✘÷∑方法。從(cóng)前我們針對(duì)電(diàn)腦(nǎπ☆£≠o)進行(xíng)固定寬度設計(jì),然後将其縮小(x¶★≈≤iǎo)并針對(duì)小(xiǎo)屏幕進行(xíng)內(nèi)容重排 πφ ;而現(xiàn)在,我們采用(yòng)的(de)方式是(shì)先 針對(duì)小(xiǎo)屏幕進行(xíng)設計(jì),進而逐步增強針對☆¶γ(duì)大(dà)屏幕的(de)設計(jì)與內(π nèi)容。
1)浏覽器(qì)
浏覽器(qì)是(shì)所有(yǒu)頁面的(de)容器(qì)₽•或者說(shuō)運行(xíng)環境,所↔有(yǒu)的(de)網頁都(dōu)是(shì)跑在浏覽←δ€₽器(qì)上(shàng)面,對(duì)浏覽器(qì) ★的(de)了(le)解是(shì)進行(xíng)網頁設計(π ₹jì)的(de)***步。
在電(diàn)腦(nǎo)上(shàngδ→¶£),我們通(tōng)常用(yòng)的(deδ÷γ★)有(yǒu)5種浏覽器(qì),而手機(jαφī)上(shàng),浏覽器(qì)則有(yǒu)30種之多δ₹(duō)。很(hěn)多(duō)的(de)浏覽器(qì)并非完全獨δ$§立的(de)浏覽器(qì),其中很(hěn)多(duō)都(dōu)隻是(sβ∑ ≥hì)基于同一(yī)浏覽器(qì)的(de)不(bù)同版本,尤♥ ↔其是(shì)安卓 WebKit。
手機(jī)上(shàng)有(yǒu)↔&Ω↔4種浏覽器(qì)類型:內(nèi)置浏覽器(qì),可(kě)下(xià)載浏覽器(qì),代理(lǐ)浏覽器(qì),以及WebView。
按照(zhào)目前的(de)市(shì)&$場(chǎng)份額,安卓和(hé) I OS 占領了(le)移動端大(dà)部分(fēn )的(de)江山(shān)。所以,我們∏Ω✔在做(zuò)響應式設計(jì)的(de)時(shí)候需要(yβεγào)保證安卓和(hé) IOS上(shà'γ↕"ng)面能(néng)跑,然後再根據實際情況和(hé)成本考>∑↑∞慮是(shì)否适配其他(tā)的(de)浏覽器(qì)。
2)視(shì)口
響應式設計(jì)的(de)另一(yī)個(gè↕÷×)重點就(jiù)是(shì)視(shì)口。視(shì)口和(hé)設÷ε備的(de)屏幕尺寸不(bù)是(shì)同© ∞Ω一(yī)個(gè)概念。視(shì)口是(shì)指浏覽器↔∞★(qì)窗(chuāng)口內(nèi)的(de)內(nèi)容區(qū)域,不(bù)包含工(gōng)具欄,标簽欄等,也(yě)就(jiù¶↕×)是(shì)網頁實際顯示的(de)區(qū)↓≈∑€域。
屏幕尺寸是(shì)設備的(de)物(wù)理(l'♠™ǐ)顯示區(qū)域。在桌面浏覽器(qì)中,隻有(yǒu)一(→♥yī)個(gè)視(shì)口也(yě)就(jiù)是(shì)浏覽器(qì)•窗(chuāng)口。在移動端,有(yǒ✘₹u)下(xià)面三個(gè)視(shì)口:
布局視(shì)口:與移動端浏覽器(qì)屏幕寬度不(bù)關聯,完♦✘全獨立的(de),僅僅限制(zhì) CSS$←的(de)布局。
視(shì)覺視(shì)口:用(yòng)戶看(kàn)到δα(dào)網站(zhàn)的(de)區(qū)× β±域,用(yòng)戶可(kě)以通(tōng)過縮放↑'(fàng)來(lái)操作(zuò)視(shì)覺視(shì)₩ 口。
理(lǐ)想視(shì)口:蘋果公司***引入的(de)一(←•&yī)種對(duì)設備來(lái)說(shuō)最理(lǐ)想的♣ ♥σ(de)布局視(shì)口尺寸,擁有(yǒu)最理(lǐ)想的(de)浏覽和(★•hé)閱讀(dú)寬度。
響應式設計(jì)的(de)基礎就(jiù)是(shì)把布局視(s∏'hì)口的(de)尺寸設置為(wèi)理(lǐ)想♠•♣視(shì)口。
3)媒體(tǐ)查詢
媒體(tǐ)查詢就(jiù)是(shì) CSS 中的(de) if 語©γ♥句,可(kě)以讓我們根據設備顯示器(qì)的(de→>♥δ)特性設置特定的(de)CSS 樣式。使用(yòng)媒體(tǐ)查詢,幾行(xíng)代碼就(jiù)可(kě ✘)以根據諸如(rú)視(shì)口寬度,屏幕比例,設備方向™×等特性來(lái)改變頁面內(nèi)容的(♦σ™αde)顯示方式。
4) HTML5 和(hé) CSS3
響應式設計(jì)的(de)一(yī)個(gè)主要♥★(yào)目标是(shì),網站(zhàn)不(bù)僅要(yào)對(d★✘uì)用(yòng)戶有(yǒu)限的(d♣♠∑♠e)視(shì)口做(zuò)出響應,還(hái)要(yào)以最快(k∑↕$uài)的(de)時(shí)間(jiān)加載網頁≠<↔。
HTML5 強調簡化(huà)标簽,僅鏈接那(nà)些(xiē)我們®☆Ω必須的(de) CSS,JS 和(hé)圖片文(wén)件(ji'→δεàn)。
CSS3 是(shì)在 CSS2 的(de)基礎上(s¥¥π≠hàng)追加的(de)新功能(néng✘¶),提供了(le)動畫(huà),漸變等***,并且提供了(le)很(hěn ±₩)多(duō)新特性。
使用(yòng) HTML5 和(hé) CSS3,允許我們用(yòγ♠ng)最簡潔和(hé)快(kuài)速的(de)₽ε代碼創建一(yī)些(xiē)相(xiàng)€>對(duì)複雜(zá)的(de)頁面,而不(bù)是(s©↕hì)所有(yǒu)的(de)都(dōu)依賴 JS 和(±♦hé)圖片。
如(rú)何做(zuò)響應式設計(jì)? ♥≈;1)先設置視(shì)口
這(zhè)段代碼的(de)意思如(rú)下(xià):
(width=device-width)網頁寬度默認等于屏₽ • 幕寬度
(initial-scale=1.0Ω¶↑☆)原始縮放(fàng)比例為(wèi)1.0,即網頁初始大(d¥β™à)小(xiǎo)占屏幕面積的(de)100%
(maximum-scale)定義放(fàng)大(dà)***比例φδ♣為(wèi)1
(user-scalable=no) 定義是(shì)β♣δ否允許用(yòng)戶手動縮放(fàng)頁面,默認為(wèi)YESΩ ≈
2)百分(fēn)比搭配媒體(tǐ)查詢
在最初使用(yòng)媒體(tǐ)查詢Ω'φ的(de)時(shí)候,你(nǐ)會(huì)覺得(de)它功π"λφ能(néng)強大(dà)無比。但(dàn)随著(zhe)項目越做£ (zuò)越多(duō)你(nǐ)會(huì)發現(xiàn)媒體(tǐγ★§)查詢隻是(shì)一(yī)個(gè)必要(yào)條π✔®件(jiàn)。如(rú)果隻使用(yòng)媒體(t"₹ǐ)查詢來(lái)适應不(bù)同視(sh↑§ì)口的(de)固定寬度設計(jì),隻會(huì)從(cóng)一(yī)組&§¶ CSS 媒體(tǐ)查詢規則變到(dào)另一(yī)組,兩者之σ"α₹間(jiān)沒有(yǒu)任何平滑漸變。
我們需要(yào)的(de)是(shì)一(yī)個(gè)靈活的(×∏de)設計(jì),能(néng)在所有(yǒu)視(shì)₽≈>ε口中都(dōu)完美(měi)的(de)顯示,而不(bù)僅僅針對(duì)媒←λ&體(tǐ)查詢設置的(de)固定視(shì)口。
合理(lǐ)使用(yòng)百分(fēn)比布局創建流動的(de)彈性界面,同時(shí)使用(yòng)媒體("σtǐ)查詢來(lái)限制(zhì)元素的(de)變動範圍,基于以上(shàε✔®εng)兩者我們才能(néng)構建出完美( ¶βσměi)的(de)設計(jì)。
3)em,rem
px是(shì)最常用(yòng)的(de)長(cháng)度單位,它是'σΩ(shì)一(yī)種相(xiàng)對(duì)長(cháng&<↑↔)度單位,代表像素,它取決于顯示設備的(de)分(fē™>'n)辨率。
em是(shì)常用(yòng)的(de)印刷度量單位, βπ↕在CSS裡(lǐ)面,1個(gè) em 定義為(wèi)一(yī)±"≤種給定字體(tǐ)的(de)font-size 值,如(rú)果一(yīε←'÷)個(gè)元素的(de) font-sizσ ₽★e 是(shì)16px,那(nà)麽對(duì)于該元素,1em 就(ji§ β©ù)等于16px。
rem 是(shì)指相(xiàng)對(duì)于根元素字體(tǐ)©₽大(dà)小(xiǎo)的(de)單位。
如(rú)果我們給 body 标簽設置文( δ₩®wén)字大(dà)小(xiǎo)為(wèi)✔≠100%,給其他(tā)的(de)文(wén)字✘λ∏φ都(dōu)使用(yòng)相(xiàng)對(duì)單位rem,那(nà)"這(zhè)些(xiē)文(wén)字都(d&ōu)會(huì)受 body 上(shàng)的(de)初始聲明♥∞↔(míng)的(de)影(yǐng)響,這(zα£hè)樣做(zuò)的(de)好(hǎo)處是(shì)如£ ₹(rú)果以後需要(yào)改變文(wén)字的(de)大(d> >×à)小(xiǎo),我們隻用(yòng)修改 body 的$♠(de)文(wén)字大(dà)小(xiǎo),其他(tā)✘™φ£的(de)所有(yǒu)文(wén)字都(dōu× )會(huì)依照(zhào)比例相(xiàng)應改變。
4)彈性圖片
要(yào)實現(xiàn)圖片随流動布局相(xiàng)•≤÷±應縮放(fàng),隻需給在CSS中給圖片添加 wid←∏th 百分(fēn)比。如(rú)果包含塊裡(lǐ)面就(j&☆"iù)隻有(yǒu)圖片可(kě)以設置為(wèi)100%。
如(rú)果包含塊有(yǒu)其他(tā)元素,這(zh•><è)将會(huì)引入一(yī)個(gè)問(wèn)題,縮放(fà ✔ng)則會(huì)影(yǐng)響到(☆dào)它的(de)包含塊以及其他(tā↓∑)元素。所以我們需要(yào)給特定圖片設置特定的(d£♥e)規則,如(rú)果圖片拉伸超過了(le)圖片的(de)原始尺寸,圖片∞€的(de)顯示就(jiù)會(huì)有(yǒu)問(wèn)¥題。我們也(yě)需要(yào)給圖片設↔αγ置max-width一(yī)個(gè)阙σ£♦值。
圖片縮放(fàng)的(de)問(wèn)題:圖片的(®de)尺寸必須比其顯示尺寸更大(dà),這(zhè)樣才能(n✘♥éng)保證渲染效果。基于這(zhè)個(gè)原因,圖片文(wα∞én)件(jiàn)的(de)體(tǐ)積比實際顯示的(de)≈γ圖片更大(dà)。如(rú)果要(yào)做(zuò)大←∏(dà)***,也(yě)可(kě)以考慮為(wèi)不(bù)同 £←的(de)屏幕尺寸提供不(bù)同的(de)圖片。
響應式設計(jì)的(de)未來(lái)—Flexbσ♦€ox
Flexbox 也(yě)可(kě)以叫彈性布局,是(shì)C&λ&SS3新出的(de)一(yī)種布局方式,也(yě)是(shì) Cγ&SS3 推薦使用(yòng)的(de)一(yī)種布局®¶方法,但(dàn)并不(bù)能(néng)支持所有(yǒ✘₽£u)的(de)浏覽器(qì)。
如(rú)圖所示,IE系列隻有(yǒu•✔♦•) IE11+ 支持 Flexbox,移動端大(dà)部分(fēn≈φ×α)已支持 Flexbox。
總結
***,舉個(gè)例子(zǐ),如(rú"β→)下(xià)是(shì)一(yī)個(gè)實際的(de)基于百分(fēn)☆♥✘比