移動(dòng) web 開發(fā) —— 流式布局


1.0 移動(dòng)端基礎(chǔ)

1.1 瀏覽器現(xiàn)狀

PC 端常見瀏覽器:360 瀏覽器、谷歌瀏覽器圆兵、火狐瀏覽器跺讯、QQ 瀏覽器、百度瀏覽器殉农、搜狗瀏覽器刀脏、IE 瀏覽器。

移動(dòng)端常見瀏覽器:UC 瀏覽器超凳,QQ 瀏覽器愈污,歐朋瀏覽器,百度手機(jī)瀏覽器聪建,360 安全瀏覽器钙畔,谷歌瀏覽器,搜狗手機(jī)瀏覽器金麸,獵豹瀏覽器擎析,以及其他雜牌瀏覽器。

國(guó)內(nèi)的 UC 和 QQ,百度等手機(jī)瀏覽器都是根據(jù) Webkit 修改過(guò)來(lái)的內(nèi)核揍魂,國(guó)內(nèi)尚無(wú)自主研發(fā)的內(nèi)核桨醋,就像國(guó)內(nèi)的手機(jī)操作系統(tǒng)都是基于 Android 修改開發(fā)的一樣。

總結(jié):兼容移動(dòng)端主流瀏覽器现斋,處理 Webkit 內(nèi)核瀏覽器即可喜最。

1.2 手機(jī)屏幕的現(xiàn)狀

  • 移動(dòng)端設(shè)備屏幕尺寸非常多,碎片化嚴(yán)重庄蹋。

  • Android 設(shè)備有多種分辨率:480x800, 480x854, 540x960, 720x1280瞬内,1080x1920 等,還有傳說(shuō)中的 2K限书,4k 屏虫蝶。

  • 近年來(lái) iPhone 的碎片化也加劇了,其設(shè)備的主要分辨率有:640x960, 640x1136, 750x1334, 1242x2208 等倦西。

  • 作為開發(fā)者無(wú)需關(guān)注這些分辨率能真,因?yàn)槲覀兂S玫某叽鐔挝皇?px 。

1.3 常見移動(dòng)端屏幕尺寸

1.4 移動(dòng)端調(diào)試方法

  • Chrome DevTools(谷歌瀏覽器)的模擬手機(jī)調(diào)試

  • 搭建本地 Web 服務(wù)器扰柠,手機(jī)和服務(wù)器一個(gè)局域網(wǎng)內(nèi)粉铐,通過(guò)手機(jī)訪問(wèn)服務(wù)器

  • 使用外網(wǎng)服務(wù)器,直接 IP 或域名訪問(wèn)


2.0 視口

視口(viewport)就是瀏覽器顯示頁(yè)面內(nèi)容的屏幕區(qū)域卤档。 視口可以分為布局視口蝙泼、視覺視口和理想視口

2.1 布局視口 layout viewport

一般移動(dòng)設(shè)備的瀏覽器都默認(rèn)設(shè)置了一個(gè)布局視口,用于解決早期的 PC 端頁(yè)面在手機(jī)上顯示的問(wèn)題裆装。

iOS,Android 基本都將這個(gè)視口分辨率設(shè)置為 980px踱承,所以 PC 上的網(wǎng)頁(yè)大多都能在手機(jī)上呈現(xiàn),只不過(guò)元素看上去很小哨免,一般默認(rèn)可以通過(guò)手動(dòng)縮放網(wǎng)頁(yè)茎活。

2.2 視覺視口 visual viewport

字面意思,它是用戶正在看到的網(wǎng)站的區(qū)域琢唾。注意:是網(wǎng)站的區(qū)域载荔。

我們可以通過(guò)縮放去操作視覺視口,但不會(huì)影響布局視口采桃,布局視口仍保持原來(lái)的寬度懒熙。

2.3 理想視口 ideal viewport

為了使網(wǎng)站在移動(dòng)端有最理想的瀏覽和閱讀寬度而設(shè)定

理想視口,對(duì)設(shè)備來(lái)講普办,是最理想的視口尺寸

需要手動(dòng)添寫 meta 視口標(biāo)簽通知瀏覽器操作

meta 視口標(biāo)簽的主要目的:布局視口的寬度應(yīng)該與理想視口的寬度一致工扎,簡(jiǎn)單理解就是設(shè)備有多寬,我們布局的視口就多寬

總結(jié):我們開發(fā)最終會(huì)用理想視口衔蹲,而理想視口就是將布局視口的寬度修改為視覺視口

2.4 meta 標(biāo)簽

最標(biāo)準(zhǔn)的 viewport 設(shè)置

  • 視口寬度和設(shè)備保持一致

  • 視口的默認(rèn)縮放比例 1.0

  • 不允許用戶自行縮放

  • 最大允許的縮放比例 1.0

  • 最小允許的縮放比例 1.0


3.0 二倍圖

3.1 物理像素 & 物理像素比

物理像素點(diǎn)指的是屏幕顯示的最小顆粒肢娘,是物理真實(shí)存在的。這是廠商在出廠時(shí)就設(shè)置好了,比如蘋果6 是 750* 1334

我們開發(fā)時(shí)候的 1px 不是一定等于 1 個(gè)物理像素的

一個(gè) px 的能顯示的物理像素點(diǎn)的個(gè)數(shù)橱健,稱為物理像素比或屏幕像素比

如果把 1 張 100*100 的圖片放到手機(jī)里面會(huì)按照物理像素比給我們縮放

lRetina(視網(wǎng)膜屏幕)是一種顯示技術(shù)而钞,可以將把更多的物理像素點(diǎn)壓縮至一塊屏幕里,從而達(dá)到更高的分辨率拘荡,并提高屏幕顯示的細(xì)膩程度臼节。

對(duì)于一張 50px * 50px 的圖片,在手機(jī)或 Retina 屏中打開,按照剛才的物理像素比會(huì)放大倍數(shù)珊皿,這樣會(huì)造成圖片模糊

在標(biāo)準(zhǔn)的 viewport 設(shè)置中网缝,使用倍圖來(lái)提高圖片質(zhì)量,解決在高清設(shè)備中的模糊問(wèn)題

通常使用二倍圖亮隙, 因?yàn)?iPhone 6 的影響背景圖片 注意縮放問(wèn)題

3.2 背景縮放 background-size

background-size 屬性規(guī)定背景圖像的尺寸

background-size: 背景圖片寬度 背景圖片高度;

單位: 長(zhǎng)度|百分比|cover|contain;

cover 把背景圖像擴(kuò)展至足夠大途凫,以使背景圖像完全覆蓋背景區(qū)域垢夹。

contain 把圖像圖像擴(kuò)展至最大尺寸溢吻,以使其寬度和高度完全適應(yīng)內(nèi)容區(qū)域


4.0 移動(dòng)開發(fā)選擇和技術(shù)解決方案

4.1 移動(dòng)端主流方案

  1. 單獨(dú)制作移動(dòng)端頁(yè)面(主流)

通常情況下,網(wǎng)址域名前面加 m(mobile) 可以打開移動(dòng)端果元。通過(guò)判斷設(shè)備促王,如果是移動(dòng)設(shè)備打開,則跳到移動(dòng)端頁(yè)面而晒。

也就是說(shuō)蝇狼,PC 端和移動(dòng)端為兩套網(wǎng)站,PC 端是 PC 端的樣式倡怎,移動(dòng)端在寫一套迅耘,專門針對(duì)移動(dòng)端適配的一套網(wǎng)站

京東 PC 端:

京東移動(dòng)端:

  1. 響應(yīng)式頁(yè)面兼容移動(dòng)端(其次)

響應(yīng)式網(wǎng)站:即 PC 和移動(dòng)端共用一套網(wǎng)站,只不過(guò)在不同屏幕下监署,樣式會(huì)自動(dòng)適配

4.2 移動(dòng)端技術(shù)解決方案

  1. 移動(dòng)端瀏覽器兼容問(wèn)題

移動(dòng)端瀏覽器基本以 webkit內(nèi)核為主颤专,因此我們就考慮 webkit 兼容性問(wèn)題。

我們可以放心使用 H5 標(biāo)簽和 CSS3 樣式钠乏。

同時(shí)我們?yōu)g覽器的私有前綴我們只需要考慮添加 webkit 即可

  1. 移動(dòng)端公共樣式

移動(dòng)端 CSS 初始化推薦使用 normalize.css/

Normalize.css:保護(hù)了有價(jià)值的默認(rèn)值

Normalize.css:修復(fù)了瀏覽器的bug

Normalize.css:是模塊化的

Normalize.css:擁有詳細(xì)的文檔

官網(wǎng)地址: http://necolas.github.io/normalize.css/

4.3 移動(dòng)端大量使用 CSS3 盒子模型 box-sizin

傳統(tǒng)模式寬度計(jì)算:盒子的寬度 = CSS 中設(shè)置的 width + border + padding

CSS3 盒子模型: 盒子的寬度= CSS 中設(shè)置的寬度 width 里面包含了 borderpadding

也就是說(shuō)栖秕,我們的 CSS3 中的盒子模型, paddingborder 不會(huì)撐大盒子了

/*CSS3盒子模型*/
box-sizing: border-box;
/*傳統(tǒng)盒子模型*/
box-sizing: content-box;

移動(dòng)端可以全部 CSS3 盒子模型

PC 端如果完全需要兼容晓避,我們就用傳統(tǒng)模式簇捍,如果不考慮兼容性,我們就選擇CSS3 盒子模型

4.4 移動(dòng)端特殊樣式

/*CSS3 盒子模型*/
box-sizing: border-box;
-webkit-box-sizing: border-box;
/*點(diǎn)擊高亮我們需要清除  設(shè)置為transparent 完成透明*/
-webkit-tap-highlight-color: transparent;
/*在移動(dòng)端瀏覽器默認(rèn)的外觀在 iOS 上加上這個(gè)屬性才能給按鈕和輸入框自定義樣式*/
-webkit-appearance: none;
/*禁用長(zhǎng)按頁(yè)面時(shí)的彈出菜單*/
img,a { -webkit-touch-callout: none; }

5.0 移動(dòng)端常見布局

移動(dòng)端單獨(dú)制作

  • 流式布局(百分比布局)
  • flex 彈性布局(強(qiáng)烈推薦)
  • less+rem+媒體查詢布局
  • 混合布局

響應(yīng)式

  • 媒體查詢
  • bootstarp

流式布局:

流式布局俏拱,就是百分比布局暑塑,也稱非固定像素布局。

通過(guò)盒子的寬度設(shè)置成百分比來(lái)根據(jù)屏幕的寬度來(lái)進(jìn)行伸縮锅必,不受固定像素的限制事格,內(nèi)容向兩側(cè)填充。

流式布局方式是移動(dòng) web 開發(fā)使用的比較常見的布局方式。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末分蓖,一起剝皮案震驚了整個(gè)濱河市尔艇,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌么鹤,老刑警劉巖终娃,帶你破解...
    沈念sama閱讀 216,324評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蒸甜,居然都是意外死亡棠耕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門柠新,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)窍荧,“玉大人,你說(shuō)我怎么就攤上這事恨憎∪锿耍” “怎么了?”我有些...
    開封第一講書人閱讀 162,328評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵憔恳,是天一觀的道長(zhǎng)瓤荔。 經(jīng)常有香客問(wèn)我,道長(zhǎng)钥组,這世上最難降的妖魔是什么输硝? 我笑而不...
    開封第一講書人閱讀 58,147評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮程梦,結(jié)果婚禮上点把,老公的妹妹穿的比我還像新娘。我一直安慰自己屿附,他們只是感情好郎逃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,160評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著拿撩,像睡著了一般衣厘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上压恒,一...
    開封第一講書人閱讀 51,115評(píng)論 1 296
  • 那天影暴,我揣著相機(jī)與錄音,去河邊找鬼探赫。 笑死型宙,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的伦吠。 我是一名探鬼主播妆兑,決...
    沈念sama閱讀 40,025評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼魂拦,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了搁嗓?” 一聲冷哼從身側(cè)響起芯勘,我...
    開封第一講書人閱讀 38,867評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎腺逛,沒(méi)想到半個(gè)月后荷愕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡棍矛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,528評(píng)論 2 332
  • 正文 我和宋清朗相戀三年安疗,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片够委。...
    茶點(diǎn)故事閱讀 39,688評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡荐类,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出茁帽,到底是詐尸還是另有隱情玉罐,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評(píng)論 5 343
  • 正文 年R本政府宣布脐雪,位于F島的核電站厌小,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏战秋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,001評(píng)論 3 325
  • 文/蒙蒙 一讨韭、第九天 我趴在偏房一處隱蔽的房頂上張望脂信。 院中可真熱鬧,春花似錦透硝、人聲如沸狰闪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)埋泵。三九已至,卻和暖如春罪治,著一層夾襖步出監(jiān)牢的瞬間丽声,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工觉义, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雁社,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,685評(píng)論 2 368
  • 正文 我出身青樓晒骇,卻偏偏與公主長(zhǎng)得像霉撵,于是被迫代替她去往敵國(guó)和親磺浙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,573評(píng)論 2 353

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