国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

我對Flexbox布局模式的理解_html/css_WEB-ITnose

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 16:41:01
文檔

我對Flexbox布局模式的理解_html/css_WEB-ITnose

我對Flexbox布局模式的理解_html/css_WEB-ITnose:Flexbox,一種CSS3的布局模式,也叫做彈性盒子模型,用來為盒裝模型提供最大的靈活性。首先舉一個栗子,之前我們是這樣實現(xiàn)一個div盒子水平垂直居中的。在知道對象高寬的情況下,對居中元素絕對百分比定位,然后通過margin偏移的方式來實現(xiàn)。 .cont
推薦度:
導(dǎo)讀我對Flexbox布局模式的理解_html/css_WEB-ITnose:Flexbox,一種CSS3的布局模式,也叫做彈性盒子模型,用來為盒裝模型提供最大的靈活性。首先舉一個栗子,之前我們是這樣實現(xiàn)一個div盒子水平垂直居中的。在知道對象高寬的情況下,對居中元素絕對百分比定位,然后通過margin偏移的方式來實現(xiàn)。 .cont

Flexbox,一種CSS3的布局模式,也叫做彈性盒子模型,用來為盒裝模型提供最大的靈活性。首先舉一個栗子,之前我們是這樣實現(xiàn)一個div盒子水平垂直居中的。在知道對象高寬的情況下,對居中元素絕對百分比定位,然后通過margin偏移的方式來實現(xiàn)。

 

假如使用了flex后,實現(xiàn)起來就簡單了,而且不需要自己去算,也不需要絕對定位,只需要通過對伸縮容器定義兩個屬性,justify-content定義伸縮項目沿著主軸線的對齊方式為center, align-items定義伸縮項目在側(cè)軸(垂直于主軸)的對齊方式為center,具體如下:

 

其實Flexbox的優(yōu)秀特性并不是這一些,首先來一張它的屬性圖吧~

首先我們來分析下這一張圖,從第一個子節(jié)點可以看到Flexbox由Flex容器和Flex項目組成,容器即父元素,項目即子元素。他們之間的一些關(guān)系可以這樣來表示:

這張圖可以在接下來的屬性分析中用到。

Flex容器

display:flex

當我們使用flexbox布局時候,需要先給父容器的display值定位flex(塊級)或者inline-flex(行內(nèi)級)。

當使用了這個值以后,伸縮容器會為內(nèi)容建立新的伸縮格式化上下文(FFC),它的上下文展示效果和BFC根元素相同(BFC特性:浮動不會闖入伸縮容器,且伸縮容器的邊界不會與其內(nèi)容邊界疊加)。

伸縮容器不是塊容器,因此有些設(shè)計用來控制塊布局的屬性,在伸縮布局中不適用,特別是多欄(column),float,clear,vertical-align這些屬性。

flex-direction

[flex-direction]屬性用來控制上圖中伸縮容器中主軸的方向,同時也決定了伸縮項目的方向。

  • flex-direction:row;也是默認值,即主軸的方向和正常的方向一樣,從左到右排列。
  • flex-direction:row-reverse;和row的方向相反,從右到左排列。
  • flex-direction:column;從上到下排列。
  • flex-direction:column-reverse;從下到上排列。 以上只針對ltr書寫方式,對于rtl正好相反了。
  • 網(wǎng)頁展示效果如下:

    flex-warp

    [flex-wrap]屬性控制伸縮容器是單行還是多行,也決定了側(cè)軸方向(新的一行的堆放方向)。

  • flex-wrap:nowrap;伸縮容器單行顯示,默認值;
  • flex-wrap:wrap;伸縮容器多行顯示;伸縮項目每一行的排列順序由上到下依次。
  • flex-wrap:wrap-reverse;伸縮容器多行顯示,但是伸縮項目每一行的排列順序由下到上依次排列。
  • 網(wǎng)頁效果見圖;

    flex-flow

    [flex-flow]屬性為flex-direction(主軸方向)和flex-wrap(側(cè)軸方向)的縮寫,兩個屬性決定了伸縮容器的主軸與側(cè)軸。

  • flex-flow:[flex-direction][flex-wrap];默認值為row nowrap;
  • 舉兩個栗子:

  • flex-flow:row;也是默認值;主軸是行內(nèi)方向,單行顯示,不換行;
  • flex-flow:row-reverse wrap;主軸和行內(nèi)方向相反,從右到左,項目每一行由上到下排列(側(cè)軸)。
  • 網(wǎng)頁效果如下:

    這里大家可以多自己去試試不同的組合。

    justify-content

    [justify-content]用于定義伸縮項目在主軸上面的的對齊方式,當一行上的所有伸縮項目都不能伸縮或可伸縮但是已經(jīng)達到其最大長度時,這一屬性才會對多余的空間進行分配。當項目溢出某一行時,這一屬性也會在項目的對齊上施加一些控制。

  • justify-content:flex-start;伸縮項目向主軸的起始位置開始對齊,后面的每元素緊挨著前一個元素對齊。
  • justify-content:flex-end;伸縮項目向主軸的結(jié)束位置對齊,前面的每一個元素緊挨著后一個元素對齊。
  • justify-content:center;伸縮項目相互對齊并在主軸上面處于居中,并且第一個元素到主軸起點的距離等于最后一個元素到主軸終點的位置。以上3中都是“捆綁”在一個分別靠左、靠右、居中對齊。
  • justify-content:space-between;伸縮項目平均的分配在主軸上面,并且第一個元素和主軸的起點緊挨,最后一個元素和主軸上終點緊挨,中間剩下的伸縮項目在確保兩兩間隔相等的情況下進行平分。
  • justify-content:space-around;伸縮項目平均的分布在主軸上面,并且第一個元素到主軸起點距離和最后一個元素到主軸終點的距離相等,且等于中間元素兩兩的間距的一半。完美的平均分配,這個布局在阿里系中很常見。
  • 還是看demo理解起來快一點:

    align-items

    [align-items]用來定義伸縮項目在側(cè)軸的對齊方式,這類似于[justify-content]屬性,但是是另一個方向。(flex-directon和flex-wrap是一對,justify-content和align-items是一對,前者分別定義主軸和側(cè)軸的方向,后者分別定義主軸和側(cè)軸中項目的對齊方式)。

  • align-items:flex-start;伸縮項目在側(cè)軸起點邊的外邊距緊靠住該行在側(cè)軸起點的邊。
  • align-items:flex-end;伸縮項目在側(cè)軸終點邊的外邊距靠住該行在側(cè)軸終點的邊。
  • align-items:center;伸縮項目的外邊距在側(cè)軸上居中放置。
  • align-items:baseline;如果伸縮項目的行內(nèi)軸與側(cè)軸為同一條,則該值與[flex-start]等效。 其它情況下,該值將參與基線對齊。
  • align-items:stretch;伸縮項目拉伸填充整個伸縮容器。此值會使項目的外邊距盒的尺寸在遵照「min/max-width/height」屬性的限制下盡可能接近所在行的尺寸。
  • 下面demo只展示center和stretch的栗子,其他幾個可以參考flex-start和flex-end那樣。

    align-content

    [align-content]屬性可以用來調(diào)準伸縮行在伸縮容器里的對齊方式,這與調(diào)準伸縮項目在主軸上對齊方式的[justify-content]屬性類似。只不過這里元素是以一行為單位。請注意本屬性在只有一行的伸縮容器上沒有效果。當使用flex-wrap:wrap時候多行效果就出來了。

    align-content: flex-start || flex-end || center || space-between || space-around || stretch;

  • align-content: stretch;默認值,各行將會伸展以占用剩余的空間。
  • 其他可以參考[justify-content]用法。
  • 具體圖片來至w3.org官方文檔;

    太麻煩。寫不下去了,摔。

    Flex項目

    終于寫到關(guān)于伸縮項目的相關(guān)屬性了,主要是3個,order,flex(flex-grow,flex-shrink,flex-basis的組合),align-self;用來比較多的是前兩個。

    order

    有一種用法比較多,想設(shè)置一組中有兩個元素一個排第一,另外一個排最后,主需要將第一個的order:-1;另一個為order:0;這樣就好了。

    譬如我們想控制一個container中有4個box,想box4為一個顯示,box1為最后一個顯示。只需要 這樣

     1 2 3 4

    顯示效果就這樣了:

    flex

    [flex]屬性可以用來指定可伸縮長度的部件,是flex-grow(擴展比例),flow-shrink(收縮比例),flex-basis(伸縮基準值)這個三個屬性的縮寫寫法,建議大家采用縮寫的方式而不是單獨來使用這3個屬性。

    flex:none | [ <'flex-grow'> ?<'flew-shrink'> || <'flow-basis'>]// flex-grow是必須得flex-shrink和flow-basis是可選的

  • flex-grow:;其中number作為擴展比例,沒有單位,初始值是0,主要用來決定伸縮容器剩余空間按比例應(yīng)擴展多少空間。
  • flex-grow:;其中number作為收縮比例,沒有單位,初始值是1,也就是剩余空間是負值的時候此伸縮項目相對于伸縮容器里其他伸縮項目能收縮的空間比例,在收縮的時候收縮比率會以[flex-basis]伸縮基準值加權(quán)。
  • flex-basis:|auto;默認是auto也就是根據(jù)可伸縮比率計算出剩余空間的分布之前,伸縮項目主軸長度的起始數(shù)值。若在「flex」縮寫省略了此部件,則「flex-basis」的指定值是長度零。
  • flex-basis用圖來表示就是這樣:

    align-self

    [align-self]用來在單獨的伸縮項目上覆寫默認的對齊方式,這個屬性是用來覆蓋伸縮容器屬性align-items對每一行的對齊方式。也就是說在默認的情況下這兩個值是相等的。

    align-self: auto | flex-start | flex-end | center | baseline | stretch

    我的看法

    講了這么多他們的使用,我們來看一看flexbox布局的兼容性。

    具體大家可以見這個網(wǎng)站:caniuse

    在PC端其實很樂觀了,基本上主流的瀏覽器都已經(jīng)兼容了flex的使用,但是到了移動端就不是那么好了,特別是國內(nèi)瀏覽器,考慮到uc瀏覽器占了大頭,但是uc從圖中看到只兼容flex最老的一個版本,也就是2009年的版本,即display:box;很多現(xiàn)在flex的優(yōu)秀特性到了它上面都不兼容了,所以建議大家在使用的時候,假如2009版本可以滿足開發(fā)要求的話,還是去使用2009版本,這樣風(fēng)險更小。

    但是假如想兼容多個瀏覽器,可以采用優(yōu)雅降級的方式來使用,這里推薦一個scss的sass-flex-mixin,這樣就可以使用最新的寫法,并且兼容大部分瀏覽器了。

    相信flexbox布局在以后的移動端會用得越來越多的。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    我對Flexbox布局模式的理解_html/css_WEB-ITnose

    我對Flexbox布局模式的理解_html/css_WEB-ITnose:Flexbox,一種CSS3的布局模式,也叫做彈性盒子模型,用來為盒裝模型提供最大的靈活性。首先舉一個栗子,之前我們是這樣實現(xiàn)一個div盒子水平垂直居中的。在知道對象高寬的情況下,對居中元素絕對百分比定位,然后通過margin偏移的方式來實現(xiàn)。 .cont
    推薦度:
    標簽: flex it html
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 国产一级成人毛片 | 日韩综合第一页 | 精品日韩欧美一区二区三区 | 亚洲 国产 日韩 欧美 | 美女视频黄a视频全免费网站一区 | 91专区 | 欧美不卡视频 | 91精品国产亚一区二区三区 | 亚洲一二三区视频 | 国产精品一级 | 91欧美激情一区二区三区成人 | 亚洲色图第四页 | 亚洲精品123区 | 欧美影欧美影院免费观看视频 | 国产一级特黄aaaa大片野外 | 久久亚洲精品国产精品婷婷 | 亚洲欧洲日韩在线 | 欧美变态人zozo禽交 | 欧美国产精品一区二区免费 | 国产精品久久新婚兰兰 | 国内一级一级毛片a免费 | 在线观看国产欧美 | 色老头久久久久久久久久 | 精品欧美一区二区三区在线 | 久久亚洲欧美综合激情一区 | 精品一区二区三区四区在线 | 欧美日韩一二区 | 精品伊人久久久久7777人 | 最新国产精品电影入口 | 337p日本欧洲亚洲大胆精品 | 插插插叉叉叉 | 精品国产综合成人亚洲区 | 国产第一页在线视频 | 欧美一区二区在线观看 | 欧美精品一区二区三区免费播放 | 欧美成人禁片在线观看网址 | 日韩www视频 | 一区二区视频在线观看 | 久久99精品久久久久久噜噜 | 五十路在线播放 | 国产免费不卡 |