移動(dòng)端web開(kāi)發(fā)基礎(chǔ)(二)

布局方式

1、流式布局(百分比布局)

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

百分比寬度 = 目標(biāo)元素的寬度 / 父級(jí)元素的寬度衣赶,高度的變化需要配合媒體查詢。

圖片百分比: 圖片的寬度和高度比較彈性化厚满。當(dāng)圖片不設(shè)置寬高時(shí)府瞄,則按原始大小顯示;當(dāng)設(shè)置圖片百分比時(shí)碘箍,寬高的變化則是按等比例加載(建議設(shè)置上限值遵馆,以免超出)

2、rem布局

rem(root em)丰榴,是一個(gè)相對(duì)單位货邓,類(lèi)似em,em是相對(duì)父級(jí)元素的字體大小四濒,而rem則是相對(duì)于<html>元素的字體大小换况。

rem的優(yōu)勢(shì):父元素的文字大小可能不一致,而整個(gè)頁(yè)面只有一個(gè)<html>盗蟆,通過(guò)媒體查詢改變html根元素的字體大小戈二,就可以整體改變所有頁(yè)面中的文字大小。

媒體查詢

媒體查詢(Media Query)喳资,是CSS3中的新語(yǔ)法觉吭。通過(guò)使用媒體查詢,可以針對(duì)不同的媒體類(lèi)型定義不同的樣式仆邓,也可以針對(duì)不同的屏幕尺寸設(shè)置不同的樣式鲜滩。

語(yǔ)法規(guī)范: @media mediatype and|not|only (media feature) { css樣式 }

  • 以@media: 開(kāi)頭
  • mediatype :媒體類(lèi)型,取值有:all(默認(rèn)节值,所有設(shè)備)徙硅、screen(PC、Pad搞疗、Phone)闷游、 TV、print(打印機(jī))
  • 關(guān)鍵字: and | not | only(and指)
  • media feature: 媒體特性贴汪,必須用小括號(hào)包裹 (width脐往、min-width、max-width)

語(yǔ)法示例:有兩種實(shí)現(xiàn)形式扳埂。

  • 1业簿、引入外部CSS文件
    <link rel="stylesheet" href="mediaQuery.css" media="screen and (min-width: 768px)">
    
  • 2、內(nèi)部樣式表中書(shū)寫(xiě)css代碼片段的形式
    @media  screen and (min-width: 768px) {
      /* css樣式 */
    }
    

在寫(xiě)多個(gè)媒體查詢時(shí)阳懂,為了防止混亂梅尤,媒體查詢的條件最好按照從小到大或者從大到小的順序?qū)懀话懔?xí)慣從小到大來(lái)寫(xiě)岩调,代碼顯得更簡(jiǎn)潔

3巷燥、flex布局

flex(flexible box),彈性布局号枕,用來(lái)為盒模型提供最大的靈活性缰揪,任何一個(gè)容器都可以指定為flex布局。

父級(jí)容器設(shè)置為flex布局后葱淳,子元素的float钝腺、clear和vertical-align屬性將失效。

在flex布局中赞厕,采用flex布局的元素艳狐,稱為flex容器,其所有子元素則自動(dòng)變?yōu)槿萜鞒蓡T皿桑,稱為flex項(xiàng)目(flex item)毫目。

flex布局,其原理就是通過(guò)給父級(jí)元素增加flex屬性诲侮,來(lái)控制子元素的位置和排列方式镀虐,從而實(shí)現(xiàn)元素的整體布局。

flex布局中常用的屬性:

針對(duì)父級(jí)flex容器

  • flex-direction: 設(shè)置主軸方向(flex 項(xiàng)目的排列方向)浆西,flex布局中分主軸和側(cè)軸粉私,設(shè)置好主軸后,剩下的就是側(cè)軸

    屬性值 描述
    row 默認(rèn)值近零,水平方向诺核,從左往右
    row-reverse 水平方向,從右往左
    column 垂直方向久信,從上往下
    column-reverse 垂直方向窖杀,從下往上
  • flex-wrap:設(shè)置flex項(xiàng)目是否換行

    屬性值 描述
    nowrap 默認(rèn)值,不允許換行
    wrap 允許換行

flex-flow裙士,是flex-direction和flex-wrap的復(fù)合屬性入客,寫(xiě)法:flex-flow: row nowrap;

  • justify-content:定義flex 項(xiàng)目在主軸上的對(duì)齊方式

    屬性值 描述
    flex-start 默認(rèn)值,從起始位置開(kāi)始
    flex-end 從末尾開(kāi)始
    center 居中
    space-around 平分剩余空間,每個(gè)項(xiàng)目?jī)蓚?cè)的邊距相同
    space-between 首尾兩邊貼邊桌硫,再平分剩余空間
  • align-items:flex項(xiàng)目在側(cè)軸上的排列方式夭咬,針對(duì)單行的flex-項(xiàng)目有效(默認(rèn)側(cè)軸為垂直方向)

    屬性值 描述
    flex-start 默認(rèn)值,從上往下
    flex-end 從下往上
    center 居中
    baseline 基于基線對(duì)齊(文本底部之下铆隘,不常用)
    stretch 拉伸卓舵,若項(xiàng)目未設(shè)置高度或?yàn)閍uto時(shí),將占滿容器高度
  • align-content:針對(duì)多行flex項(xiàng)目(flex項(xiàng)目換行的情況)在側(cè)軸上的排列方式(側(cè)軸以垂直為例)

    屬性值 描述
    flex-start 默認(rèn)值膀钠,從上往下
    flex-end 從下往上
    center 居中
    spece-around 項(xiàng)目在側(cè)軸方向平分剩余空間掏湾,每個(gè)項(xiàng)目?jī)蓚?cè)的邊距相同
    space-between 在側(cè)軸上,首尾兩邊貼邊肿嘲,再平分剩余空間
    stretch 拉伸融击,所有flex項(xiàng)目的高度平分容器的高度

針對(duì)子級(jí)flex 項(xiàng)目

  • order:定義項(xiàng)目的排列順序,屬性值為數(shù)值型雳窟,數(shù)值越大尊浪,排列越靠前,默認(rèn)都為0

  • align-self: 設(shè)置單個(gè)項(xiàng)目的對(duì)齊方式涩拙,可覆蓋align-items的屬性值际长,可選屬性值與align-items一樣,默認(rèn)為auto兴泥,表示繼承父元素的align-items屬性值

  • flex-grow:定義單個(gè)flex項(xiàng)目的*擴(kuò)展比例(在整個(gè)flex容器中有剩余空間的情況下)工育,該屬性值有:
    0:默認(rèn)值,不進(jìn)行擴(kuò)展

    其他正數(shù)數(shù)值: 在剩余空間中占據(jù)的比例搓彻,若只有一個(gè)元素取值大于1如绸,則占滿整個(gè)剩余空間,若是多個(gè)元素都取值旭贬,則按比例劃分剩余空間

  • flex-shrik: 定義單個(gè)flex項(xiàng)目的收縮比例(在整個(gè)flex容器中的空間不足時(shí))
    1:默認(rèn)值怔接,表示空間不足時(shí),等比縮小比例
    0:表示空間不足時(shí)稀轨,不縮小

  • flex-basis:指定項(xiàng)目所占據(jù)的空間大小扼脐,當(dāng)與width同時(shí)存在時(shí),取flex-basis的值
    auto:默認(rèn)為項(xiàng)目本身大小
    像素值或百分比:自定義寬度

flex: 該屬性是flex-grow奋刽、flex-shrink以及flex-basis的綜合簡(jiǎn)寫(xiě)形式瓦侮,該屬性值有:

auto: 相當(dāng)于 1 1 auto;
none: 相當(dāng)于 0 0 auto;
自定義數(shù)值: flex-grow flex-shrink flex-basis佣谐, 其中肚吏,flex-grow值為必須值,其他兩個(gè)屬性值不寫(xiě)時(shí)狭魂, flex-shrink默認(rèn)為1罚攀,flex-basis默認(rèn)為 0% 党觅。

注意,flex屬性只寫(xiě)一個(gè)值時(shí)斋泄,這個(gè)值就是flex-grow杯瞻,但實(shí)現(xiàn)的效果與flex-grow還是有區(qū)別的

例如:flex:1 和 flex-grow:1

flex:1 ---->相當(dāng)于設(shè)置了三個(gè)屬性,flex-grow:1; flex-shrink:1; flex-basis:0%;
flex-grow:1 -----> 只是設(shè)置了flex-grow:1;而flex-shrink取默認(rèn)值1是己,flex-basis取默認(rèn)值auto;

從這里不難發(fā)現(xiàn)又兵,兩者最大的差異在于flex-basis的值不同,這也是導(dǎo)致之后計(jì)算時(shí)的差異的關(guān)鍵原因卒废。由于flex-basis的值的層疊性要高于width的屬性值,因此宙地,兩者同時(shí)存在時(shí)摔认,取的是flex-basis的屬性值。

4宅粥、響應(yīng)式布局

響應(yīng)式的開(kāi)發(fā)原理: 使用媒體查詢参袱,針對(duì)不同寬度的設(shè)備進(jìn)行布局和樣式的額設(shè)置,從而適配不同設(shè)備的目的秽梅。

在響應(yīng)式布局中抹蚀,通過(guò)媒體查詢技術(shù),改變布局容器的大小企垦,進(jìn)而改變布局容器中的子元素排列方式和大小环壤,從而實(shí)現(xiàn)不同屏幕下所展示的不同頁(yè)面布局和樣式變化。

常見(jiàn)的響應(yīng)式屏幕尺寸劃分:

  • 1钞诡、超小屏幕: xs(Extra Small)郑现,width <= 767px

  • 2、小型屏幕: sm(Small)荧降,768px <= width <= 991px

  • 3接箫、中型屏幕: md(Medium),992px <= width <= 1199px

  • 4朵诫、大型屏幕: lg(Large)辛友,width >= 1200px

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市剪返,隨后出現(xiàn)的幾起案子废累,更是在濱河造成了極大的恐慌,老刑警劉巖随夸,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件九默,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡宾毒,警方通過(guò)查閱死者的電腦和手機(jī)驼修,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)殿遂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人乙各,你說(shuō)我怎么就攤上這事墨礁。” “怎么了耳峦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵恩静,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我蹲坷,道長(zhǎng)驶乾,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任循签,我火速辦了婚禮级乐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘县匠。我一直安慰自己风科,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布乞旦。 她就那樣靜靜地躺著贼穆,像睡著了一般。 火紅的嫁衣襯著肌膚如雪兰粉。 梳的紋絲不亂的頭發(fā)上故痊,一...
    開(kāi)封第一講書(shū)人閱讀 52,262評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音亲桦,去河邊找鬼崖蜜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛客峭,可吹牛的內(nèi)容都是我干的豫领。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼舔琅,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼等恐!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起备蚓,我...
    開(kāi)封第一講書(shū)人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤课蔬,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后郊尝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體二跋,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年流昏,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扎即。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吞获。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谚鄙,靈堂內(nèi)的尸體忽然破棺而出各拷,到底是詐尸還是另有隱情,我是刑警寧澤闷营,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布烤黍,位于F島的核電站,受9級(jí)特大地震影響傻盟,放射性物質(zhì)發(fā)生泄漏速蕊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一莫杈、第九天 我趴在偏房一處隱蔽的房頂上張望互例。 院中可真熱鬧,春花似錦筝闹、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至武福,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背核无。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工艺骂, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伍纫。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓宗雇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親莹规。 傳聞我的和親對(duì)象是個(gè)殘疾皇子赔蒲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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