• <ul id="k6mek"><pre id="k6mek"></pre></ul>
      <ul id="k6mek"></ul>
      <ul id="k6mek"></ul>
    • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
    • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
      <th id="k6mek"></th>
    • <samp id="k6mek"></samp>
    • 關(guān)于響應(yīng)式布局,你必須要知道的

      前言

      響應(yīng)式Web設(shè)計(jì)可以讓一個(gè)網(wǎng)站同時(shí)適配多種設(shè)備和多個(gè)屏幕,可以讓網(wǎng)站的布局和功能隨用戶的使用環(huán)境(屏幕大小、輸入方式、設(shè)備/瀏覽器能力)而變化。本文主要介紹一些響應(yīng)式布局容易忽略但又很重要的知識(shí)點(diǎn)。

      視口

      移動(dòng)前端中常說的 viewport (視口)就是瀏覽器中用于呈現(xiàn)網(wǎng)頁的區(qū)域。視口通常并不等于屏幕大小,特別是可以縮放瀏覽器窗口的情況下。手機(jī)端與PC端視口存在差異,電腦端的視口寬度等于分辨率,而移動(dòng)端的視口寬度跟分辨率沒有關(guān)系,寬度默認(rèn)值是設(shè)備廠家指定的。iOS, Android基本都將這個(gè)視口分辨率設(shè)置為 980px。
      1.為什么手機(jī)端視口要設(shè)為980px?

      喬布斯設(shè)想:蘋果手機(jī)如果在市場上火爆了,但是各個(gè)網(wǎng)站還沒有來得及制作手機(jī)端網(wǎng)頁,那么用戶不得不用手機(jī)訪問電腦版的網(wǎng)頁,如何用小屏幕訪問大屏幕的頁面也同樣可讀呢?喬幫主就想著為手機(jī)固定一個(gè)視口寬度,讓手機(jī)的視口寬度等于世界上絕大多數(shù)PC網(wǎng)頁的版心寬度,就是980px。這樣,用手機(jī)訪問電腦版網(wǎng)頁的時(shí)候,旁邊剛好沒有留白。不過頁面縮放后文字會(huì)變得非常小,用戶需要手動(dòng)放大縮小才能看清楚,體驗(yàn)非常差。

      2.約束視口
      為了解決前面的問題,可以在網(wǎng)頁的中添加下面這行代碼:

      這個(gè)視口的標(biāo)簽告訴瀏覽器怎么渲染網(wǎng)頁。在這里,標(biāo)簽想表達(dá)的意思是:按照設(shè)備的寬度(device-width)來渲染網(wǎng)頁內(nèi)容。事實(shí)上,在支持這個(gè)標(biāo)簽的設(shè)備上給你看一看效果,你就明白了。

      不錯(cuò)呀!用戶體驗(yàn)大大改善!??!
      此時(shí)如果用document.documentElement.clientWidth來測試瀏覽器屏幕寬度,你會(huì)發(fā)現(xiàn)當(dāng)前視口寬度等于手機(jī)屏幕的寬度,約數(shù)后的視口寬度都是在320~480之間(手機(jī)豎直使用的時(shí)候)。
      這個(gè)視口的尺寸,是手機(jī)廠商設(shè)置的,能夠保證我們的文字比如16px,在自己的這個(gè)視口下清晰、大小剛剛合適。所以大屏幕的手機(jī)的約束視口 > 小屏幕手機(jī)的約束視口。這就能夠保證我們的網(wǎng)頁可以用px寫字號(hào)、寫行高。
      需要注意的是:約束之后的視口寬度,不是自己的分辨率?。∶總€(gè)手機(jī)的分辨率,都要比自己的視口寬度大得多得多!
      最最重要的一句話:前端開發(fā)工程師,絲毫不關(guān)心手機(jī)的分辨率,我們只關(guān)心視口。

      圖片

      人們常說說“一圖勝千言”,確實(shí)如此。我們網(wǎng)頁中關(guān)于松餅的文字介紹再多,也沒有圖片有吸引力。下面我們就在頁面上方添加一張松餅的圖片(2000像素寬),效果類似引誘用戶往下看的大題圖。

      哇,真是好大一張圖,它讓整個(gè)網(wǎng)頁看起來都失衡了,水平方向上圖片溢出了。不行,必須解決這個(gè)問題??梢杂肅SS給圖片指定固定寬度,但問題是我們想讓它能在不同大小的屏幕中自動(dòng)縮放。比如,我們例子中的iPhone屏幕寬度為320像素,如果我們把圖片設(shè)置成320像素寬,那么iPhone屏幕旋轉(zhuǎn)后又怎么辦呢?這時(shí)候320像素變成了480像素。
      解決方案很簡單,只要一行CSS代碼就可以讓圖片隨容器寬度自動(dòng)縮放:

      img {
      max-width: 100%;
      }

      回到手機(jī)上,刷新頁面,結(jié)果比較符合預(yù)期了。
      這里聲明max-width規(guī)則,就是要保證所有圖片最大顯示為其自身的100%(即最大只可以顯示為自身那么大)。此時(shí),如果包含圖片的元素(比如包含圖片的body或div)比圖片固有寬度小,圖片會(huì)縮放占滿最大可用空間。

      為什么不用width:100%?
      要實(shí)現(xiàn)圖片的自動(dòng)縮放,也可以使用更通用的 width 屬性,比如width:100%。然而,這條規(guī)則在這里并不適用。因?yàn)檫@條規(guī)則會(huì)導(dǎo)致它顯示得跟它的容器一樣寬。在容器比圖片寬得多的情況下,圖片會(huì)被無謂地拉伸。

      手機(jī)瀏覽器內(nèi)核

      在移動(dòng)端,僅有四個(gè)獨(dú)立的瀏覽器內(nèi)核,分別為微軟的Trident、火狐的Gecko、開源內(nèi)核Webkit、Opera的Presto。
      目前微軟的Trident在移動(dòng)終端上主要為WP7、8系統(tǒng)內(nèi)置瀏覽器。Opera的Presto內(nèi)核主要為 Opera Mobile、OperaMini、歐朋瀏覽器以及歐朋HD Beta版。Webkit內(nèi)核的適用范圍則較為廣泛,Android原生瀏覽器、蘋果的Safari、谷歌Chrome(Android4.0使用)都是基于Webkit開源內(nèi)核開發(fā)的。

      兼容的前綴:
      1 -ms-
      2 -moz-
      3 -o-
      4 -webkit-
      中國用戶的瀏覽器市場份額:

      近一年中國用戶的瀏覽器市場份額

      UC、Android內(nèi)置、Chrome、Safari、QQ Browser都是webkit內(nèi)核,從圖上看占了絕大部分的市場份額。
      所以一定要伺候好-webkit-。 有的公司干脆只兼容-webkit-,別的兼容比如-ms-都不寫。

      流式布局

      百分比布局也叫作流式布局、彈性盒布局。手機(jī)網(wǎng)頁沒有版心,都左右撐滿。
      百分比能夠設(shè)置的屬性是width、height、padding、margin。其他屬性比如border、font-size不能用百分比設(shè)置的。

      • 如果用百分比寫width,那么指的是父元素width的百分之多少。

      • 如果用百分比寫height,那么指的是父元素height的百分之多少。

      • 如果用百分比寫padding,那么指的是父元素width的百分之多少,無論是水平的padding還是豎直的padding。

      • 如果用百分比寫margin,那么指的是父元素width的百分之多少,無論是水平的margin還是豎直的margin。

      • 不能用百分比寫border的寬度

      接下來我們看一個(gè)例子:

      媒體查詢

      1.為什么響應(yīng)式 Web 設(shè)計(jì)需要媒體查詢
      CSS3媒體查詢可以讓我們針對(duì)特定的設(shè)備能力或條件為網(wǎng)頁應(yīng)用特定的CSS樣式。如果沒有媒體查詢,光用CSS是無法大大修改網(wǎng)頁外觀的。這個(gè)模塊讓我們可以提前編寫出適應(yīng)很多不可預(yù)測因素的CSS規(guī)則,比如屏幕方向水平或垂直、視口或大或小等等。彈性布局雖然可以讓設(shè)計(jì)適應(yīng)較多場景,也包括某些尺寸的屏幕,但有時(shí)候確實(shí)不夠用,因?yàn)槲覀冞€需要對(duì)布局進(jìn)行更細(xì)致的調(diào)整。媒體查詢讓這一切成為可能,它就相當(dāng)于CSS中基本的條件邏輯。

      2.媒體查詢語法
      我們?cè)诿襟w查詢外面寫的第一條規(guī)則,是“基本的”樣式,它適用于任何設(shè)備。在此基礎(chǔ)上,我們?cè)贋椴煌暱?、不同能力的設(shè)備,漸進(jìn)增加不同的視覺效果和功能。

      其中@media就表示媒體查詢,查詢現(xiàn)在看這個(gè)網(wǎng)頁的設(shè)備是什么,以及它的寬度是多少。screen表示看這個(gè)網(wǎng)頁的設(shè)備是顯示器,而不是殘疾人聽力設(shè)備、也不是打印機(jī)。后面用and符號(hào)羅列所有的可能性。
      值得注意:媒體查詢只能包裹選擇器,不能包裹k:v對(duì)兒。
      IE6、7、8不支持媒體查詢,也為了防止手機(jī)端的某些瀏覽器不支持媒體查詢,所以不要把所有的選擇器都放在媒體查詢里面。

      rem響應(yīng)式布局

      rem響應(yīng)式布局思想

      1. 一般不要給元素設(shè)置具體的寬度,但是對(duì)于一些小圖標(biāo)可以設(shè)定具體寬度值

      2. 高度值可以設(shè)置固定值,設(shè)計(jì)稿有多大,我們就嚴(yán)格寫多大

      3. 所有設(shè)置的固定值都用REM做單位(首先在HTML中設(shè)置一個(gè)基準(zhǔn)值:PX和REM的對(duì)應(yīng)比例,然后在效果圖上獲取PX值,布局的時(shí)候轉(zhuǎn)化為REM值)

      4. JS獲取真實(shí)屏幕的寬度,讓其除以設(shè)計(jì)稿的寬度,算出比例,把之前的基準(zhǔn)值按照比例進(jìn)行重新的設(shè)定,這樣項(xiàng)目就可以在移動(dòng)端自適應(yīng)了

      什么是rem,它與em有何區(qū)別

      rem:當(dāng)前頁面中元素的REM單位的樣式值都是針對(duì)于HTML元素的font-size的值進(jìn)行動(dòng)態(tài)計(jì)算的
      em:表示父元素的字號(hào)的倍數(shù)。(特例:在text-indent屬性中,表示文字寬度)

      body →font-size:20px;

      → font-size:2em; box1

      → font-size:2em; box2

      → font-size:2em; box3

      em為單位的時(shí)候,font-size屬性是計(jì)算后繼承,box1計(jì)算出來是40px。那么里面的box2、box3繼承的都是40px。em單位不僅僅可以用來設(shè)置字號(hào),還可以設(shè)置任何盒模型的屬性,比如width、height、padding、margin、border
      rem有一點(diǎn)優(yōu)勢(shì)就是可以和媒體查詢配合,實(shí)現(xiàn)響應(yīng)式布局:

      @media screen and (min-width: 320px) { html {font-size: 14px;} } @media screen and (min-width: 360px) { html {font-size: 16px;} } @media screen and (min-width: 400px) { html {font-size: 18px;} }

      運(yùn)用場景

      如果我們做的H5頁面只在移動(dòng)端訪問,這是因?yàn)镽EM不兼容低版本的瀏覽器。而如果移動(dòng)端和PC端公用一套代碼,建議使用流式布局。

      如何做個(gè)REM響應(yīng)式布局

      1、從UI設(shè)計(jì)師拿到PSD設(shè)計(jì)稿,然后在樣式中給HTML設(shè)定一個(gè)font-size的值,我們一般都設(shè)置一個(gè)方便后面計(jì)算的值,例如:100px

      html{
      font-size:100px;//1rem=100px
      }

      2、寫頁面,寫樣式
      首先按照設(shè)計(jì)稿的尺寸來寫樣式,然后在寫樣式值的時(shí)候,需要把得到的像素值除以100計(jì)算出對(duì)應(yīng)的REM的值。
      值得注意的是:真實(shí)項(xiàng)目中外層盒子的寬度我們一般還是不寫固定值,沿用流式布局法的思想,我們用百分比的方式布局

      margin:0 0.2rem
      height:3rem;

      3、根據(jù)當(dāng)前屏幕的寬度和設(shè)計(jì)稿的寬度來計(jì)算我們HTML的font-size的值
      例如:設(shè)計(jì)稿寬度為640px,其中有一個(gè)部分是輪播圖,它的尺寸是600*300,在樣式中給HTML設(shè)定一個(gè)font-size的值為100px,則輪播圖大小應(yīng)該為 6rem×3rem,那如果手機(jī)屏幕寬度為375px,其font-size應(yīng)該設(shè)置為多少。

      375/640*100->fontsize=58.59375//此時(shí)輪播圖能自適應(yīng)手機(jī)屏幕大小

      根據(jù)當(dāng)前屏幕寬度和設(shè)計(jì)稿寬度的比例,動(dòng)態(tài)計(jì)算一下當(dāng)前寬度下的fontsize值應(yīng)該是多少,如果fontsize的值改變了,之前設(shè)定的所有REM單位的值自動(dòng)會(huì)跟著放大或者縮小??梢酝ㄟ^以下這段代碼實(shí)現(xiàn):



      返回觀點(diǎn)列表
      本文標(biāo)簽:

      相關(guān)專題

      • 品牌官網(wǎng)設(shè)計(jì)
        品牌官網(wǎng)設(shè)計(jì)

        杭州派迪科技為高端客戶提供品牌官網(wǎng)咨詢策劃,品牌官網(wǎng)設(shè)計(jì),品牌官網(wǎng)建設(shè)開發(fā)服務(wù),以國際化視野和標(biāo)準(zhǔn)為基礎(chǔ),為各行業(yè)領(lǐng)軍品牌提供高端企業(yè)網(wǎng)站定制、策劃、設(shè)計(jì)、互動(dòng)與制作

        查看詳情
      • 大策略營銷門戶網(wǎng)站
        大策略營銷門戶網(wǎng)站

        杭州派迪科技有自己的營銷型網(wǎng)站CMS系統(tǒng),適合白帽SEO網(wǎng)站。特別對(duì)大策略的營銷型門戶網(wǎng)站制作有一定的經(jīng)驗(yàn),曾經(jīng)為上海天擎外貿(mào)行業(yè)網(wǎng)站、浙江兆龍營銷型門戶、先臨三維門戶營銷網(wǎng)站提供全程的技術(shù)支持及SEO優(yōu)化指導(dǎo)

        查看詳情
      • 集團(tuán)/上市公司網(wǎng)站
        集團(tuán)/上市公司網(wǎng)站

        杭州派迪科技為杭州本地集團(tuán)公司提供網(wǎng)頁設(shè)計(jì)、制作、開發(fā)服務(wù),為集團(tuán)公司網(wǎng)站建設(shè)提供了響應(yīng)式、營銷型、品牌型、門戶型網(wǎng)站建設(shè)需求,歡迎廣大集團(tuán)公司客戶咨詢

        查看詳情
      • 外貿(mào)網(wǎng)站建設(shè)
        外貿(mào)網(wǎng)站建設(shè)

        杭州派迪科技為高端客戶提供外貿(mào)網(wǎng)站咨詢策劃,外貿(mào)官網(wǎng)設(shè)計(jì),外貿(mào)官網(wǎng)建設(shè)開發(fā)服務(wù),以谷歌搜索引起算法為基礎(chǔ),為各行業(yè)外貿(mào)公司提供高端企業(yè)外貿(mào)網(wǎng)站定制、策劃、設(shè)計(jì)、互動(dòng)與制作

        查看詳情
      • 企業(yè)網(wǎng)站建設(shè)
        企業(yè)網(wǎng)站建設(shè)

        高端專業(yè)、令人印象深刻的用戶界面、易于訪問——企業(yè)網(wǎng)站必須反映一切,因?yàn)榕傻峡萍荚谶@里提供幫助,憑借精湛的技術(shù)、豐富的經(jīng)驗(yàn)、與客戶的持續(xù)溝通以及對(duì)每一個(gè)細(xì)節(jié)的關(guān)注,我們確保在快速的周期時(shí)間內(nèi)提供優(yōu)質(zhì)的服務(wù)。

        查看詳情
      • 半定制網(wǎng)站
        半定制網(wǎng)站

        杭州派迪科技模板網(wǎng)站建設(shè)專題_各行業(yè)方案專題欄目提供各行業(yè)產(chǎn)品適合的網(wǎng)站建設(shè)方案,幫助企業(yè)了解派迪科技建站效果等信息,您可以通過本站了解各行業(yè)網(wǎng)站建設(shè)方案,如需要獲取本行業(yè)定制網(wǎng)站建設(shè)方案,可以聯(lián)系在線客服或撥打電話咨詢

        查看詳情

      體驗(yàn)從溝通開始,讓我們聆聽您的需求!

      開始您的數(shù)字化品牌體驗(yàn)! 0571-85815193 期待您的來電!

      [ 網(wǎng)站建設(shè)×品牌官網(wǎng)設(shè)計(jì)×大策略營銷門戶×微信小程序開發(fā)×微信公眾號(hào)開發(fā)]

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      網(wǎng)站事業(yè)部產(chǎn)品經(jīng)理

      免費(fèi)獲取項(xiàng)目策劃

      項(xiàng)目開發(fā)部產(chǎn)品經(jīng)理

      項(xiàng)目開發(fā)部產(chǎn)品經(jīng)理

      免費(fèi)獲取項(xiàng)目策劃

      我們正使用 cookies 來改善您的訪問體驗(yàn)

      派迪科技非常重視您的個(gè)人隱私,當(dāng)您訪問我們的網(wǎng)站www.bmwdream.cn時(shí),請(qǐng)同意使用所有cookies 。

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookies請(qǐng)?jiān)L問我們的 《隱私政策》

      Cookie 偏好

      如果您想詳細(xì)了解我們?nèi)绾问褂胏ookie請(qǐng)?jiān)L問我們的 《隱私政策》

      管理cookie偏好

      基本 cookies

      始終允許

      這些 cookies 是網(wǎng)站運(yùn)行所必需的,不能在我們的系統(tǒng)中關(guān)閉。它們通常僅針對(duì)您所做的相當(dāng)于服務(wù)請(qǐng)求的操作而設(shè)置,例如設(shè)置您的隱私首選項(xiàng)、登錄或填寫表格。您可以將瀏覽器設(shè)置為阻止或提醒您有關(guān)這些 cookies 的信息,但網(wǎng)站的某些部分將無法運(yùn)行。這些 cookies 不存儲(chǔ)任何個(gè)人身份信息。

      性能 cookies

      始終允許
      這些 cookies 使我們能夠計(jì)算訪問量和流量來源,以便我們可以衡量和改進(jìn)我們網(wǎng)站的性能。它們幫助我們了解哪些頁面受歡迎和不受歡迎,并了解訪問者如何在網(wǎng)站上移動(dòng)。這些 cookies 收集的所有信息都是匯總的,而且是匿名的。如果您不允許這些 cookies,我們將不知道您何時(shí)訪問了我們的網(wǎng)站,也無法監(jiān)控其性能。

      功能性 cookies

      這些 cookies 收集信息用于分析和個(gè)性化您的定向廣告體驗(yàn)。您可以使用此撥動(dòng)開關(guān)來行使選擇不獲取個(gè)人信息的權(quán)利。如果您選擇關(guān)閉,我們將無法向您提供個(gè)性化廣告,也不會(huì)將您的個(gè)人信息交給任何第三方。

      定位 Cookies

      這些 cookies 可能由我們的廣告合作伙伴通過我們的網(wǎng)站設(shè)置。這些公司可能會(huì)使用它們來建立您的興趣檔案,并在其他網(wǎng)站上向您展示相關(guān)廣告。它們不直接存儲(chǔ)個(gè)人信息,而是基于唯一標(biāo)識(shí)您的瀏覽器和互聯(lián)網(wǎng)設(shè)備。如果您不允許使用這些 cookie,您將體驗(yàn)到較少針對(duì)性的廣告。
      • <ul id="k6mek"><pre id="k6mek"></pre></ul>
        <ul id="k6mek"></ul>
        <ul id="k6mek"></ul>
      • <blockquote id="k6mek"><fieldset id="k6mek"></fieldset></blockquote>
      • <samp id="k6mek"><tbody id="k6mek"></tbody></samp><ul id="k6mek"><tbody id="k6mek"></tbody></ul>
        <th id="k6mek"></th>
      • <samp id="k6mek"></samp>