媒體查詢·rem布局

1寄纵、響應(yīng)式頁面概述

1.1 響應(yīng)式頁面

用chrome瀏覽器來模擬手機(jī)端的瀏覽效果,可以看到手機(jī)端和電腦端訪問同一個網(wǎng)頁時,都能獲得比較好的瀏覽體驗肖揣。

也就是說痹筛,一套代碼可以同時適應(yīng)多個設(shè)備开泽。這樣的網(wǎng)頁就是響應(yīng)式網(wǎng)頁。這樣的網(wǎng)頁口四,就是基于媒體查詢實現(xiàn)的孵运。

特別注意的是,我們訪問同一個網(wǎng)站的地址窃祝,用手機(jī)可以正常瀏覽掐松,用電腦也可以正常瀏覽,這并不一定就是響應(yīng)式頁面粪小,它只是針對終端設(shè)備的不同,展示了兩套代碼而已抡句。響應(yīng)式頁面強(qiáng)調(diào)的是一套代碼探膊。

2、媒體查詢

通過媒體查詢待榔,我們讓css檢測到瀏覽器視窗的展示尺寸逞壁,然后根據(jù)不同的瀏覽器視窗尺寸設(shè)置不同的樣式,進(jìn)而實現(xiàn)了同一套代碼適應(yīng)不同設(shè)備的功能锐锣。

2.1 max-width

媒體查詢是CSS3中增加的新特性腌闯,可以使用@media來定義不同的條件和樣式,窗口尺寸(或設(shè)備尺寸)滿足指定條件的時候才會應(yīng)用指定的樣式雕憔,實例代碼如下所示姿骏。

<!DOCTYPE html>

<htmllang="en">

<head><meta? charset="UTF-8">

<meta name="viewport"content="width=device-width, initial-scale=1.0"><metahttp-equiv="X-UA-Compatible"content="ie=edge"><title>Document</title>

<style>

.box{

width:200px;

height:200px;

background-color:red;

}

/* 小于指定寬度,樣式生效 */

@media screen and (max-width:600px){

.box{background-color:blue;}

}

</style>

</head>

<body>

<divclass="box"></div>

</body>

</html>

全屏打開瀏覽器的時候(PC端的瀏覽方式)斤彼,我們可以看到div元素的背景色為紅色分瘦,當(dāng)我們將瀏覽器的窗口縮小(移動端的瀏覽方式)琉苇,當(dāng)瀏覽器尺寸寬度小于600px的時候嘲玫,元素的背景色會變成藍(lán)色,這就是利用媒體查詢實現(xiàn)的最基本的響應(yīng)式頁面并扇,同一個文件去团,在不同設(shè)備上呈現(xiàn)著不同的樣式。

max-width定義的就是標(biāo)準(zhǔn)穷蛹,符合標(biāo)準(zhǔn)就會讓下面的樣式生效土陪,max-width這個標(biāo)準(zhǔn)的意思就是:小于指定寬度,樣式生效俩莽。

2.2 min-width

同樣旺坠,我們也可以定義“大于指定寬度,樣式生效”扮超,實例代碼如下所示取刃。

@media screen and(min-width:600px){

.box{

background-color:blue;

}

}

上述代碼與demo01的效果剛好相反蹋肮,PC端呈現(xiàn)藍(lán)色,移動端呈現(xiàn)紅色璧疗,min-width的意思是:大于指定寬度坯辩,樣式生效。

2.3 多個標(biāo)準(zhǔn)

我們也可以給一個媒體查詢定義多個標(biāo)準(zhǔn)崩侠,實例代碼如下所示漆魔。

@media screen and(min-width:600px)and(max-width:900px){

.box{

background-color:blue;

}

}

窗口大于600px并且小于900px的時候,樣式生效却音,我們可以將瀏覽器窗口由大到小的收縮改抡,可以看到元素顏色變化了兩次。

3系瓢、響應(yīng)式頁面

利用媒體查詢實現(xiàn)一個響應(yīng)式的頁面效果阿纤,讓其在PC端可以顯示一個橫線列表,在手機(jī)端可以顯示沖向列表

4夷陋、響應(yīng)式頁面的缺點

在真實項目開發(fā)中欠拾,響應(yīng)式頁面并不常用,主要是因為一下幾點骗绕。

為終端定制的頁面藐窄,用戶體驗更好。

響應(yīng)式頁面代碼量會增多酬土,影響網(wǎng)頁性能荆忍。

網(wǎng)頁后期維護(hù)成本增加。

除非網(wǎng)頁具備以下特點:

網(wǎng)頁本身并不復(fù)雜诺凡。

對用戶體驗要求不高东揣。

希望多終端訪問,又希望降低開發(fā)成本腹泌。

就可以選擇響應(yīng)式頁面了嘶卧。

1、移動端頁面布局概述

PC端頁面的網(wǎng)頁重構(gòu)凉袱,我們使用最多的單位是px芥吟。因為在PC端,大部分頁面效果我們都可以設(shè)置成固定尺寸专甩,

但是在手機(jī)端钟鸵,這種方案是不可行的,我們必須要按照百分比呈現(xiàn)頁面涤躲,才能保證網(wǎng)頁在任何設(shè)備上可以正常顯示棺耍。

為了實現(xiàn)這樣的功能,我們可以將所有的尺寸都設(shè)置成百分比种樱,但是這樣會給前端開發(fā)帶來大量的計算工作蒙袍。

為了實現(xiàn)百分比的效果俊卤,又能省去大量的計算工作,我們使用rem布局害幅。

2消恍、rem概述

rem是CSS3中新增的單位,我們現(xiàn)在回顧和對比一下css中的常用的單位:

px

em

rem

單位em和rem的區(qū)別

em是一個相對單位以现,它參照的是父級元素的font-size值狠怨。

rem也是一個相對的單位,它參照的是html元素的font-size值邑遏。

3佣赖、rem布局

rem的參照物是html元素的font-size屬性,那么如果html的font-size屬性不變的話记盒,我們使用的rem單位仍然是一個固定的單位茵汰,所以我們需要做的是讓html元素的font-size屬性在不同的設(shè)備中設(shè)置不同的值,這就需要一段js代碼了孽鸡,代碼如下所示(fontsizeset.js)

(function(doc,win){vardocEl=doc.documentElement,resizeEvt='orientationchange'inwindow?'orientationchange':'resize',recalc=function(){varclientWidth=docEl.clientWidth;if(!clientWidth)return;docEl.style.fontSize=100*(clientWidth/720)+'px';};if(!doc.addEventListener)return;win.addEventListener(resizeEvt,recalc,false);doc.addEventListener('DOMContentLoaded',recalc,false);})(document,window);

我們并不需要理解上面的這段代碼是如何執(zhí)行的,只需要知道這段代碼可以檢測設(shè)備的尺寸栏豺,并通過設(shè)備的尺寸設(shè)置html元素的font-size值彬碱,這個font-size值會根據(jù)設(shè)備尺寸的變化而變化,這樣我們設(shè)置相同的rem值奥洼,就會起到百分比的作用了巷疼。

在上面的代碼中,我們將div的寬和高都設(shè)置成了3.6rem灵奖,用瀏覽器打開嚼沿,發(fā)現(xiàn)元素寬度與高度相同,并且寬度始終是窗口寬度的50%瓷患。這說明rem布局與百分比布局能實現(xiàn)相同的效果骡尽。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市擅编,隨后出現(xiàn)的幾起案子攀细,更是在濱河造成了極大的恐慌,老刑警劉巖爱态,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谭贪,死亡現(xiàn)場離奇詭異,居然都是意外死亡锦担,警方通過查閱死者的電腦和手機(jī)俭识,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洞渔,“玉大人套媚,你說我怎么就攤上這事缚态。” “怎么了凑阶?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵猿规,是天一觀的道長。 經(jīng)常有香客問我宙橱,道長姨俩,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任师郑,我火速辦了婚禮环葵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘宝冕。我一直安慰自己张遭,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布地梨。 她就那樣靜靜地躺著菊卷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宝剖。 梳的紋絲不亂的頭發(fā)上洁闰,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機(jī)與錄音万细,去河邊找鬼扑眉。 笑死,一個胖子當(dāng)著我的面吹牛赖钞,可吹牛的內(nèi)容都是我干的腰素。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼雪营,長吁一口氣:“原來是場噩夢啊……” “哼弓千!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起卓缰,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤计呈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后征唬,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捌显,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年总寒,在試婚紗的時候發(fā)現(xiàn)自己被綠了扶歪。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖善镰,靈堂內(nèi)的尸體忽然破棺而出妹萨,到底是詐尸還是另有隱情,我是刑警寧澤炫欺,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布乎完,位于F島的核電站,受9級特大地震影響品洛,放射性物質(zhì)發(fā)生泄漏树姨。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一桥状、第九天 我趴在偏房一處隱蔽的房頂上張望帽揪。 院中可真熱鬧,春花似錦辅斟、人聲如沸转晰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽查邢。三九已至,卻和暖如春酵幕,著一層夾襖步出監(jiān)牢的瞬間侠坎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工裙盾, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人他嫡。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓番官,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钢属。 傳聞我的和親對象是個殘疾皇子徘熔,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

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