響應式布局&自適應布局

首先兩種的方式的解決問題是不一樣的弄贿。

寬度自適應

是為了解決如何才能在不同大小的設備上呈現(xiàn)相同的網(wǎng)頁瓮顽。手機的屏幕比較小翔横,寬度通常在500像素以下癞谒,pc的像素一般在1000像素以上藤滥。因此就有人想出了一個辦法鳖粟,能不能"一次設計,普遍適用"拙绊,讓同一張網(wǎng)頁自動適應不同大小的屏幕牺弹,根據(jù)屏幕的寬度,自動調(diào)節(jié)網(wǎng)頁的內(nèi)容大小时呀,但是無論怎么樣子张漂,他們的主體的內(nèi)容和布局沒有變化。核心是使用rem代替絕對單位px谨娜。

自適應還是暴露出一個問題航攒,如果屏幕太小,即使網(wǎng)頁能夠根據(jù)屏幕大小進行適配趴梢,但是會感覺在小屏幕上查看漠畜,內(nèi)容過于擁擠,響應式正是為了解決這個問題而衍生出來的概念坞靶。它可以自動識別屏幕寬度憔狞、并做出相應調(diào)整的網(wǎng)頁設計,布局和展示的內(nèi)容可能會有所變動彰阴。

響應式Web設計

讓一個網(wǎng)站同時適配多種設備和多個屏幕瘾敢,可以讓網(wǎng)站的布局和功能隨用戶的使用環(huán)境(屏幕大小、輸入方式尿这、設備/瀏覽器能力)而變化簇抵。核心是使用媒體查詢相對于視口大小應用CSS規(guī)則。

響應式的概念應該覆蓋了自適應(因為可以使用rem代替絕對單位px+媒體查詢)射众,而且涵蓋的內(nèi)容更多碟摆。

自適應實現(xiàn)方式

1. 首先在網(wǎng)頁代碼的頭部,加入一行viewport元標簽叨橱。

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

viewport是網(wǎng)頁默認的寬度和高度典蜕,上面這行代碼的意思是断盛,網(wǎng)頁寬度默認等于屏幕寬度(width=device-width),原始縮放比例(initial-scale=1)為1.0愉舔,即網(wǎng)頁初始大小占屏幕面積的100%郑临。

2. 使用rem代替絕對單位px

動態(tài) rem是針對移動端頁面的適配方法。例如手機淘寶 在移動端寬度不適合再用固定寬度px屑宠,我們希望整體等比縮放。

rem是CSS3新增的一個相對單位(root em仇让,根em)典奉,相對的只是HTML根元素(1rem=html font size)。通過它既可以做到只修改根元素就成比例地調(diào)整所有字體大小丧叽,又可以避免字體大小逐層復合的連鎖反應(em也是相對長度單位卫玖,但會繼承父級元素的字體大小)踊淳。

注意:rem是相對于根節(jié)點html的font-size的倍數(shù)假瞬,瀏覽器對font-size值有限制,一般font-size最小值默認為12迂尝。

動態(tài)rem方案

  1. meta:vp禁止縮放
    <meta name="viewport" content="width=device-width, height=device-height, inital-scale=1.0, maximum-scale=1.0, user-scalable=no;" />
  2. document.documentElement.clientWidth動態(tài)獲取頁面寬度width
  3. 賦給html的font-size脱茉,即拼接成html{font-size:'+ width/10 +'px;}
  4. 10rem==頁面寬度width
  5. 所有單位都用rem == 所有長度都以頁面的寬度為基準
    示例

3. 使用視口單位(Viewport units) vw/vh

rem單位來實現(xiàn)適配,但是它還需要內(nèi)嵌一段腳本去動態(tài)計算跟元素大小垄开。
那有沒有一個單位不需要JS和CSS耦合在一起的單位琴许?答案是有的,就是vw/vh溉躲。

視口單位(Viewport units)

視口單位中的“視口”榜田,桌面端指的是瀏覽器的可視區(qū)域;移動端指的就是Viewport中的Layout Viewport锻梳。

單位 解釋
vw 1vw = 視口寬度的1%
vh 1vh = 視口高度的1%
vmin 選取vw和vh中最小的那個
vmax 選取vw和vh中最大的那個

vh/vw與%區(qū)別

vh/vw與%區(qū)別在于:

單位 依賴于
% 元素的祖先元素
vh/vw 視口的尺寸

自適應基礎上的響應式頁面

3. 媒體查詢

目前一般常見的實現(xiàn)響應式有兩種方法箭券,一種是利用媒體查詢,另外一種是bootstrap下的柵格布局疑枯。

媒體查詢辩块,即 @media 查詢,可以針對不同的屏幕尺寸設置不同的樣式荆永,當你重置瀏覽器大小的過程中庆捺,頁面也會根據(jù)瀏覽器的寬度和高度重新渲染頁面。

媒體查詢示例

如果頁面寬度小于 300 像素,則修改body的背景顏色為紅色:

@media screen and (max-width: 300px) {
    body {
         background-color:red;
    }
}

如果頁面寬度大于 300 像素并且小于600像素屁魏,則修改body的背景顏色為綠色:

@media screen and (min-width: 300px) and (max-width:600px) {
    body {
         background-color:green;
    }
}

如果頁面寬度大于 600 像素滔以,則修改body的背景顏色為藍色:

@media screen and (min-width: 600px) {
    body {
         background-color:blue;
    }
}

還有一種響應式是使用絕對寬度px + 媒體查詢,那么對于寬度不同的手機氓拼,顯示頁面內(nèi)容的寬度仍然一樣你画,內(nèi)容居中抵碟,只是兩邊留白寬度不同。

4. 使用Flex彈性布局

布局的傳統(tǒng)解決方案坏匪,基于盒狀模型拟逮,依賴 display屬性 + position屬性 + float屬性。

Flex是Flexible Box的縮寫适滓,意為”彈性布局”敦迄,用來為盒狀模型提供最大的靈活性∑炯#可以簡便罚屋、完整、響應式地實現(xiàn)各種頁面布局嗅绸。
具體用法

一個使用rem實現(xiàn)自適應+媒體查詢實現(xiàn)響應式+使用Flex彈性布局的例子

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脾猛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子鱼鸠,更是在濱河造成了極大的恐慌猛拴,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚀狰,死亡現(xiàn)場離奇詭異愉昆,居然都是意外死亡,警方通過查閱死者的電腦和手機麻蹋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進店門撼唾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人哥蔚,你說我怎么就攤上這事倒谷。” “怎么了糙箍?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵渤愁,是天一觀的道長。 經(jīng)常有香客問我深夯,道長抖格,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任咕晋,我火速辦了婚禮雹拄,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘掌呜。我一直安慰自己滓玖,他們只是感情好,可當我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布质蕉。 她就那樣靜靜地躺著势篡,像睡著了一般翩肌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禁悠,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天念祭,我揣著相機與錄音,去河邊找鬼碍侦。 笑死粱坤,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瓷产。 我是一名探鬼主播站玄,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拦英!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起测秸,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤疤估,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后霎冯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铃拇,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年沈撞,在試婚紗的時候發(fā)現(xiàn)自己被綠了慷荔。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡缠俺,死狀恐怖显晶,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情壹士,我是刑警寧澤磷雇,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站躏救,受9級特大地震影響唯笙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盒使,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一崩掘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧少办,春花似錦苞慢、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽皮假。三九已至,卻和暖如春骂维,著一層夾襖步出監(jiān)牢的瞬間惹资,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工航闺, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留褪测,地道東北人。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓潦刃,卻偏偏與公主長得像侮措,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子乖杠,可洞房花燭夜當晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容