五闷串、響應(yīng)式布局

1筋量、什么是響應(yīng)式布局 Responsive Design

我們開(kāi)發(fā)的頁(yè)面在不同設(shè)備上都能良好展示,常用的設(shè)備:pc肋拔、平板凉蜂、手機(jī)、ipod ...

2茎杂、meta便簽中的viewport:

在PC端煌往,一個(gè)頁(yè)面的寬度(HTML的寬度)與瀏覽器的可視窗口寬度是一致的轧邪,且PC端的瀏覽器我們可以調(diào)節(jié)大小,手機(jī)端的瀏覽器和手機(jī)的寬度是保持一致的曾棕,且一般情況下不能調(diào)節(jié)大小菜循。移動(dòng)端HTML頁(yè)面的寬度和瀏覽器(或者手機(jī))的寬度沒(méi)有必然的聯(lián)系癌幕,一般HTML的寬度都是980/1024寬度
我們平時(shí)用手機(jī)瀏覽器訪問(wèn)一個(gè)pc端HTML頁(yè)面,發(fā)現(xiàn)內(nèi)容都縮小了:就是因?yàn)槭謾C(jī)只有320寬度昧穿,但是頁(yè)面的寬度確有980,這樣如果把一個(gè)頁(yè)面都要看全的話胶逢,只能縮小大概三倍左右

=>解決方案
HTML的寬度應(yīng)該和手機(jī)保持一致初坠,這樣的話就不會(huì)縮小了彭雾,這樣的話我們需要給HTML頁(yè)面設(shè)置一個(gè)META標(biāo)簽:

<meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"/>
  • viewport:視口,設(shè)置當(dāng)前瀏覽器按照多大的寬度來(lái)渲染頁(yè)面(或者說(shuō)讓HTML頁(yè)面有多寬)
  • width=device-width 設(shè)置一個(gè)HTML頁(yè)面的總寬度和設(shè)備的寬度(手機(jī)的寬度)保持一致
  • user-scalable=no 禁止用戶手動(dòng)縮放
  • initial-scale=1.0 / maximum-scale=1.0 / minimum-scale=1.0:設(shè)置頁(yè)面的初始(最大薯酝、最小)縮放比例都是1:1的(既不放大也不縮小)

以后只要是做移動(dòng)端的產(chǎn)品(只要頁(yè)面需要在手機(jī)上訪問(wèn)),這個(gè)meta 必須要加

layout viewport:布局視口(我們?cè)O(shè)定的就是它)
visual viewport
ideal viewport
詳情見(jiàn):http://www.cnblogs.com/2050/p/3877280.html


3者填、媒體查詢@media

我們按照上述的原理,增加了viewport穴亏,頁(yè)面內(nèi)容不縮小了嗓化,但是出現(xiàn)了橫向的滾動(dòng)條谬哀,why?
=>原因
HTML的寬度:320(頁(yè)面寬度320)
但是它里面文章article(內(nèi)容)卻有800的寬度,屬于內(nèi)容超出谦屑,所以出現(xiàn)了橫向的滾動(dòng)條
=>解決
article的寬度和html的寬度保持一致氢橙,不讓內(nèi)容超出頁(yè)面悍手,但是這樣的設(shè)置需要在HTML的寬度小于800PX的時(shí)候在設(shè)置袍患,大于800的時(shí)候(PC),我們寫固定的樣式值也沒(méi)有問(wèn)題(內(nèi)容不會(huì)超出)滞欠,這時(shí)就需要查詢?cè)O(shè)備寬度() =>"媒體查詢@media"

媒體設(shè)備:

all ->所有設(shè)備
screen ->所有屏幕設(shè)備(PC筛璧、PAD惹恃、PHONE...)
print ->打印機(jī)設(shè)備
...

媒體條件:

width:800px HTML的寬度為800PX
max-width:800px HTML的寬度小于等于800PX
min-width:320px HTML的寬度大于等于320PX
device-width:設(shè)備寬度
max-device-width
min-device-width
orientation:landscape(橫屏) | portrait(豎屏)
-webkit-device-pixel-ratio:屏幕像素密度比

@media all and (max-width:800px) and (min-width:640px){
   符合該媒體查詢條件的設(shè)備執(zhí)行這里面的樣式
   .article{}
}

@media screen and (orientation:landscape){

}

@media screen and (-webkit-device-pixel-ratio:2){

}

總結(jié):
1座舍、增加viewport
2、使用媒體查詢疲牵,在指定的條件下調(diào)整樣式
對(duì)于外層容器來(lái)說(shuō)纲爸,不能設(shè)置具體的寬度了,需要使用百分比
其余的樣式都是寫具體的值识啦,如果在某一個(gè)尺寸感覺(jué)不太方便閱讀颓哮,我們?cè)谑褂妹襟w查詢細(xì)微調(diào)整即可
=>這種響應(yīng)式布局方案就是“流式布局法(媒體查詢法)” 核心:寬度不固定(百分比)鸵荠,其余都固定蛹找,不好在調(diào)整


4、項(xiàng)目中的移動(dòng)端產(chǎn)品形態(tài)

->PC端和移動(dòng)端用的是同一套產(chǎn)品:

1)流式布局
2)先按照PC端寫乍楚,寬度可以寫死届慈,也可以寫成百分比
3)在手機(jī)端使用@media在一點(diǎn)點(diǎn)的調(diào)整

->PC端和移動(dòng)端用的是不同的產(chǎn)品,PC端一套,移動(dòng)端是單獨(dú)的一套:

1)PC端做的時(shí)候不需要考慮響應(yīng)式(所有的尺寸按照設(shè)計(jì)稿寫死即可)
2)移動(dòng)端的項(xiàng)目需要做響應(yīng)式適應(yīng)不同的手機(jī)拧篮,但是不需要考慮PC了(有些公司會(huì)針對(duì)pad在出一套),可用rem布局或或流式布局
->流式布局:
->REM


5、移動(dòng)端設(shè)計(jì)稿一般都是多大的芜壁?

640960 ->iphone4 (320480)
6401136 ->iphone5 (320568)
7501334 ->iphone6 (375667)

給我們的設(shè)計(jì)稿都是比真實(shí)的手機(jī)尺寸擴(kuò)大二倍來(lái)做的(高度可以忽略不管顷牌,但是寬度必須是640或者750)

DPR適配:屏幕像素密度比
目前大部分手機(jī)的屏幕像素密度比都是2倍/3倍的在二倍或者更高倍數(shù)的屏幕像素密度比例下塞淹,我們?nèi)庋劭吹降母忧逦?br> iphone3 :320480 分辨率 320480
iphone4 :320480 分辨率 640960


6、三種響應(yīng)式布局

設(shè)計(jì)師給我們一個(gè)設(shè)計(jì)稿:640*960

  • ->流式布局法:
    1)寬度百分比自適應(yīng)的
    2)其余的尺寸都按照設(shè)計(jì)稿中的尺寸的一半來(lái)寫运挫,假設(shè):設(shè)計(jì)稿中 高度是100px谁帕,字體大小是36PX,邊框是2PX 我們寫的時(shí)候?qū)懀?box{ height:50px; font-size:18px; border:1px solid red; ... }

    問(wèn)題:
    設(shè)計(jì)師設(shè)計(jì)的尺寸不應(yīng)該出現(xiàn)奇數(shù)
    “一像素邊框問(wèn)題”:設(shè)計(jì)師設(shè)計(jì)的邊框大小是1PX碾牌,我們布局的時(shí)候?qū)?5PX舶吗,瀏覽器不支持半像素的裤翩,如何處理调榄? => transform:scale(0.5)

  • ->等比縮放布局(已經(jīng)被PASS了)
    我們布局的時(shí)候嚴(yán)格按照設(shè)計(jì)稿的尺寸來(lái)寫每庆,例如:設(shè)計(jì)稿中是 300*100 F:36 M:20我們寫的時(shí)候

.box{
   width:300px;
   height:100px;
   font-size:36px;
   margin:20px;
   ...
}
JS:
var winW=document.documentElement.clientWidth;
var n=winW/640; //->0.5 或者其他的比例
document.body.style.transform='scale('+n+')';
  • ->REM(等比縮放思想的升級(jí)和目前最流行的響應(yīng)式布局方式)

PX:固定單位缤灵,我們寫多大的值腮出,以后不管當(dāng)前頁(yè)面有多寬多高,它依然是這樣的值作儿;如果想要它改變的化馋劈,我們需要手動(dòng)一個(gè)個(gè)的去調(diào)整

REM:相對(duì)單位妓雾,相對(duì)于當(dāng)前頁(yè)面根元素(HTML)字體大小設(shè)定的械姻,例如:

  html{
     font-size:12px; //->1REM = 12PX  一個(gè)頁(yè)面默認(rèn)根元素字體大小16PX(谷歌)
  }

  .box{
     width:10rem; //->120PX
  }

以后只要我們改變HTML的font-size,所有以REM為單位的值都會(huì)跟著改


7绣夺、真實(shí)項(xiàng)目中如何使用REM做響應(yīng)式布局開(kāi)發(fā):

設(shè)計(jì)稿:640*960
1乐导、不管以后在什么樣的手機(jī)上運(yùn)行物臂,我們只需要嚴(yán)格按照設(shè)計(jì)稿中標(biāo)注的尺寸來(lái)開(kāi)發(fā)即可
->設(shè)置HTML的font-size:100px =>1REM=100PX =>640的設(shè)計(jì)稿中是這樣換算比例
->設(shè)計(jì)稿中的尺寸是多大棵磷,我們布局的時(shí)候就寫多大,但是需要把所有量出來(lái)的PX都除以100變換成REM為單位的值

2沉桌、在JS中獲取當(dāng)前手機(jī)寬度留凭,例如獲取的是320PX
640 1rem->100PX
320 1rem->(320/640*100) px
根據(jù)屏幕和設(shè)計(jì)稿的比例蔼夜,動(dòng)態(tài)計(jì)算出最新的REM和PX的換算比例即可求冷,重新設(shè)置HTML的font-size匠题,這樣就讓所有以REM為單位的值都跟著改變了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末韭山,一起剝皮案震驚了整個(gè)濱河市掠哥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌菠净,老刑警劉巖毅往,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異攀唯,居然都是意外死亡洁桌,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門侯嘀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)另凌,“玉大人,你說(shuō)我怎么就攤上這事戒幔》托唬” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵诗茎,是天一觀的道長(zhǎng)工坊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)敢订,這世上最難降的妖魔是什么王污? 我笑而不...
    開(kāi)封第一講書人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任司浪,我火速辦了婚禮,結(jié)果婚禮上租谈,老公的妹妹穿的比我還像新娘。我一直安慰自己呻逆,他們只是感情好茬腿,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布悴品。 她就那樣靜靜地躺著夸研,像睡著了一般悼沈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,578評(píng)論 1 305
  • 那天恬惯,我揣著相機(jī)與錄音浓恳,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沾凄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播温鸽,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼榆芦!你這毒婦竟也來(lái)了什黑?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年摸恍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了媚媒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蛙卤,死狀恐怖已维,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布厌秒,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏笛洛。R本人自食惡果不足惜狱杰,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一千埃、第九天 我趴在偏房一處隱蔽的房頂上張望耀里。 院中可真熱鬧织堂,春花似錦拒课、人聲如沸卢鹦。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間舞骆,已是汗流浹背绪穆。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工遇绞, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留澜汤,地道東北人徽诲。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓砍濒,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親柳洋。 傳聞我的和親對(duì)象是個(gè)殘疾皇子测蹲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

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