<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 后端人員如何快速上手css(flex布局

    2019-6-21    seo達(dá)人

    如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點(diǎn)這里

    網(wǎng)頁布局(layout)是 CSS 的一個(gè)重點(diǎn)應(yīng)用。畢竟簡單的樣式不能總依賴前端人員。
    布局的傳統(tǒng)解決方案,基于盒狀模型,依賴 display 屬性 + position屬性 + float屬性。它對于那些特殊布局非常不方便,比如,垂直居中就不容易實(shí)現(xiàn)。

    2009年,W3C 提出了一種新的方案----Flex 布局,可以簡便、完整、響應(yīng)式地實(shí)現(xiàn)各種頁面布局。目前,它已經(jīng)得到了所有瀏覽器的支持,這意味著,現(xiàn)在就能很安全地使用這項(xiàng)功能。

    Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。

    采用 Flex 布局的元素,稱為 Flex 容器(flex container),簡稱"容器"。它的所有子元素自動成為容器成員,稱為 Flex 項(xiàng)目(flex item),簡稱"項(xiàng)目"。


    容器默認(rèn)存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點(diǎn))叫做main start,結(jié)束位置叫做main end;交叉軸的開始位置叫做cross start,結(jié)束位置叫做cross end。

    項(xiàng)目默認(rèn)沿主軸排列。單個(gè)項(xiàng)目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size。

    先說第一個(gè)屬性flex-direction 屬性決定主軸的方向(即項(xiàng)目的排列方向)。
    .box {
    flex-direction: row | row-reverse | column | column-reverse;
    }
    row(默認(rèn)值):主軸為水平方向,起點(diǎn)在左端。
    row-reverse:主軸為水平方向,起點(diǎn)在右端。
    column:主軸為垂直方向,起點(diǎn)在上沿。
    column-reverse:主軸為垂直方向,起點(diǎn)在下沿。
    廢話少說,立刻上代碼,驗(yàn)證下。

    row:

    眾所周知,h1和p都是塊級元素,都會縱向排列,一旦采用 Flex 布局,就以x和y軸為基礎(chǔ)排序,
    column:

    不但模糊了塊級元素和行內(nèi)元素的區(qū)別,而且左右的排序也很靈活。
    row-reverse:

    flex-wrap屬性
    默認(rèn)情況下,項(xiàng)目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,如果一條軸線排不下,就會換行。
    .box{
    flex-wrap: nowrap | wrap | wrap-reverse;
    }
    (1)nowrap(默認(rèn)):不換行。
    (2)wrap:換行,第一行在上方。
    (3)wrap-reverse:換行,第一行在下方。
    wrap:

    雖然他換行了,但是每行的元素是不是靠的太近了
    在這時(shí)候就能用到
    justify-content屬性
    justify-content屬性定義了項(xiàng)目在主軸上的對齊方式。
    .box {
    justify-content: flex-start | flex-end | center | space-between | space-around;
    }
    它可能取5個(gè)值,具體對齊方式與軸的方向有關(guān)。下面假設(shè)主軸為從左到右。

    flex-start:(默認(rèn)值):左對齊
    flex-end:右對齊
    center: 居中
    space-between:兩端對齊,項(xiàng)目之間的間隔都相等。
    space-around:每個(gè)項(xiàng)目兩側(cè)的間隔相等。所以,項(xiàng)目之間的間隔比項(xiàng)目與邊框的間隔大一倍。

    space-between:

    但是還是有點(diǎn)不對勁,原來沒有垂直居中。
    align-items屬性就出來了
    align-items屬性定義項(xiàng)目在交叉軸上如何對齊。
    .box {
    align-items: flex-start | flex-end | center | baseline | stretch;
    }
    它可能取5個(gè)值。具體的對齊方式與交叉軸的方向有關(guān),下面假設(shè)交叉軸從上到下。
    flex-start:交叉軸的起點(diǎn)對齊。
    flex-end:交叉軸的終點(diǎn)對齊。
    center:交叉軸的中點(diǎn)對齊。
    baseline: 項(xiàng)目的第一行文字的基線對齊。
    stretch(默認(rèn)值):如果項(xiàng)目未設(shè)置高度或設(shè)為auto,將占滿整個(gè)容器的高度。

    還有很多屬性可以靈活的調(diào)整頁面的排版,我只舉例最簡單的幾種排版。
    沒有float,沒有position,也沒有行和塊。只要知道x軸和y軸就能輕松布局。
    如果想了解flex布局,可以看一下這位大佬的博客:
    語法篇:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html
    實(shí)戰(zhàn)篇:http://www.ruanyifeng.com/blog/2015/07/flex-examples.html


    日歷

    鏈接

    個(gè)人資料

    存檔

    主站蜘蛛池模板: 91麻豆精品国产| 久久久不卡国产精品一区二区| 51国偷自产精品一区在线视频| 亚洲精品专区在线观看| 国产精品无码无卡无需播放器| 91精品国产综合久久久久久| 亚洲国产另类久久久精品| 国产美女精品视频| 久久国产精品99精品国产987| 精品熟女少妇av免费久久| 亚洲国产成人久久精品99 | 香蕉久久夜色精品国产小说| 日本VA欧美VA欧美VA精品| 欧美午夜精品久久久久久浪潮| 国产精品亚洲高清一区二区| 热久久国产精品| 免费91麻豆精品国产自产在线观看| 潮喷大喷水系列无码久久精品| 三上悠亚久久精品| 亚洲国产精品嫩草影院在线观看| 欧美精品一二区| 四虎国产精品永久在线看| 久久狠狠一本精品综合网| 国产欧美日韩精品专区| 99久久亚洲综合精品成人| 国产91精品黄网在线观看| 四虎4hu永久免费国产精品| 亚洲国产精品婷婷久久| 91精品视频观看| 国产精品久久久久久久午夜片| 国产精品九九久久免费视频 | 亚洲精品无码不卡在线播放HE| 久久精品国产福利国产琪琪| 精品久久久久久国产免费了| 国内精品视频九九九九| 久久青青草原精品国产软件| 久久久久这里只有精品 | 精品无码一区二区三区爱欲九九| 精品亚洲国产成AV人片传媒| 国产精品多人p群无码| 国产精品美女久久久久网|