成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Flex布局語法筆記

legendmohe / 2419人閱讀

摘要:布局的傳統(tǒng)解決方案,基于盒狀模型,依賴屬性屬性屬性。一基礎(chǔ)和術(shù)語布局是啥是的縮寫,意為彈性布局,用來為盒狀模型提供最大的靈活性?;靖拍畈捎貌季值脑?,稱為容器,簡稱容器。該屬性的個值分別表示具體對齊方式與軸的方向有關(guān)。

???????網(wǎng)頁布局(layout)是 CSS 的一個重點應(yīng)用。布局的傳統(tǒng)解決方案,基于盒狀模型,依賴 display 屬性 + position屬性 + float屬性。它對于那些特殊布局非常不方便,比如萬惡的垂直居中。
???????2009年,W3C 提出了一種新的方案----Flex 布局,可以簡便、完整、響應(yīng)式地實現(xiàn)各種頁面布局。目前,它已經(jīng)得到了所有瀏覽器的支持,這意味著,現(xiàn)在就能很安全地使用這項功能。(ie 10+支持flex布局,對于我現(xiàn)在的項目,因為使用cors解決跨域,所以對ie的支持也是ie10+,完美契合)
???????嘴上說著支持,但是ie從來不讓我們失望,flex在ie下的bug和解決方法,有需自取。
一、基礎(chǔ)和術(shù)語 1、flex布局是啥

Flex 是 Flexible Box 的縮寫,意為"彈性布局",用來為盒狀模型提供最大的靈活性。
任何一個容器都可以指定為 Flex 布局。

.box{
  display: flex;
}

行內(nèi)元素也可以使用 Flex 布局。

.box{
  display: inline-flex;
}

Webkit 內(nèi)核的瀏覽器,必須加上-webkit前綴。當然如果你也使用了無敵的autoprefixer就不需要這么做了。

.box{
  display: -webkit-flex; /* Safari */
  display: flex;
}

還有一點需要注意的是設(shè)為 Flex 布局以后,子元素的float、clear和vertical-align屬性將失效。

2、基本概念

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

容器默認存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點)叫做main start,結(jié)束位置叫做main end;交叉軸的開始位置叫做cross start,結(jié)束位置叫做cross end。
項目默認沿主軸排列。單個項目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size。

二、屬性 1、容器的屬性

容器可以設(shè)置的屬性共有以下6個

flex-direction

flex-wrap

flex-flow

justify-content

align-items

align-content

1.1 flex-direction

flex-direction屬性決定主軸的方向(即項目的排列方向)。

.box {
  flex-direction: row | row-reverse | column | column-reverse;
}

該屬性的4個值分別表示:

row(默認值):主軸為水平方向,起點在左端。

row-reverse:主軸為水平方向,起點在右端。

column:主軸為垂直方向,起點在上沿。

column-reverse:主軸為垂直方向,起點在下沿。

1.2 flex-wrap

默認情況下,項目都排在一條線(又稱"軸線")上。flex-wrap屬性定義,如果一條軸線排不下,如何換行。

.box{
  flex-wrap: nowrap | wrap | wrap-reverse;
}

該屬性的3個值分別表示:

nowrap(默認):不換行。

wrap:換行,第一行在上方。

wrap-reverse:換行,第一行在下方。

1.3 flex-flow

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

.box {
  flex-flow:  || ;
}
1.4 justify-content屬性

justify-content屬性定義了項目在主軸上的對齊方式。

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

該屬性的6個值分別表示(具體對齊方式與軸的方向有關(guān)。下面假設(shè)主軸為從左到右):

flex-start(默認值):左對齊

flex-end:右對齊

center: 居中

space-between:兩端對齊,項目之間的間隔都相等。

space-around:每個項目兩側(cè)的間隔相等。所以,項目之間的間隔比項目與邊框的間隔大一倍。

space-evenly:每個項目之前的間距以及到邊緣的間距相等

1.5 align-items屬性

align-items屬性定義項目在交叉軸上如何對齊。

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

該屬性的5個值分別表示(具體的對齊方式與交叉軸的方向有關(guān),下面假設(shè)交叉軸從上到下):

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

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

center:交叉軸的中點對齊。

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

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

1.6 align-content屬性

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

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

該屬性的6個值分別表示:

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

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

center:與交叉軸的中點對齊。

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

space-around:每根軸線兩側(cè)的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。

stretch(默認值):軸線占滿整個交叉軸。

2、項目的屬性

項目可以設(shè)置的屬性同樣有6個:

order

flex-grow

flex-shrink

flex-basis

flex

align-self

2.1 order

默認情況下,項目按源順序排列。但是order屬性可以控制它們在flex容器中的顯示順序。

.item {
  order: ; /* default 0 */
}
2.2 flex-grow

flex-grow屬性定義項目的放大比例,如果所有項目的flex-grow屬性都為1,則它們將等分剩余空間(如果有的話)。如果一個項目的flex-grow屬性為2,其他項目都為1,則前者占據(jù)的剩余空間將比其他項多一倍。

.item {
  flex-grow: ; /* default 0 */
}
2.3 flex-shrink

與flex-grow想反,flex-shrink屬性定義了項目的縮小比例,如果所有項目的flex-shrink屬性都為1,當空間不足時,都將等比例縮小。如果一個項目的flex-shrink屬性為0,其他項目都為1,則空間不足時,前者不縮小。

.item {
  flex-shrink: ; /* default 1 */
}
2.4 flex-basis

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

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

它可以設(shè)為跟width或height屬性一樣的值(比如350px),則項目將占據(jù)固定空間。
(https://css-tricks.com/snippe... 中講到這個關(guān)鍵字還沒有得到很好的支持,因此很難測試,也很難知道它的兄弟最大內(nèi)容、最小內(nèi)容和適合內(nèi)容做什么。)

2.5 flex

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)。
建議優(yōu)先使用這個屬性,而不是多帶帶寫三個分離的屬性,因為瀏覽器會推算相關(guān)值。

2.6 align-self

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

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

該屬性可能取6個值,除了auto,其他都與align-items屬性完全一致。

三、路漫漫其修遠兮

???????其實flex布局沒什么自己的理解,發(fā)這篇文章單純?yōu)榱思由钣∠笞鰝€總結(jié),這篇文章大部分copy自flex布局教程和A Complete Guide to Flexbox

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/114737.html

相關(guān)文章

  • 解決flex布局新舊版本的兼容性寫法

    摘要:最新開發(fā)的項目用了的新特性布局,遇到了兼容性的問題。那么新舊版本是什么布局分為舊版本,過渡版本,以及現(xiàn)在的標準版本。所以如果你只是寫新版本的語法形式,是肯定存在兼容性問題的。 最新開發(fā)h5的項目用了css的新特性flex布局,遇到了CSS兼容性的問題。在網(wǎng)上找到了如下的解決辦法。 我寫頁面的時候用到過很多的flex布局,覺得非常好用。下面附上一篇不錯的flex布局介紹的文章。?Flex...

    raoyi 評論0 收藏0
  • 刷前端面經(jīng)筆記(二)

    摘要:但這會帶來高度塌陷的問題,所以要清除浮動。核心內(nèi)置類,會嘗試先于例外的是,利用的是轉(zhuǎn)換。安全性請求可被緩存,請求保存在瀏覽器的歷史記錄中則不能被緩存。與相比,的安全性較差,因為發(fā)送的數(shù)據(jù)是的一部分。 1.實現(xiàn)三欄布局(左右兩邊固定寬度,中間自適應(yīng)) 1)浮動布局左右兩邊固定寬度,并分別設(shè)置float:left和float:right。(但這會帶來高度塌陷的問題,所以要清除浮動。清除浮動...

    rottengeek 評論0 收藏0
  • Day06 - Fetch、filter、正則表達式實現(xiàn)快速古詩匹配

    摘要:正則表達式實現(xiàn)快速古詩匹配作者簡介是推出的一個天挑戰(zhàn)。數(shù)據(jù)匹配操作使用基礎(chǔ)參考文檔項目源碼分析正則找出匹配的詩句替換高亮的標簽構(gòu)造值會返回帶搜索關(guān)鍵字的新數(shù)組。執(zhí)行對大小寫不敏感的匹配。 Day06 - Fetch、filter、正則表達式實現(xiàn)快速古詩匹配 作者:?liyuechun 簡介:JavaScript30 是 Wes Bos 推出的一個 30 天挑戰(zhàn)。項目免費提供了 30 ...

    Warren 評論0 收藏0
  • Day06 - Fetch、filter、正則表達式實現(xiàn)快速古詩匹配

    摘要:正則表達式實現(xiàn)快速古詩匹配作者簡介是推出的一個天挑戰(zhàn)。數(shù)據(jù)匹配操作使用基礎(chǔ)參考文檔項目源碼分析正則找出匹配的詩句替換高亮的標簽構(gòu)造值會返回帶搜索關(guān)鍵字的新數(shù)組。執(zhí)行對大小寫不敏感的匹配。 Day06 - Fetch、filter、正則表達式實現(xiàn)快速古詩匹配 作者:?liyuechun 簡介:JavaScript30 是 Wes Bos 推出的一個 30 天挑戰(zhàn)。項目免費提供了 30 ...

    Carl 評論0 收藏0

發(fā)表評論

0條評論

legendmohe

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<