HOME 首頁(yè)
SERVICE 服務(wù)產(chǎn)品
XINMEITI 新媒體代運(yùn)營(yíng)
CASE 服務(wù)案例
NEWS 熱點(diǎn)資訊
ABOUT 關(guān)于我們
CONTACT 聯(lián)系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    響應(yīng)式網(wǎng)頁(yè)如何實(shí)現(xiàn)(響應(yīng)式網(wǎng)頁(yè)如何實(shí)現(xiàn)網(wǎng)絡(luò)連接)

    發(fā)布時(shí)間:2023-04-25 12:55:51     稿源: 創(chuàng)意嶺    閱讀: 1089        

    大家好!今天讓創(chuàng)意嶺的小編來(lái)大家介紹下關(guān)于響應(yīng)式網(wǎng)頁(yè)如何實(shí)現(xiàn)的問(wèn)題,以下是小編對(duì)此問(wèn)題的歸納整理,讓我們一起來(lái)看看吧。

    創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀企業(yè),服務(wù)客戶遍布全國(guó),相關(guān)業(yè)務(wù)請(qǐng)撥打175-8598-2043,或微信:1454722008

    本文目錄:

    響應(yīng)式網(wǎng)頁(yè)如何實(shí)現(xiàn)(響應(yīng)式網(wǎng)頁(yè)如何實(shí)現(xiàn)網(wǎng)絡(luò)連接)

    一、如何將web頁(yè)面改成響應(yīng)式

    第一步:檢測(cè)網(wǎng)頁(yè)響應(yīng)式

    瀏覽器打開調(diào)試模式,打開響應(yīng)式設(shè)計(jì)模式,在預(yù)覽區(qū)域拖動(dòng)大小范圍,如果頁(yè)面元素隨大小變化而自適應(yīng),則頁(yè)面是響應(yīng)式頁(yè)面,反之,頁(yè)面是固定非響應(yīng)式頁(yè)面。如圖:

    第二步:編輯網(wǎng)頁(yè)源文件

    用Dreamweaver打開頁(yè)面源文件,查看代碼樣式及文件結(jié)構(gòu),(Web頁(yè)面的視覺效果由CSS樣式表文件控制)。如圖:

    第三步:植入響應(yīng)式代碼

    在CSS樣式表中插入以下代碼:

    @media screen and (min-width:200px) and (max-device-width:640px){

    /*這里寫元素的樣式*/

    }

    代碼解釋:這句代碼是指定了在200像素~640像素之間的終端,顯示的效果,在其他終端不顯示。

    第四步:橫屏響應(yīng)式設(shè)計(jì)

    在CSS中插入以下代碼

    @media screen and (min-width:200px) and (max-device-width:640px){

    .box{ width:100%;height:auto; margin:0 auto; background:#FFFFFF;}

    }

    控制元素在終端的橫向展示(全屏拉伸縮放無(wú)滾動(dòng)條),垂直方向用滾動(dòng)條展示。如圖:

    第五步:豎屏響應(yīng)式設(shè)計(jì)

    在CSS中插入以下代碼

    @media screen and (min-width:200px) and (max-device-width:640px){

    .box{ width:auto;height:100%; margin:0 auto; background:#FFFFFF;}

    }

    控制元素在終端的橫向展示(全屏拉伸縮放無(wú)滾動(dòng)條),垂直方向用滾動(dòng)條展示。如圖:

    第六步:全屏響應(yīng)式設(shè)計(jì)

    在CSS中插入以下代碼

    @media screen and (min-width:200px) and (max-device-width:640px){

    .box{ width:100%;height:100%; margin:0 auto; background:#FFFFFF;}

    }

    控制元素在終端的橫向展示(全屏拉伸縮放無(wú)滾動(dòng)條),垂直方向用滾動(dòng)條展示。如圖:

    7

    第七步:加工檢測(cè)

    響應(yīng)式設(shè)計(jì)完成之后,用不同的終端全部檢測(cè)一遍,有不合格的地方繼續(xù)修改,這是程序員必須知道的也不能忽視的。

    二、響應(yīng)式網(wǎng)站建設(shè)流程是什么?

    1、信息架構(gòu),確定內(nèi)容策略

    根據(jù)產(chǎn)品定位和用戶分析,交互設(shè)計(jì)師確定站點(diǎn)信息架構(gòu)。(信息架構(gòu)呈現(xiàn)方式有很多種,這不是本文重點(diǎn),不詳述)。

    這時(shí)候可以明確這個(gè)產(chǎn)品有多少頁(yè)面,每個(gè)頁(yè)面包含多少內(nèi)容,內(nèi)容優(yōu)先級(jí)是什么。很多產(chǎn)品包含N多頁(yè)面,每個(gè)頁(yè)面一一考慮響應(yīng)式設(shè)計(jì)容易造成混亂 且成本巨大。所以下一步重要工作是分析頁(yè)面類型把頁(yè)面歸類。以玩客為例,可以把10多個(gè)頁(yè)面分成三類:列表類頁(yè)面、詳情類頁(yè)面、操作類頁(yè)面。

    2、移動(dòng)框架

    先說(shuō)下為什么第二步要先設(shè)計(jì)移動(dòng)框架。移動(dòng)優(yōu)先是移動(dòng)互聯(lián)網(wǎng)浪潮下應(yīng)運(yùn)而生的理念,由Luke Wroblewski最早提出。移動(dòng)優(yōu)先并不是指移動(dòng)更重要,響應(yīng)式設(shè)計(jì)理念里設(shè)備是同等重要的。它是指優(yōu)先設(shè)計(jì)手機(jī)端的體驗(yàn),有三個(gè)原因:

    (1)手機(jī)讓設(shè)計(jì)專注,強(qiáng)迫你想清楚什么信息是最重要的。因?yàn)槭謾C(jī)屏幕小,每屏呈現(xiàn)的內(nèi)容少;觸屏手機(jī)使用手指操作而非鼠標(biāo)這樣的精密設(shè)備來(lái)操 作,對(duì)操作有更高要求;手機(jī)使用場(chǎng)景更加豐富,很多場(chǎng)景用戶是缺乏耐心的,比如當(dāng)你排隊(duì)看電影正在找手機(jī)上的電子票,馬上排到你了翻半天卻遲遲找不到那張 票這是多么令人崩潰的事情。

    (2)手機(jī)許多特性讓設(shè)計(jì)更強(qiáng)大。手機(jī)上的語(yǔ)音輸入、地理位置定位、豐富的手勢(shì)操作、越來(lái)越多傳感器,手機(jī)交互比PC擁有更多可能性。從手機(jī)開始設(shè)計(jì),讓你更早地思考如何發(fā)揮這些特性。

    (3)手機(jī)正在迅猛增長(zhǎng)。手機(jī)即將超越PC,成為最主流的上網(wǎng)方式,這個(gè)趨勢(shì)是不可逆的。

    從移動(dòng)開始做設(shè)計(jì)對(duì)習(xí)慣了PC環(huán)境的設(shè)計(jì)師可能是一種挑戰(zhàn),思考方式工作習(xí)慣都被迫做出改變。但這種改變必須去適應(yīng),因?yàn)橛脩袅?xí)慣在改變。

    上一步已經(jīng)把頁(yè)面歸類并確定每個(gè)頁(yè)面內(nèi)容優(yōu)先級(jí),現(xiàn)在接著分析每種類型頁(yè)面的導(dǎo)航、主體內(nèi)容等框架結(jié)構(gòu),最終得出一份框架結(jié)構(gòu)表。從玩客框架結(jié) 構(gòu)看出,全局導(dǎo)航是所有頁(yè)面公共的,局部導(dǎo)航只有列表類頁(yè)面才有,詳情類頁(yè)面都有一個(gè)“頁(yè)面主人”信息,而關(guān)聯(lián)導(dǎo)航不是每個(gè)頁(yè)面都有。

    接著開始設(shè)計(jì)手機(jī)端“超細(xì)長(zhǎng)頁(yè)面”的框架(因?yàn)槭謾C(jī)上一般是單列布局,所以頁(yè)面又細(xì)又長(zhǎng))。這一步開始把信息結(jié)構(gòu)設(shè)計(jì)成最粗放的框架,可以在白 板或紙面上完成。要實(shí)現(xiàn)的關(guān)鍵目標(biāo)是:把這個(gè)頁(yè)面最需要呈現(xiàn)給用戶的內(nèi)容放在最重要的位置,要符合手機(jī)上的閱讀和操作習(xí)慣,盡量利用手機(jī)設(shè)備的特性。

    3、響應(yīng)式框架

    根據(jù)手機(jī)端的框架拓展出平板和PC端框架。這是復(fù)雜產(chǎn)品實(shí)現(xiàn)響應(yīng)式設(shè)計(jì)的關(guān)鍵步驟,它是讓眾多頁(yè)面有條理地響應(yīng)起來(lái)的基礎(chǔ)。第一件事情是確定響 應(yīng)式模式,即從手機(jī)到平板到PC,導(dǎo)航怎么變化,頁(yè)面布局用哪種響應(yīng)方式,根據(jù)內(nèi)容優(yōu)先級(jí)如何調(diào)整模塊順序,等等。玩客在PC端以三欄布局為主,左邊欄作 為局部導(dǎo)航或者主人信息區(qū),中間欄始終是頁(yè)面主體信息,當(dāng)頁(yè)面需要關(guān)聯(lián)導(dǎo)航時(shí)統(tǒng)一放在右邊欄。

    到現(xiàn)在這個(gè)階段所有頁(yè)面的響應(yīng)式開始有規(guī)則可循,下一步工作就是繼續(xù)細(xì)化規(guī)則,把框架精確到具體尺寸。具體說(shuō)來(lái)就是制定流體柵格系統(tǒng)。

    響應(yīng)式是一種設(shè)計(jì)理念與前端技術(shù)緊密結(jié)合的新興形態(tài),鼓勵(lì)盡早進(jìn)行跨職能溝通協(xié)作。交互確定響應(yīng)式框架和柵格系統(tǒng)后,其他角色就可以同步開展工 作了。前端開始介入完成柵格和框架搭建,產(chǎn)出頁(yè)面基礎(chǔ)框架。視覺同步開始探索和定義視覺風(fēng)格探索,制定視覺框架,產(chǎn)出風(fēng)格關(guān)鍵詞、產(chǎn)品配色方案。整個(gè)過(guò)程 需要幾個(gè)角色不斷討論確定。

    4、模塊設(shè)計(jì)

    按照移動(dòng)優(yōu)先的原則應(yīng)該先進(jìn)行移動(dòng)端的模塊細(xì)節(jié)設(shè)計(jì),不過(guò)我們選擇了從PC端開始設(shè)計(jì)細(xì)節(jié)。因?yàn)镻C端開發(fā)能夠充分暴露業(yè)務(wù)復(fù)雜度,項(xiàng)目團(tuán)隊(duì)的 設(shè)計(jì)、開發(fā)、測(cè)試在PC環(huán)境下?lián)碛谐墒斓墓ぞ吆土鞒?,從PC開始讓開發(fā)過(guò)程更順暢。所以個(gè)人認(rèn)為移動(dòng)優(yōu)先是確定內(nèi)容策略時(shí)應(yīng)該遵循的理念,細(xì)節(jié)設(shè)計(jì)和開發(fā) 過(guò)程是否要移動(dòng)優(yōu)先,取決于產(chǎn)品定位和項(xiàng)目團(tuán)隊(duì)情況。

    響應(yīng)式框架確定了頁(yè)面結(jié)構(gòu)和響應(yīng)模式,模塊設(shè)計(jì)這個(gè)過(guò)程開始完善所有信息排版和交互形式,這是交互設(shè)計(jì)師最熟練也是最耗時(shí)的工作。這個(gè)過(guò)程與傳統(tǒng)流程沒太大區(qū)別,只是心里要不斷提醒自己,這個(gè)模塊不是只為這個(gè)設(shè)備設(shè)計(jì),它在其它設(shè)備下會(huì)出問(wèn)題嗎?

    交互確定頁(yè)面模塊細(xì)節(jié)后可以抽取出產(chǎn)品用到的控件、組件和公共模塊,現(xiàn)在視覺和前端開始做一件有別于傳統(tǒng)流程的事情。視覺根據(jù)前期定義的風(fēng)格設(shè) 計(jì)控組件和公共模塊的視覺效果,把它們拼成一個(gè)模擬的頁(yè)面,我們稱之為風(fēng)格拼貼稿。前端再把風(fēng)格拼貼稿里的控組件和公共模塊實(shí)現(xiàn)出來(lái),統(tǒng)一維護(hù)一套組件規(guī) 范代碼。

    傳統(tǒng)的做法往往是頁(yè)面視覺定稿后設(shè)計(jì)師開始整理視覺規(guī)范標(biāo)注給前端。風(fēng)格拼貼稿是將這個(gè)工作盡可能提前,并變成一個(gè)設(shè)計(jì)協(xié)作利器。它的好處是:

    (1)一個(gè)頁(yè)面的視覺效果實(shí)際上是由一堆控組件和公共模塊組成,用真實(shí)的控組件和公共模塊拼貼的模擬頁(yè)面已經(jīng)可以呈現(xiàn)出產(chǎn)品的視覺風(fēng)格。把一個(gè)產(chǎn)品10多個(gè)頁(yè)面的視覺稿全部完成定稿是非常費(fèi)時(shí)費(fèi)力的事情,產(chǎn)出一份風(fēng)格拼貼稿則輕松得多。所以它是一個(gè)高效的設(shè)計(jì)工具。

    (2)復(fù)雜產(chǎn)品總是涉及多個(gè)設(shè)計(jì)師和前端并行工作,盡早地把控組件和公共模塊抽取出來(lái)統(tǒng)一管理,是保證視覺風(fēng)格一致性的有效方法。避免不同設(shè)計(jì) 師同時(shí)設(shè)計(jì)同一個(gè)控組件或公共模塊,減少重復(fù)開發(fā)造成的浪費(fèi)。也大大降低后期更新和維護(hù)頁(yè)面的成本,比如當(dāng)需要修改“關(guān)注”按鈕時(shí)只需改一個(gè)就能全站生 效。

    5、響應(yīng)式模塊設(shè)計(jì)

    pc模板細(xì)節(jié)和風(fēng)格拼貼稿完成后,剩下工作是拓展出平板和手機(jī)端的完整設(shè)計(jì)稿,前端產(chǎn)出全部響應(yīng)式頁(yè)面代碼。進(jìn)行響應(yīng)式模塊設(shè)計(jì)時(shí)最需要關(guān)注的仍然是讓操作符合設(shè)備習(xí)慣,充分利用設(shè)備特性。

    至此,一個(gè)全站響應(yīng)式產(chǎn)品的頁(yè)面就陸續(xù)出來(lái)了。很多人認(rèn)為響應(yīng)式設(shè)計(jì)維護(hù)成本高的理由是一個(gè)頁(yè)面要同時(shí)設(shè)計(jì)多套設(shè)計(jì)稿。玩客這次經(jīng)驗(yàn)告訴我們,確定一套設(shè)計(jì)稿和柵格系統(tǒng)后再拓展出其它設(shè)備下的設(shè)計(jì)方案,工作量遠(yuǎn)比想象中的低。

    6、測(cè)試/討論/優(yōu)化,提交開發(fā)

    離大功告成還差最后一步,在真實(shí)設(shè)備下測(cè)試頁(yè)面效果,項(xiàng)目團(tuán)隊(duì)討論并持續(xù)優(yōu)化。

    在提交開發(fā)之前需要盡早明確服務(wù)端響應(yīng)(RESS)的策略。服務(wù)端與客戶端結(jié)合是目前解決響應(yīng)式頁(yè)面性能問(wèn)題的最合理方案。哪些大圖片在移動(dòng)設(shè) 備下只需輸出小尺寸圖片?哪些內(nèi)容在什么設(shè)備下是不需要開發(fā)輸出的?哪些可以減少輸出的數(shù)據(jù)數(shù)量?與開發(fā)團(tuán)隊(duì)協(xié)作的響應(yīng)式可以有效控制頁(yè)面文件大小,避免 頁(yè)面成為移動(dòng)設(shè)備上燒用戶流量的罪魁禍?zhǔn)住?

    三、響應(yīng)式網(wǎng)站一般是用什么技術(shù)實(shí)現(xiàn)的

    用CSS   根據(jù)屏幕大小  設(shè)備類型  分辨率等來(lái)決定某段CSS代碼是否加載

    隨便找了個(gè)響應(yīng)式布局網(wǎng)站給你看他們?cè)诓煌直媛氏碌娘@示效果

    圖一是PC端的顯示效果為全部CSS代碼加載

    圖二為分辨率變小的時(shí)候,注意看他的變化。右側(cè)以及左側(cè)的顯示方式變了!以及中間的圖片廣告不在加載了

    四、怎么實(shí)現(xiàn)網(wǎng)站的響應(yīng)式布局,適合不同分辨率

    如我們需要兼容不同屏幕分辨率、清晰度以及屏幕定向方式豎屏(portrait)、橫屏(landscape),怎樣才能做到讓一種設(shè)計(jì)方案滿足所有情況?對(duì)此,馬海祥覺的我們的布局應(yīng)該是一種彈性的柵格布局,不同尺寸下彈性適應(yīng),如以下頁(yè)面中各模塊在不同尺寸下的位置:

    那么我們具體要怎么做呢?

    1、Meta標(biāo)簽定義

    使用 viewport meta 標(biāo)簽在手機(jī)瀏覽器上控制布局

    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />

    通過(guò)快捷方式打開時(shí)全屏顯示

    <meta name="apple-mobile-web-app-capable" content="yes" />

    隱藏狀態(tài)欄

    <meta name="apple-mobile-web-app-status-bar-style" content="blank" />

    iPhone會(huì)將看起來(lái)像電話號(hào)碼的數(shù)字添加電話連接,應(yīng)當(dāng)關(guān)閉

    <meta name="format-detection" content="telephone=no" />

    2、使用Media Queries適配對(duì)應(yīng)樣式

    常用于布局的CSS Media Queries有以下幾種:

    設(shè)備類型(media type):

    all所有設(shè)備;

    screen 電腦顯示器;

    print打印用紙或打印預(yù)覽視圖;

    handheld便攜設(shè)備;

    tv電視機(jī)類型的設(shè)備;

    speech語(yǔ)意和音頻盒成器;

    braille盲人用點(diǎn)字法觸覺回饋設(shè)備;

    embossed盲文打印機(jī);

    projection各種投影設(shè)備;

    tty使用固定密度字母柵格的媒介,比如電傳打字機(jī)和終端。

    設(shè)備特性(media feature):

    width瀏覽器寬度;

    height瀏覽器高度;

    device-width設(shè)備屏幕分辨率的寬度值;

    device-height設(shè)備屏幕分辨率的高度值;

    orientation瀏覽器窗口的方向縱向還是橫向,當(dāng)窗口的高度值大于等于寬度時(shí)該特性值為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,這里在馬海祥博客上我們就不再做詳述,有興趣的話,可通過(guò)官方文檔進(jìn)一步了解。

    3、表格(table)的響應(yīng)式處理

    那么對(duì)于表格(table)的響應(yīng)式處理該是怎樣的呢?我們?cè)撊绾瓮黄芓able的局限性呢?接下來(lái)我們來(lái)了解以下的幾種針對(duì)表格響應(yīng)式處理的方法:

    (1)、隱藏不重要數(shù)據(jù)列

    處理前:

    (點(diǎn)擊查看大圖)

    處理后:

    實(shí)現(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;}

    }

    以用戶角度思考,每個(gè)人對(duì)數(shù)據(jù)的認(rèn)知不同,或許你隱藏的數(shù)據(jù)對(duì)于他卻是很重要的,所以對(duì)于這種方法馬海祥并不推薦。

    (2)、多列橫向變2列縱向

    處理前:

    處理后:

    實(shí)現(xiàn)方法:<thead>定位隱藏,<td>變塊元素,并綁定對(duì)應(yīng)<th>列名,然后用偽元素的content:attr(data-th)實(shí)現(xiàn)<th>:

    (3)、固定首列,剩余列橫向滾動(dòng)

    處理前:

    處理后:

    實(shí)現(xiàn)原理代碼:

    thead {float:left;}

    tbody {display:block;width:auto;overflow-x:auto;}

    二、響應(yīng)式內(nèi)容

    1、響應(yīng)式圖片

    帶寬是手機(jī)終端的硬傷,如果我們只是頁(yè)面布局做了響應(yīng)式處理,在我們用手機(jī)訪問(wèn)時(shí),請(qǐng)求的圖片還是PC上的大圖;文件體積大,消耗流量多,請(qǐng)求延時(shí)長(zhǎng),因此導(dǎo)致的問(wèn)題也是不可估量的。那么我們就得把圖片也處理成響應(yīng)式的根據(jù)終端類型尺寸分辨率來(lái)適配出合理的圖形。

    處理原理:瀏覽器獲取用戶終端的屏幕尺寸、分辨率邏輯處理后輸出適應(yīng)的圖片,如屏幕分辨率320*480,那么我們匹配給它的是寬度應(yīng)小于320px的圖片。如果終端屏幕的DPI(device pixels)DPI詳解值很高,也就是高清屏,那么我們就得輸出2倍分辨率的圖形(寬:640px);以保證在高清屏下圖形的清晰度。各種移動(dòng)終端的屏幕參數(shù)可通過(guò)http://screensiz.es/phone查詢。

    解決方案:其實(shí)W3C已經(jīng)有一個(gè)用于響應(yīng)式圖形的草案:新定義標(biāo)簽<picture>,因?yàn)樗€只是草案,目前還沒有支持的瀏覽器,期待在不久的未來(lái)我們能用上。雖然目前不支持,但我們還是來(lái)了解下,為之后的內(nèi)容做個(gè)鋪墊。

    <picture>是一個(gè)圖形element,內(nèi)容由多個(gè)源圖組成,并由CSS Media Queries來(lái)適配出合理圖形,代碼規(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: 一個(gè)圖片源;

    media: 媒體查詢,用于適配屏幕尺寸;

    srcset: 圖片鏈接,1x適應(yīng)普通屏,2x適應(yīng)高清屏;

    <noscript/>: 當(dāng)瀏覽器不支持腳本時(shí)的一個(gè)替代方案;

    <img/>: 初始圖片;另外還有一個(gè)無(wú)障礙文本,類似<img/>的alt屬性。

    雖然<picture>目前還不支持,但它的原理我們是可借鑒的,所以就誕生了一個(gè)用于圖片響應(yīng)式處理的類庫(kù)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時(shí)的備用方案. -->

     <noscript>

     <img src="external/imgs/small.jpg" alt="圖片描述文本">

     </noscript>

    </span>

    其原理就是JS獲取Source的源以及CSS Media Queries規(guī)則,輸出適應(yīng)圖片,邏輯細(xì)節(jié)這里不再解析,感興趣的可查看其JS代碼,邏輯不是很復(fù)雜,也可以自己封裝一個(gè)類庫(kù),以適用于自身產(chǎn)品,例如圖片加載失敗的替代方案。

    當(dāng)然,在未來(lái)的CSS Image Level 4中已經(jīng)實(shí)現(xiàn)了響應(yīng)式圖片的原生語(yǔ)法: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 目前只實(shí)現(xiàn)了 url() 形式的取值,且dppx值取負(fù)值[-2x]貌似也是合法的。

    當(dāng)然除此之外,還有其他的響應(yīng)式處理,如服務(wù)端user-agent嗅探。

    2、高分辨率(DPI)下的響應(yīng)式處理

    (1)、SVG:優(yōu)點(diǎn)可承載色彩豐富、設(shè)計(jì)復(fù)雜圖形,且渲染不會(huì)出現(xiàn)邊緣不順滑;缺點(diǎn)是IE的支持不完美。

    (2)、Icon fonts:支持多瀏覽器,圖形顏色大小的修改成本低,易于維護(hù);圖形表現(xiàn)單一,不支持色彩豐富且復(fù)雜的圖形,IE6渲染有毛邊。

    (3)、-webkit-image-set:只支持單個(gè)圖形的適配,不利于圖形合并,兼容不完美(Safari 6+, Chrome 21+)。

    JS檢測(cè):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個(gè)像素點(diǎn)來(lái)渲染,那么我們樣式上的border:1px在Retina屏下會(huì)渲染成2px的邊框,與設(shè)計(jì)稿有出入,為了追求1px精準(zhǔn)還原,我們就不得不拿出一個(gè)完美的解決方案。

    在Photoshop中,如果需要看似0.5px的邊框,常見的方法就是對(duì)1px邊框加上陰影模糊1px。同理,我們?cè)趓etina屏下需要做到真實(shí)的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)頁(yè)如何實(shí)現(xiàn)相關(guān)問(wèn)題的回答。希望能幫到你,如有更多相關(guān)問(wèn)題,您也可以聯(lián)系我們的客服進(jìn)行咨詢,客服也會(huì)為您講解更多精彩的知識(shí)和內(nèi)容。


    推薦閱讀:

    企業(yè)響應(yīng)式整站(響應(yīng)式企業(yè)網(wǎng)站模板)

    edge瀏覽器打印網(wǎng)頁(yè)無(wú)響應(yīng)(edge瀏覽器打印網(wǎng)頁(yè)無(wú)響應(yīng)怎么回事)

    個(gè)性化設(shè)置2(個(gè)性化設(shè)置未響應(yīng) 黑屏)

    方案設(shè)計(jì)的目的和意義(方案設(shè)計(jì)的目的和意義怎么寫)

    長(zhǎng)寧假山景觀設(shè)計(jì)施工公司(長(zhǎng)寧假山景觀設(shè)計(jì)施工公司有哪些)