flex布局

簡介

1 .1維布局,一個flex一次只能處理一個維度上的元素布局身隐,一行或者一列。
2 .如果不規(guī)定換行唯灵,就算是超了贾铝,會等比壓縮縮小,而不是自動換行埠帕,想要換行必須要使用felx-wrap
3 .任何一個容器都可以被指定為flex布局
4 .行內(nèi)元素可以被指定為inline-flex
5 .設(shè)置flex之后垢揩,子元素的float,clear,vertical-align

flex子項(xiàng)

1 .在flex布局中敛瓷,一個Flex子項(xiàng)的寬度是由元素自身尺寸即flex-basic設(shè)置的基礎(chǔ)屬性叁巨,以及外部填充flex-grow,收縮flex-shrink,還有最大琐驴,最小尺寸限制這5個共同決定的
2 .基礎(chǔ)尺寸:flex-basic,box-sizing盒模型共同決定
3 .彈性增長;flex-grow屬性俘种,彈性收縮秤标;flex-shirk屬性
4 .最小尺寸min-wdith,max-width等css屬性,min-content最小內(nèi)容尺寸,width也屬于最小尺寸了
5 .在flex布局中宙刘,子項(xiàng)設(shè)置width是沒有直接效果的.實(shí)際設(shè)置的width苍姜,雖然看起來生效了,但是效果是flex-basic的作用
6 .flex-basic的默認(rèn)值是auto悬包,也就是完全根據(jù)子列表項(xiàng)自身尺寸渲染(min-width>||max-width>width>content-size)

1 .flex-basci對width的操作就是覆蓋衙猪。如果同時設(shè)置了這倆值。width直接不生效
2 .自身尺寸只要和下面這幾個方面有關(guān)布近。box-sizing盒模型垫释,width.min-width,max-width.content內(nèi)容

7 .是盒模型,元素自身尺寸特性撑瞧,以及flex屬性共同作用的結(jié)果棵譬。

計算優(yōu)先級

最大最小尺寸限制>彈性收縮,彈性擴(kuò)張>基礎(chǔ)尺寸
1 .所以無論是什么布局min-width,max-width這種屬性都擁有絕對權(quán)威

一個flex其實(shí)是這三個屬性的集合预伺,以后還是都分開寫吧

flex只有一個值

1 .如果是數(shù)值订咸,比如flex:1。chrome里面是flex-basis:0%,flex-grow:1,flex-shirk:1.

1 .實(shí)際表現(xiàn)酬诀,沒有寬度脏嚷,所以所有的元素都將擠在一個里面,就算是設(shè)置了換行也不知道瞒御,蠢的一批

2 .如果是長度值父叙,比如flex:100px。還是chrome肴裙,flex-basis:100px,flex-grow:1,flex-shirk:1趾唱。

1 .這樣的表現(xiàn)就是如果一行可以放5個,總共有7個践宴,那么第一行是5個鲸匿,長度是100px.第二行的的3個長度就是160px;

其他

1 .2個參數(shù),3個參數(shù)阻肩,以及initial,auto,none這些關(guān)鍵字,沒有記的必要运授,直接分開寫的清清楚楚不就好了烤惊,非要用一些自己不是很明白的參數(shù)在那里瞎搞
2 .flex默認(rèn)值 0 1 auto 。也就是不放大吁朦,等比縮小柒室,用原來的大小

flex-basis

1 .分配固定的家產(chǎn)數(shù)量
2 .如果同時設(shè)置width,會被忽略逗宜,但是max-width雄右,min-width空骚,優(yōu)先級比flex-basis更高。但是最高不要用這個值擂仍,也就是使用寬度直接使用flex-basis就可以囤屹,不需要單獨(dú)給子項(xiàng)固定width,這樣會讓人很疑惑逢渔。甚至根本不需要min-width/max-width這些屬性
3 .flex-basic是作用在content-box上的.設(shè)置的width+padding+border


image.png

肋坚。如果給他設(shè)置box-sizing:border-box:那么寬度會減小,減小的長度是padding-left+padding-right+border*2的長度
4 .flex-basis:支持一堆關(guān)鍵字肃廓,但是好多都不支持

flex-grow

1 .家產(chǎn)任然后賦予的時候在怎么分智厌。默認(rèn)是0.多余空間不分配

flex-shrink

1 .家產(chǎn)剩余不夠分的時候怎么分。默認(rèn)是1盲赊,空間不足會分配

結(jié)果

.container{
            display: flex;
            flex-direction: row;
            flex-wrap: wrap;
            justify-content: space-between;
            align-content: space-around;

            width: 500px;
            height: 500px;
        }
        .d1{
            flex-basis:100px;
            flex-grow: 0;
            /* 不會去爭奪多余的財產(chǎn) */
            flex-shrink: 2;
            /* 不夠的時候需要拿的時候铣鹏,拿的數(shù)量是被人的兩倍 */
            /* 這也就是說最大寬度是100px,最小寬度還不確定 */
        }

        .d2,.d3{
            flex-basis: 100px;
            flex-grow: 0;
            flex-shrink: 1;
        }
        .d4{
            flex-basis: 50px;
            flex-grow: 3;
            /* 多余的時候要拿3份,不足的時候不給 */
            /* 這也就是最小寬度是20px */
            flex-shrink: 0;
        }

        .d5{
            flex-basis:50px;
            flex-grow: 2;
            flex-shrink: 0;
        }

1 .每一個item固定大小100px哀蘑。只有flex-basis:100诚卸,其余兩屬性沒有,但是寬度不足递礼,又沒有換行的時候惨险,寬度不夠,所有都是會一起縮小的脊髓,并不是最小寬度辫愉,這是因?yàn)閒lex-shirk:默認(rèn)是1.所以屬性一定還是設(shè)置的

.container div{
            flex-basis:100px;
            background-color: aquamarine;
        }

//但是如果每一個item加了min-width之后,總寬度不夠會超出顯示的将硝,這種如果不想恭朗,需要加overflow:hidden

2 .每一個item最小寬度是100,多余寬度等擴(kuò)大依疼,但是要有間距.因?yàn)闀缺葦U(kuò)大痰腮,所以間距要自己設(shè)置,這里可以設(shè)置padding律罢。還有一個重要的就是background-color的計算和bos-sizing沒有關(guān)系膀值。所以這里加padding沒啥用,背景顏色還是在原來的范圍內(nèi)顯示误辑,只是content-box會變化沧踏。所以這里要加margin,但是marginzhe這里也有一個坑點(diǎn),flex布局下不會自動margin折疊巾钉,所以不能簡單的margin:10翘狱,這樣各個item的間距不一樣

.content div:nth-child(5n){
//這樣可以選到每一排第5個,但是這樣必須是一排是5個才可以砰苍,不然就需要動態(tài)換潦匈,所以最后還是加父元素的padding吧阱高,補(bǔ)足那不夠的一半.是一個元素和最后一個元素沒有兄弟元素的這些
        }
截屏2022-02-20 下午11.13.32.png

父元素屬性

1 .flex-direction:決定主軸的方向


image.png

從左到右非別是

1 .column-reverse:豎向從下到上
2 .column:豎向從上到下
3 .row:橫向從左到右。注意這個是默認(rèn)值
4 .row-reverse:橫向從右到左茬缩。

2 .flex-wrap:默認(rèn)情況下赤惊,所有項(xiàng)目都是排在一條線上,就算是超了寒屯,默認(rèn)情況下都是按照1:1縮小荐捻,而不是機(jī)靈的自動換行,必須使用這個屬性才會自動換


image.png
1 .nowrap:不換行寡夹,默認(rèn)值
2 .wrap:換行处面,頂滿的那一行在上面
3 .wrap-reverse:訂滿的那一行在下面。這個應(yīng)該沒人用吧菩掏,看著就就很畢加索

3 .flex-flow:上面那倆屬性的合并值魂角。

4 .justify-content:主軸上項(xiàng)目的對齊方式。如果是橫向主軸智绸,那么是左右的對齊方式野揪,如果是豎向主軸,那么就是上下的對齊方式


image.png
1 .flex-start:左對齊瞧栗。默認(rèn)值斯稳。其實(shí)如果都是左對齊,我們可以用margin來模擬項(xiàng)目的間距的
2 .flex-end:右對齊
3 .center:居中
4 .space-around:兩邊的距離是中間距離的一半迹恐。只有中間的是平均分布的
5 .space-between:左右兩側(cè)貼邊挣惰,其余均勻分布
6 .space-evenly:所有的間隔都是相等的。如圖.有兼容性問題
image.png

5 .align-items:交叉軸上的對齊方式殴边,也就是上下對齊方式.具體的對齊方式和交叉軸有關(guān)系


image.png

截屏2022-02-21 下午11.34.15.png
1 .flex-start:交叉軸的起點(diǎn)對齊憎茂。
2 .flex-end:交叉軸的終點(diǎn)對齊
3 .center:交叉軸的終點(diǎn)對齊
4 .baseline:項(xiàng)目的第一行文字的基線對齊
5 .stretch:默認(rèn)值。如果項(xiàng)目未設(shè)置高度或者為auto锤岸,會自動占滿整個容器的高度

6 .align-content屬性:多跟軸線的對齊方式,如果項(xiàng)目只有一根軸線竖幔,這個屬性
不起作用


image.png
1 .flex-start:多條軸和交叉軸的起點(diǎn)對齊
2 .flex-end:與交叉軸的終點(diǎn)對齊
3 .center:與交叉軸的中點(diǎn)對齊
4 .space-between:與交叉軸兩端對齊,軸線之間的間隔平均分布
5 .space-around:每個軸線兩側(cè)的間隔都相等是偷。軸線之間的間隔

項(xiàng)目的屬性

1 .order:本來列表是按照實(shí)際的渲染順序來顯示的拳氢,如果單獨(dú)給某個屬性設(shè)置這個值,數(shù)字越小蛋铆,排列越靠前饿幅。

2 .flex-grow

3 .flex-shrink

4 .flex-basis

5 align-self:重點(diǎn)。覆蓋align-items屬性戒职,允許單個項(xiàng)目和其他有不一樣的對齊方式.會覆蓋align-items屬性。

1 .flex-start
2 .flex-end
3 .center
4 .baseline
5 .stretch
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末透乾,一起剝皮案震驚了整個濱河市洪燥,隨后出現(xiàn)的幾起案子磕秤,更是在濱河造成了極大的恐慌,老刑警劉巖捧韵,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件市咆,死亡現(xiàn)場離奇詭異,居然都是意外死亡再来,警方通過查閱死者的電腦和手機(jī)蒙兰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來芒篷,“玉大人搜变,你說我怎么就攤上這事≌肼” “怎么了挠他?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長篡帕。 經(jīng)常有香客問我殖侵,道長,這世上最難降的妖魔是什么镰烧? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任拢军,我火速辦了婚禮,結(jié)果婚禮上怔鳖,老公的妹妹穿的比我還像新娘茉唉。我一直安慰自己,他們只是感情好败砂,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布赌渣。 她就那樣靜靜地躺著,像睡著了一般昌犹。 火紅的嫁衣襯著肌膚如雪坚芜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天斜姥,我揣著相機(jī)與錄音鸿竖,去河邊找鬼。 笑死铸敏,一個胖子當(dāng)著我的面吹牛缚忧,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播杈笔,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼闪水,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蒙具?” 一聲冷哼從身側(cè)響起球榆,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤朽肥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后持钉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體衡招,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年每强,在試婚紗的時候發(fā)現(xiàn)自己被綠了始腾。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡空执,死狀恐怖浪箭,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情脆烟,我是刑警寧澤山林,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站邢羔,受9級特大地震影響驼抹,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜拜鹤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一框冀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敏簿,春花似錦明也、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蜻势,卻和暖如春撑刺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背握玛。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工够傍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挠铲。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓冕屯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拂苹。 傳聞我的和親對象是個殘疾皇子安聘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評論 2 355

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

  • flex-growflex-grow 只有在 flex 容器中有剩余空間時才會生效。flex 項(xiàng)的 flex-gr...
    手指樂閱讀 1,021評論 0 2
  • 一囱桨、起步 1、flex介紹 使用flex彈性布局的元素嗅绰,稱為flex 容器(flex-container)舍肠。它的所...
    馬柚柚閱讀 1,362評論 0 0
  • Flex 是 Flexible Box 的縮寫,意為"彈性布局"窘面。使用 display:flex 或display...
    alfalfaw閱讀 265評論 0 0
  • 一翠语、簡介 1.1、flex 布局 (Flexible布局财边,彈性布局)是在小程序里面常用的布局方式官方文檔:flex...
    IIronMan閱讀 545評論 0 2
  • 引言 CSS3中的 Flexible Box肌括,或者叫flexbox,是用于排列元素的一種布局模式酣难。 顧名思義谍夭,彈性...
    EJRoxy閱讀 9,859評論 1 4