日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

图文学习前端Flex布局

發布時間:2024/3/26 HTML 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图文学习前端Flex布局 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

哪吒人生信條:如果你所學的東西 處于喜歡 才會有強大的動力支撐。

把你的前端拿捏得死死的,每天學習得爽爽的,關注這個不一樣的程序員,如果你所學的東西 處于喜歡 才會有強大的動力支撐。

感謝不負每一份熱愛前端的程序員,不論前端技能有多奇葩,歡迎關注加我入群vx:xiaoda0423

前言

本篇文章進行學習css中的一個重點應用,布局樣式為flex布局,相信你學習了解過display屬性,position屬性,float屬性,但今天只學習新東西就是flex布局。

flex布局是什么

flex是flexible box的縮寫,意思是彈性布局,代碼樣式如下:

.box {display: flex; }

Flexbox Layout模塊是提供一個更有效的方式來布置,對齊和item之間在一個容器中分配的控件,即使它們的大小是未知的,或者是動態的,所以單詞命名flex(彈性工作制的)

flex布局可以使容器更改其item的寬度,高度,以便最好地填充可用空間,或者收縮它們來防止溢出。flexbox布局使用比較合適應用程序地組件和小規模布局上。

在webkit內核地瀏覽器中,要加上-webkit前綴哦,代碼格式如下:

.box {display: -webkit-flex;display: flex; }

當設置flex布局之后,子元素(item)的float,clear,vertical-align屬性會失效。

學習前要先了解概念

flex container flex items

設置flex布局的元素為flex容器(flex container),簡稱為容器。它的所有子元素都是容器的成員,flex項目(flex item),簡稱為項目。那么請查看如下圖,解析flex布局背后的主要思想。

如圖可以看出,main axis是從main-start到main-end,交叉軸cross axis從cross-start到cross-end。

容器默認有兩根軸的,水平的主軸main axis和垂直的交叉軸cross axis,從main-start到main-end叫(main start)主軸;從cross axis從cross-start到cross-end叫(cross axis)交叉軸

單個項目占據的主軸空間叫main size,占據的交叉軸空間叫cross size

container彈性容器:

.container {display: flex; }

items彈性項目:

容器的屬性

  • flex-direction
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content
  • flex-direction屬性決定的是主軸的方向,即是項目的排列方向

    .box {flex-direction: row | row-reverse | column | column-reverse; }.flex-container {-webkit-flex-direction: row; /_ Safari _/flex-direction: row; }.flex-container {-webkit-flex-direction: row-reverse; /_ Safari _/flex-direction: row-reverse; }.flex-container {-webkit-flex-direction: column; /_ Safari _/flex-direction: column; }.flex-container {-webkit-flex-direction: column-reverse; /_ Safari _/flex-direction: column-reverse; }

    其使用flex-direction的box格式如下:

    // 水平 .box {flex-direction: row; }// 水平倒置 .box {flex-direction: row-reverse; }// 垂直 .box {flex-direction: column ; }// 垂直倒置 .box {flex-direction: column-reverse; }

    .box {width: 400upx;height: 300upx;background-color: #007AFF;margin: 10upx; }.item {width: 80upx;height: 80upx;background-color: #1CBBB4;border: 1upx solid #FFFFFF; }

    row:flex容器的主軸與當前寫入模式的內聯軸具有相同的方向。主開始方向和主結束方向分別相當于當前寫入模式的開始方向和結束方向。

    .box-row {display: flex;flex-direction: row; }

    row-reverse: 與'row'相同,只是主開始方向和主結束方向交換了。

    .box-row-reverse {display: flex;flex-direction: row-reverse; }

    column: flex容器的主軸與當前寫入模式的塊軸方向相同。主開始方向和主結束方向分別相當于當前書寫模式的前/頭和后/腳方向。

    .box-column {display: flex;flex-direction: column; }

    column-reverse: 與'column'相同,只是主開始方向和主結束方向交換了。

    .box-column-reverse {display: flex;flex-direction: column-reverse; }

    flex-wrap屬性:根據伸縮容器中的可用空間,指定伸縮項是否換行以及它們換行到多行或多列的方向。

    .box{flex-wrap: nowrap | wrap | wrap-reverse; }.flex-container {-webkit-flex-wrap: nowrap; /_ Safari _/flex-wrap: nowrap; }.flex-container {-webkit-flex-wrap: wrap; /_ Safari _/flex-wrap: wrap; }.flex-container {-webkit-flex-wrap: wrap-reverse; /_ Safari _/flex-wrap: wrap-reverse; }

    flex-wrap: nowrap: 不換行。(所有彈性項目都將在一行上)

    .box-flex-wrap-nowrap {display: flex;flex-wrap: nowrap; }

    flex-wrap: wrap: 換行,第一行在上方。(彈性項目將從上到下纏繞在多行上)

    .box-flex-wrap-wrap {display: flex;flex-wrap: wrap; }

    wrap-reverse: 換行,第一行在下方。(彈性項目將從下到上纏繞在多行上)

    .box-flex-wrap-wrap-reverse {display: flex;flex-wrap: wrap-reverse; }

    flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡寫形式,默認值為row nowrap。

    .box {flex-flow: <flex-direction> || <flex-wrap>; }.container {flex-flow: column wrap; }

    .box-flex-flow-1 {display: flex;flex-flow: auto; // flex-flow: row nowrap; }

    .box-flex-flow-2 {display: flex;flex-flow: row wrap; }

    justify-content屬性:指定在解析了任意靈活長度和自動邊距后,伸縮項如何沿伸縮容器的主軸對齊。(定義了項目在主軸上的對齊方式)

    .box {justify-content: flex-start | flex-end | center | space-between | space-around; }

    flex-start

    初始值。伸縮項目被打包在行首。第一個伸縮項的起始邊被放置在伸縮容器的開始處。下一個伸縮項的起始邊與第一個伸縮項的結束邊按布局軸方向依次放置。所有沿布局軸保留的空間都放置在布局軸的末端。

    .box-flex-justify-content-1 {display: flex;justify-content: flex-start; }

    如圖效果:

    flex-end

    彈性物品被打包到行尾。第一個伸縮項的結束邊緣被放置在伸縮容器的末端。下一個伸縮項目的結束邊緣與第一個伸縮項目的開始邊緣按布局軸方向依次放置。沿布局軸剩下的所有空間都放置在布局軸的起點。

    .box-flex-justify-content-2 {display: flex;justify-content: flex-end; }

    如圖效果:

    center

    彈性物品被打包在線的中間。flex項目在直線上放置沖洗彼此對齊線的中心,與等量的main-start邊緣之間的空白行和第一項之間的線,主要目的的邊緣線,最后一項。(如果剩余的空閑空間是負的,伸縮項將在兩個方向上相等地溢出。)

    .box-flex-justify-content-3 {display: flex;justify-content: center; }

    如圖效果:

    space-between

    彈性項目均勻地分布在這條線上。如果剩余的自由空間是負的,或者一行上只有一個flex項目,這個值與' flex-start '相同。否則,main-start保證的第一flex項目線的邊緣放置充裕的main-start邊緣線,最后一個flex項的主要目的利潤邊緣線放置充裕的主要目的邊緣線,和其余的flex項目的分布之間的間距與任何兩個相鄰物品是一樣的。

    .box-flex-justify-content-4 {display: flex;justify-content: space-between; }

    如圖效果:

    space-around

    彈性項目均勻地分布在線中,在兩端有一半大小的空間。如果剩余的自由空間是負的,或者一行上只有一個伸縮項,這個值與' center '相同。否則,行上的伸縮項的分布使行上任意兩個相鄰伸縮項之間的間距相同,并且第一個/最后一個伸縮項與伸縮容器邊緣之間的間距為伸縮項之間間距的一半。

    .box-flex-justify-content-5 {display: flex;justify-content: space-around; }

    如圖效果:

    space-evenly:分配項目,以使任意兩個項目之間的間距(以及到邊緣的間距)相等。

    align-items屬性:指定伸縮容器中伸縮項的對齊值(垂直于由伸縮方向屬性定義的布局軸)。

    .box {align-items: flex-start | flex-end | center | baseline | stretch; }

    修改item樣式如圖:

    .item1 {width: 100upx;height: 120upx; }.item2 {width: 100upx;height: 130upx; }.item3 {width: 100upx;height: 140upx; }

    flex-start:交叉軸的起點對齊。

    .box-flex-align-items-1 {display: flex;align-items: flex-start; }

    flex-end:交叉軸的終點對齊。

    .box-flex-align-items-2 {display: flex;align-items: flex-end; }

    center:交叉軸的中點對齊。

    .box-flex-align-items-3 {display: flex;align-items: center; }

    baseline: 項目的第一行文字的基線對齊。

    修改item,以第一行文字的基線對齊,想如圖效果,itme3-text頂部沒有剩余空間,就被強迫這樣了。如果有空間,已第一個為標準對齊,第一個item文本底線對齊。

    .item1-text {padding: 5upx;width: 120upx;height: 120upx; }.item2-text {width: 120upx;height: 130upx; }.item3-text {padding: 15upx;width: 120upx;height: 140upx; }

    .box-flex-align-items-4 {display: flex;align-items: baseline; }

    stretch(默認值):如果項目未設置高度或設為auto,將占滿整個容器的高度。

    修改item,沒有定義高度,如果有高度還是按照原來的高度呈現。

    .item-noheight {width: 100upx;border: 1upx solid #FFFFFF; }

    .box-flex-align-items-5 {display: flex;align-items: stretch; }

    align-content屬性:指定當與flex-direction屬性定義的軸垂直的軸上有額外空間時,flex項目的行如何在flex容器內對齊。

    align-content屬性定義了多根軸線(多行)的對齊方式。如果項目只有一根軸線,該屬性不起作用。

    .box {align-content: flex-start | flex-end | center | space-between | space-around | stretch; }

    flex-start:交叉軸的起點對齊

    flex-end:與交叉軸的終點對齊

    center:與交叉軸的中點對齊

    space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布

    space-around:每根軸線兩側的間隔都相等,軸線之間的間隔比軸線與邊框的間隔大一倍

    stretch:軸線占滿整個交叉軸

    項目的屬性

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self
  • order屬性定義項目的排序時,數值越小,排列越靠前,默認為0

    .item {order: <integer>; }

    flex-grow屬性定義項目的放大比例,默認為0,如果還有存在剩余空間,也不會放大

    如果所有項目的flex-grow屬性都為1,那么它們將等分剩余的空間,如果一個項目的flex-grow屬性為2,其他項目都為1,那么前者占據的剩余空間將比其他項目多一倍。

    .item {flex-grow: <number>; /* default 0 */ }

    flex-shrink屬性定義了項目的縮小的比例,默認為1,如果空間不足,該項目將縮小

    如果所有項目的flex-shrink屬性都為1,當空間不足時,都將等比例縮小,如果一個項目的flex-shrink屬性都為0,其他項目都為1,則空間不足時,前者不縮小,負值對該屬性無效。

    .item {flex-shrink: <number>; /* default 1 */ }

    flex-basis屬性:定義了在分配多余空間之前,項目占據的主軸空間main size,瀏覽器根據這個屬性,計算主軸是否有多余空間。它的默認值為auto,即是項目的本來的大小。

    .item {flex-basis: <length> | auto; /* default auto */ }

    flex屬性是flex-grow,flex-shrink和flex-basis的簡寫,默認值為0 1 auto,后兩個屬性可選。

    .item {flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] }

    該屬性有兩個快捷值:auto(1 1 auto)和none(0 0 auto)

    align-self屬性:允許單個項目有與其他項目不一樣的對齊方式,可覆蓋align-items屬性,默認值為auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。

    .item {align-self: auto | flex-start | flex-end | center | baseline | stretch; }

    點贊、收藏和評論

    我是Jeskson(達達前端),感謝各位人才的:點贊、收藏和評論,我們下期見!(如本文內容有地方講解有誤,歡迎指出?謝謝,一起學習了)

    我們下期見!

    文章持續更新,可以微信搜一搜「 程序員哆啦A夢 」第一時間閱讀,回復【資料】有我準備的一線大廠資料,本文 http://www.dadaqianduan.cn/#/ 已經收錄,歡迎Star。

    總結

    以上是生活随笔為你收集整理的图文学习前端Flex布局的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 天堂视频在线免费观看 | 少妇高潮惨叫久久久久久 | 色综合色婷婷 | 色噜噜综合网 | 欧美三级欧美成人高清 | 日日操夜夜操视频 | 久久免费影院 | 美女视频三区 | 亚洲精品一区二区三区中文字幕 | 欧美操穴 | 亚洲激情视频小说 | 强行糟蹋人妻hd中文字幕 | 国产二区在线播放 | 男女日日 | 国内精品一区二区三区 | 91成人在线 | 爽好多水快深点欧美视频 | 天堂视频一区二区 | 香蕉视频网页 | 很黄很色的视频 | av动漫在线免费观看 | 精品国产乱码久久久久久久 | 麻豆av一区二区三区在线观看 | 成年免费视频黄网站在线观看 | 亚洲欧美国产高清 | 欧美激情婷婷 | 中国少妇无码专区 | 嫩模一区二区三区 | 在线成人一区 | 无码精品一区二区三区AV | 日韩毛片 | 天天躁夜夜躁狠狠是什么心态 | 免费瑟瑟网站 | 中文字幕亚洲综合 | 99国产精品久久久久久久 | 草久久久久 | 欧美大片a | 中文在线免费观看 | 国产视频999 | 日本色视频 | 国产国语videosex另类 | 色播视频在线观看 | 色窝窝无码一区二区三区成人网站 | 新婚之夜玷污岳丰满少妇在线观看 | 51国产在线 | 色伊人久久 | 国产欧美一区二区三区在线看蜜臂 | 8x8ⅹ国产精品一区二区 | 成人短视频在线播放 | 亚洲AV无码一区二区伊人久久 | 91成人在线观看喷潮 | 欧美成人久久 | 免费20分钟超爽视频 | 熟妇一区二区三区 | 九七人人爽 | 日本不卡视频在线观看 | 亚洲 欧美 日韩 综合 | 女人洗澡一级特黄毛片 | 99r热| 日韩一区二区三区中文字幕 | 国产最新视频在线 | 天天操夜夜欢 | 黄色大片在线看 | 国产美女啪啪 | 丝袜操 | a天堂视频在线观看 | 无码国产精品高潮久久99 | 51嘿嘿嘿国产精品伦理 | 日本伦理一区二区三区 | 久久合合 | 亚洲成年人网站在线观看 | 国产亚洲成av人在线观看导航 | 亚洲欧美日韩精品久久 | 日韩理论片在线观看 | 国产主播在线播放 | 蘑菇视频黄色 | 欧美成人三级伦在线观看 | 欧美久久久久久久久久 | 夜夜爽日日澡人人添 | 日本婷婷 | 求av网址 | 制服诱惑一区二区三区 | 波多野结衣av片 | 丰满少妇一区二区三区 | 毛片999| 久久久999国产精品 天堂av中文在线 | 精品欧美在线 | 艹男人的日日夜夜 | 高h捆绑拘束调教小说 | 在线视频亚洲 | 青青草原免费观看 | 欧色av| 精品国产99一区二区乱码综合 | 曰批又黄又爽免费视频 | juliaannxxxxx高清 黄页网站在线播放 | 男女一区二区三区 | 毛利兰被扒开腿做同人漫画 | 欧美日韩精品中文字幕 | 在线观看高清av |