響應(yīng)式網(wǎng)頁如何實現(xiàn)(響應(yīng)式網(wǎng)頁如何實現(xiàn)網(wǎng)絡(luò)連接)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于響應(yīng)式網(wǎng)頁如何實現(xiàn)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀企業(yè),服務(wù)客戶遍布全國,相關(guān)業(yè)務(wù)請撥打175-8598-2043,或微信:1454722008
本文目錄:
一、如何將web頁面改成響應(yīng)式
第一步:檢測網(wǎng)頁響應(yīng)式
瀏覽器打開調(diào)試模式,打開響應(yīng)式設(shè)計模式,在預(yù)覽區(qū)域拖動大小范圍,如果頁面元素隨大小變化而自適應(yīng),則頁面是響應(yīng)式頁面,反之,頁面是固定非響應(yīng)式頁面。如圖:
第二步:編輯網(wǎng)頁源文件
用Dreamweaver打開頁面源文件,查看代碼樣式及文件結(jié)構(gòu),(Web頁面的視覺效果由CSS樣式表文件控制)。如圖:
第三步:植入響應(yīng)式代碼
在CSS樣式表中插入以下代碼:
@media screen and (min-width:200px) and (max-device-width:640px){
/*這里寫元素的樣式*/
}
代碼解釋:這句代碼是指定了在200像素~640像素之間的終端,顯示的效果,在其他終端不顯示。
第四步:橫屏響應(yīng)式設(shè)計
在CSS中插入以下代碼
@media screen and (min-width:200px) and (max-device-width:640px){
.box{ width:100%;height:auto; margin:0 auto; background:#FFFFFF;}
}
控制元素在終端的橫向展示(全屏拉伸縮放無滾動條),垂直方向用滾動條展示。如圖:
第五步:豎屏響應(yīng)式設(shè)計
在CSS中插入以下代碼
@media screen and (min-width:200px) and (max-device-width:640px){
.box{ width:auto;height:100%; margin:0 auto; background:#FFFFFF;}
}
控制元素在終端的橫向展示(全屏拉伸縮放無滾動條),垂直方向用滾動條展示。如圖:
第六步:全屏響應(yīng)式設(shè)計
在CSS中插入以下代碼
@media screen and (min-width:200px) and (max-device-width:640px){
.box{ width:100%;height:100%; margin:0 auto; background:#FFFFFF;}
}
控制元素在終端的橫向展示(全屏拉伸縮放無滾動條),垂直方向用滾動條展示。如圖:
7
第七步:加工檢測
響應(yīng)式設(shè)計完成之后,用不同的終端全部檢測一遍,有不合格的地方繼續(xù)修改,這是程序員必須知道的也不能忽視的。
二、響應(yīng)式網(wǎng)站建設(shè)流程是什么?
1、信息架構(gòu),確定內(nèi)容策略
根據(jù)產(chǎn)品定位和用戶分析,交互設(shè)計師確定站點信息架構(gòu)。(信息架構(gòu)呈現(xiàn)方式有很多種,這不是本文重點,不詳述)。
這時候可以明確這個產(chǎn)品有多少頁面,每個頁面包含多少內(nèi)容,內(nèi)容優(yōu)先級是什么。很多產(chǎn)品包含N多頁面,每個頁面一一考慮響應(yīng)式設(shè)計容易造成混亂 且成本巨大。所以下一步重要工作是分析頁面類型把頁面歸類。以玩客為例,可以把10多個頁面分成三類:列表類頁面、詳情類頁面、操作類頁面。
2、移動框架
先說下為什么第二步要先設(shè)計移動框架。移動優(yōu)先是移動互聯(lián)網(wǎng)浪潮下應(yīng)運而生的理念,由Luke Wroblewski最早提出。移動優(yōu)先并不是指移動更重要,響應(yīng)式設(shè)計理念里設(shè)備是同等重要的。它是指優(yōu)先設(shè)計手機端的體驗,有三個原因:
(1)手機讓設(shè)計專注,強迫你想清楚什么信息是最重要的。因為手機屏幕小,每屏呈現(xiàn)的內(nèi)容少;觸屏手機使用手指操作而非鼠標(biāo)這樣的精密設(shè)備來操 作,對操作有更高要求;手機使用場景更加豐富,很多場景用戶是缺乏耐心的,比如當(dāng)你排隊看電影正在找手機上的電子票,馬上排到你了翻半天卻遲遲找不到那張 票這是多么令人崩潰的事情。
(2)手機許多特性讓設(shè)計更強大。手機上的語音輸入、地理位置定位、豐富的手勢操作、越來越多傳感器,手機交互比PC擁有更多可能性。從手機開始設(shè)計,讓你更早地思考如何發(fā)揮這些特性。
(3)手機正在迅猛增長。手機即將超越PC,成為最主流的上網(wǎng)方式,這個趨勢是不可逆的。
從移動開始做設(shè)計對習(xí)慣了PC環(huán)境的設(shè)計師可能是一種挑戰(zhàn),思考方式工作習(xí)慣都被迫做出改變。但這種改變必須去適應(yīng),因為用戶習(xí)慣在改變。
上一步已經(jīng)把頁面歸類并確定每個頁面內(nèi)容優(yōu)先級,現(xiàn)在接著分析每種類型頁面的導(dǎo)航、主體內(nèi)容等框架結(jié)構(gòu),最終得出一份框架結(jié)構(gòu)表。從玩客框架結(jié) 構(gòu)看出,全局導(dǎo)航是所有頁面公共的,局部導(dǎo)航只有列表類頁面才有,詳情類頁面都有一個“頁面主人”信息,而關(guān)聯(lián)導(dǎo)航不是每個頁面都有。
接著開始設(shè)計手機端“超細(xì)長頁面”的框架(因為手機上一般是單列布局,所以頁面又細(xì)又長)。這一步開始把信息結(jié)構(gòu)設(shè)計成最粗放的框架,可以在白 板或紙面上完成。要實現(xiàn)的關(guān)鍵目標(biāo)是:把這個頁面最需要呈現(xiàn)給用戶的內(nèi)容放在最重要的位置,要符合手機上的閱讀和操作習(xí)慣,盡量利用手機設(shè)備的特性。
3、響應(yīng)式框架
根據(jù)手機端的框架拓展出平板和PC端框架。這是復(fù)雜產(chǎn)品實現(xiàn)響應(yīng)式設(shè)計的關(guān)鍵步驟,它是讓眾多頁面有條理地響應(yīng)起來的基礎(chǔ)。第一件事情是確定響 應(yīng)式模式,即從手機到平板到PC,導(dǎo)航怎么變化,頁面布局用哪種響應(yīng)方式,根據(jù)內(nèi)容優(yōu)先級如何調(diào)整模塊順序,等等。玩客在PC端以三欄布局為主,左邊欄作 為局部導(dǎo)航或者主人信息區(qū),中間欄始終是頁面主體信息,當(dāng)頁面需要關(guān)聯(lián)導(dǎo)航時統(tǒng)一放在右邊欄。
到現(xiàn)在這個階段所有頁面的響應(yīng)式開始有規(guī)則可循,下一步工作就是繼續(xù)細(xì)化規(guī)則,把框架精確到具體尺寸。具體說來就是制定流體柵格系統(tǒng)。
響應(yīng)式是一種設(shè)計理念與前端技術(shù)緊密結(jié)合的新興形態(tài),鼓勵盡早進(jìn)行跨職能溝通協(xié)作。交互確定響應(yīng)式框架和柵格系統(tǒng)后,其他角色就可以同步開展工 作了。前端開始介入完成柵格和框架搭建,產(chǎn)出頁面基礎(chǔ)框架。視覺同步開始探索和定義視覺風(fēng)格探索,制定視覺框架,產(chǎn)出風(fēng)格關(guān)鍵詞、產(chǎn)品配色方案。整個過程 需要幾個角色不斷討論確定。
4、模塊設(shè)計
按照移動優(yōu)先的原則應(yīng)該先進(jìn)行移動端的模塊細(xì)節(jié)設(shè)計,不過我們選擇了從PC端開始設(shè)計細(xì)節(jié)。因為PC端開發(fā)能夠充分暴露業(yè)務(wù)復(fù)雜度,項目團隊的 設(shè)計、開發(fā)、測試在PC環(huán)境下?lián)碛谐墒斓墓ぞ吆土鞒?,從PC開始讓開發(fā)過程更順暢。所以個人認(rèn)為移動優(yōu)先是確定內(nèi)容策略時應(yīng)該遵循的理念,細(xì)節(jié)設(shè)計和開發(fā) 過程是否要移動優(yōu)先,取決于產(chǎn)品定位和項目團隊情況。
響應(yīng)式框架確定了頁面結(jié)構(gòu)和響應(yīng)模式,模塊設(shè)計這個過程開始完善所有信息排版和交互形式,這是交互設(shè)計師最熟練也是最耗時的工作。這個過程與傳統(tǒng)流程沒太大區(qū)別,只是心里要不斷提醒自己,這個模塊不是只為這個設(shè)備設(shè)計,它在其它設(shè)備下會出問題嗎?
交互確定頁面模塊細(xì)節(jié)后可以抽取出產(chǎn)品用到的控件、組件和公共模塊,現(xiàn)在視覺和前端開始做一件有別于傳統(tǒng)流程的事情。視覺根據(jù)前期定義的風(fēng)格設(shè) 計控組件和公共模塊的視覺效果,把它們拼成一個模擬的頁面,我們稱之為風(fēng)格拼貼稿。前端再把風(fēng)格拼貼稿里的控組件和公共模塊實現(xiàn)出來,統(tǒng)一維護一套組件規(guī) 范代碼。
傳統(tǒng)的做法往往是頁面視覺定稿后設(shè)計師開始整理視覺規(guī)范標(biāo)注給前端。風(fēng)格拼貼稿是將這個工作盡可能提前,并變成一個設(shè)計協(xié)作利器。它的好處是:
(1)一個頁面的視覺效果實際上是由一堆控組件和公共模塊組成,用真實的控組件和公共模塊拼貼的模擬頁面已經(jīng)可以呈現(xiàn)出產(chǎn)品的視覺風(fēng)格。把一個產(chǎn)品10多個頁面的視覺稿全部完成定稿是非常費時費力的事情,產(chǎn)出一份風(fēng)格拼貼稿則輕松得多。所以它是一個高效的設(shè)計工具。
(2)復(fù)雜產(chǎn)品總是涉及多個設(shè)計師和前端并行工作,盡早地把控組件和公共模塊抽取出來統(tǒng)一管理,是保證視覺風(fēng)格一致性的有效方法。避免不同設(shè)計 師同時設(shè)計同一個控組件或公共模塊,減少重復(fù)開發(fā)造成的浪費。也大大降低后期更新和維護頁面的成本,比如當(dāng)需要修改“關(guān)注”按鈕時只需改一個就能全站生 效。
5、響應(yīng)式模塊設(shè)計
pc模板細(xì)節(jié)和風(fēng)格拼貼稿完成后,剩下工作是拓展出平板和手機端的完整設(shè)計稿,前端產(chǎn)出全部響應(yīng)式頁面代碼。進(jìn)行響應(yīng)式模塊設(shè)計時最需要關(guān)注的仍然是讓操作符合設(shè)備習(xí)慣,充分利用設(shè)備特性。
至此,一個全站響應(yīng)式產(chǎn)品的頁面就陸續(xù)出來了。很多人認(rèn)為響應(yīng)式設(shè)計維護成本高的理由是一個頁面要同時設(shè)計多套設(shè)計稿。玩客這次經(jīng)驗告訴我們,確定一套設(shè)計稿和柵格系統(tǒng)后再拓展出其它設(shè)備下的設(shè)計方案,工作量遠(yuǎn)比想象中的低。
6、測試/討論/優(yōu)化,提交開發(fā)
離大功告成還差最后一步,在真實設(shè)備下測試頁面效果,項目團隊討論并持續(xù)優(yōu)化。
在提交開發(fā)之前需要盡早明確服務(wù)端響應(yīng)(RESS)的策略。服務(wù)端與客戶端結(jié)合是目前解決響應(yīng)式頁面性能問題的最合理方案。哪些大圖片在移動設(shè) 備下只需輸出小尺寸圖片?哪些內(nèi)容在什么設(shè)備下是不需要開發(fā)輸出的?哪些可以減少輸出的數(shù)據(jù)數(shù)量?與開發(fā)團隊協(xié)作的響應(yīng)式可以有效控制頁面文件大小,避免 頁面成為移動設(shè)備上燒用戶流量的罪魁禍?zhǔn)住?
三、響應(yīng)式網(wǎng)站一般是用什么技術(shù)實現(xiàn)的
用CSS 根據(jù)屏幕大小 設(shè)備類型 分辨率等來決定某段CSS代碼是否加載
隨便找了個響應(yīng)式布局網(wǎng)站給你看他們在不同分辨率下的顯示效果
圖一是PC端的顯示效果為全部CSS代碼加載
圖二為分辨率變小的時候,注意看他的變化。右側(cè)以及左側(cè)的顯示方式變了!以及中間的圖片廣告不在加載了
四、怎么實現(xiàn)網(wǎng)站的響應(yīng)式布局,適合不同分辨率
如我們需要兼容不同屏幕分辨率、清晰度以及屏幕定向方式豎屏(portrait)、橫屏(landscape),怎樣才能做到讓一種設(shè)計方案滿足所有情況?對此,馬海祥覺的我們的布局應(yīng)該是一種彈性的柵格布局,不同尺寸下彈性適應(yīng),如以下頁面中各模塊在不同尺寸下的位置:
那么我們具體要怎么做呢?
1、Meta標(biāo)簽定義
使用 viewport meta 標(biāo)簽在手機瀏覽器上控制布局
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
通過快捷方式打開時全屏顯示
<meta name="apple-mobile-web-app-capable" content="yes" />
隱藏狀態(tài)欄
<meta name="apple-mobile-web-app-status-bar-style" content="blank" />
iPhone會將看起來像電話號碼的數(shù)字添加電話連接,應(yīng)當(dāng)關(guān)閉
<meta name="format-detection" content="telephone=no" />
2、使用Media Queries適配對應(yīng)樣式
常用于布局的CSS Media Queries有以下幾種:
設(shè)備類型(media type):
all所有設(shè)備;
screen 電腦顯示器;
print打印用紙或打印預(yù)覽視圖;
handheld便攜設(shè)備;
tv電視機類型的設(shè)備;
speech語意和音頻盒成器;
braille盲人用點字法觸覺回饋設(shè)備;
embossed盲文打印機;
projection各種投影設(shè)備;
tty使用固定密度字母柵格的媒介,比如電傳打字機和終端。
設(shè)備特性(media feature):
width瀏覽器寬度;
height瀏覽器高度;
device-width設(shè)備屏幕分辨率的寬度值;
device-height設(shè)備屏幕分辨率的高度值;
orientation瀏覽器窗口的方向縱向還是橫向,當(dāng)窗口的高度值大于等于寬度時該特性值為portrait,否則為landscape;
aspect-ratio比例值,瀏覽器的縱橫比;
device-aspect-ratio比例值,屏幕的縱橫比。
例子:
/* for 240 px width screen */
@media only screen and (max-device-width:240px){
selector{ ... }
}
/* for 320px width screen */
@media only screen and (min-device-width:241px) and (max-device-width:320px){
selector{ ... }
}
/* for 480 px width screen */
@media only screen (min-device-width:321px)and (max-device-width:480px){
selector{ ... }
}
適用于布局的Media Queries,這里在馬海祥博客上我們就不再做詳述,有興趣的話,可通過官方文檔進(jìn)一步了解。
3、表格(table)的響應(yīng)式處理
那么對于表格(table)的響應(yīng)式處理該是怎樣的呢?我們該如何突破Table的局限性呢?接下來我們來了解以下的幾種針對表格響應(yīng)式處理的方法:
(1)、隱藏不重要數(shù)據(jù)列
處理前:
(點擊查看大圖)
處理后:
實現(xiàn)方法代碼:
@media only screen and (max-width: 800px) {
table td:nth-child(2),
table th:nth-child(2) {display: none;}
}
@media only screen and (max-width: 640px) {
table td:nth-child(4),
table th:nth-child(4),
table td:nth-child(7),
table th:nth-child(7),
table td:nth-child(8),
th:nth-child(8){display: none;}
}
以用戶角度思考,每個人對數(shù)據(jù)的認(rèn)知不同,或許你隱藏的數(shù)據(jù)對于他卻是很重要的,所以對于這種方法馬海祥并不推薦。
(2)、多列橫向變2列縱向
處理前:
處理后:
實現(xiàn)方法:<thead>定位隱藏,<td>變塊元素,并綁定對應(yīng)<th>列名,然后用偽元素的content:attr(data-th)實現(xiàn)<th>:
(3)、固定首列,剩余列橫向滾動
處理前:
處理后:
實現(xiàn)原理代碼:
thead {float:left;}
tbody {display:block;width:auto;overflow-x:auto;}
二、響應(yīng)式內(nèi)容
1、響應(yīng)式圖片
帶寬是手機終端的硬傷,如果我們只是頁面布局做了響應(yīng)式處理,在我們用手機訪問時,請求的圖片還是PC上的大圖;文件體積大,消耗流量多,請求延時長,因此導(dǎo)致的問題也是不可估量的。那么我們就得把圖片也處理成響應(yīng)式的根據(jù)終端類型尺寸分辨率來適配出合理的圖形。
處理原理:瀏覽器獲取用戶終端的屏幕尺寸、分辨率邏輯處理后輸出適應(yīng)的圖片,如屏幕分辨率320*480,那么我們匹配給它的是寬度應(yīng)小于320px的圖片。如果終端屏幕的DPI(device pixels)DPI詳解值很高,也就是高清屏,那么我們就得輸出2倍分辨率的圖形(寬:640px);以保證在高清屏下圖形的清晰度。各種移動終端的屏幕參數(shù)可通過http://screensiz.es/phone查詢。
解決方案:其實W3C已經(jīng)有一個用于響應(yīng)式圖形的草案:新定義標(biāo)簽<picture>,因為它還只是草案,目前還沒有支持的瀏覽器,期待在不久的未來我們能用上。雖然目前不支持,但我們還是來了解下,為之后的內(nèi)容做個鋪墊。
<picture>是一個圖形element,內(nèi)容由多個源圖組成,并由CSS Media Queries來適配出合理圖形,代碼規(guī)范如下:
<picture width="500" height="500">
<source media="(min-width: 640px)" srcset="large-1.jpg 1x, large-2.jpg 2x">
<source media="(min-width: 320px)" srcset="med-1.jpg 1x, med-2.jpg 2x">
<source srcset="small-1.jpg 1x, small-2.jpg 2x">
<img src="small-1.jpg" alt="">
<p>Accessible text</p>
<!-- Fallback content-->
<noscript>
<img src="external/imgs/small.jpg" alt="Team photo">
</noscript>
</picture>
注:source: 一個圖片源;
media: 媒體查詢,用于適配屏幕尺寸;
srcset: 圖片鏈接,1x適應(yīng)普通屏,2x適應(yīng)高清屏;
<noscript/>: 當(dāng)瀏覽器不支持腳本時的一個替代方案;
<img/>: 初始圖片;另外還有一個無障礙文本,類似<img/>的alt屬性。
雖然<picture>目前還不支持,但它的原理我們是可借鑒的,所以就誕生了一個用于圖片響應(yīng)式處理的類庫Picturefill
<span data-picture data-alt="圖片描述文本">
<span data-src="small.jpg"></span>
<span data-src="medium.jpg" data-media="(min-width: 400px)"></span>
<span data-src="large.jpg" data-media="(min-width: 800px)"></span>
<span data-src="extralarge.jpg" data-media="(min-width: 1000px)"></span>
<!-- 瀏覽器不支持JS時的備用方案. -->
<noscript>
<img src="external/imgs/small.jpg" alt="圖片描述文本">
</noscript>
</span>
其原理就是JS獲取Source的源以及CSS Media Queries規(guī)則,輸出適應(yīng)圖片,邏輯細(xì)節(jié)這里不再解析,感興趣的可查看其JS代碼,邏輯不是很復(fù)雜,也可以自己封裝一個類庫,以適用于自身產(chǎn)品,例如圖片加載失敗的替代方案。
當(dāng)然,在未來的CSS Image Level 4中已經(jīng)實現(xiàn)了響應(yīng)式圖片的原生語法:image-set
<image-set> = image-set([ <image-set-decl>, ]* [ <image-set-decl> | <color>])
<image-set-decl> = [ <image> | <string> ] <resolution>
那么我們的響應(yīng)式圖片可以這樣重寫了
background-image:url(default.jpg); /* 普通幕 */
background-image: -webkit-image-set(url(medium.jpg) 1x, url(large.jpg) 2x); /* Retina高清屏 */
注:Webkit 目前只實現(xiàn)了 url() 形式的取值,且dppx值取負(fù)值[-2x]貌似也是合法的。
當(dāng)然除此之外,還有其他的響應(yīng)式處理,如服務(wù)端user-agent嗅探。
2、高分辨率(DPI)下的響應(yīng)式處理
(1)、SVG:優(yōu)點可承載色彩豐富、設(shè)計復(fù)雜圖形,且渲染不會出現(xiàn)邊緣不順滑;缺點是IE的支持不完美。
(2)、Icon fonts:支持多瀏覽器,圖形顏色大小的修改成本低,易于維護;圖形表現(xiàn)單一,不支持色彩豐富且復(fù)雜的圖形,IE6渲染有毛邊。
(3)、-webkit-image-set:只支持單個圖形的適配,不利于圖形合并,兼容不完美(Safari 6+, Chrome 21+)。
JS檢測:var retina = window.devicePixelRatio > 1;
CSS Media Query:
@media (-webkit-min-device-pixel-ratio: 2), /* Webkit-based browsers */
(min--moz-device-pixel-ratio: 2), /* Older Firefox browsers (prior to Firefox 16) */
(min-resolution: 2dppx), /* The standard way */
(min-resolution: 192dpi) /* dppx fallback */
3、高分辨率下的1px border
由于高清屏的特性,1px是由2×2個像素點來渲染,那么我們樣式上的border:1px在Retina屏下會渲染成2px的邊框,與設(shè)計稿有出入,為了追求1px精準(zhǔn)還原,我們就不得不拿出一個完美的解決方案。
在Photoshop中,如果需要看似0.5px的邊框,常見的方法就是對1px邊框加上陰影模糊1px。同理,我們在retina屏下需要做到真實的1px邊框,可利用box-shadow屬性模擬。
@media only screen and (-webkit-min-device-pixel-ratio:1.5),
only screen and (min-device-pixel-ratio:1.5) {
button {
border:none;
padding:0 16px;
box-shadow: inset 0 0 1px #000,
inset 0 1px 0 #75c2f8,
0 1px 1px -1px rgba(0, 0, 0, .5);
}
}
以上就是關(guān)于響應(yīng)式網(wǎng)頁如何實現(xiàn)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
企業(yè)響應(yīng)式整站(響應(yīng)式企業(yè)網(wǎng)站模板)
edge瀏覽器打印網(wǎng)頁無響應(yīng)(edge瀏覽器打印網(wǎng)頁無響應(yīng)怎么回事)
個性化設(shè)置2(個性化設(shè)置未響應(yīng) 黑屏)
方案設(shè)計的目的和意義(方案設(shè)計的目的和意義怎么寫)
長寧假山景觀設(shè)計施工公司(長寧假山景觀設(shè)計施工公司有哪些)