CSS Flex布局完全指南 #flight.Archives002


Title/CSS Flex布局完全指南 #flight.Archives002

序(from Ruanyf) :

網頁布局(layout)是 CSS 的一個重點應用.
布局的傳統解決方案,基於盒狀模型,依賴 display 屬性 + position屬性 + float屬性. 它對於那些特殊布局非常不方便,比如,垂直居中就不容易實現
2009年,W3C 提出了一種新的方案 - Flex 布局,可以簡便、完整、響應式地實現各種頁面布局.

Tag/Flex介紹

.container{
    display:flex; /*or inline-flex*/
}

設置了.container元素為Flex容器(Flex container),.container的直接子元素被稱為Flex項目(Flex item)
Flex元素按照主軸(main-axis)的方向排列,交叉軸(cross-axis)與主軸垂直
主軸的開始和結束被稱為 main start 和 main end
交叉軸的開始和結束被稱為 cross start 和 cross end

Tag/容器(flex container)屬性

屬性 可取值 說明
display flex,inline-flex 指定一個容器是否啟用Flex布局
flex-direction row,row-reverse,column,column-reverse 指定主軸(main-axis)的方向
flex-wrap nowrap,wrap,wrap-reverse 指定內容超出一行情況的換行方式
flex-flow <flex-direction> <flex-wrap> CSS簡寫屬性
justify-content flex-start,flex-end,center,space-between,space-around 指定項目在主軸(main-axis)上的對齊方式
align-items flex-start,flex-end,center,baseline,stretch 指定項目在交叉軸(cross-axis)上的對齊方式
align-content flex-start,flex-end,center,space-between,space-around,stretch 同時指定項目在兩根軸線上的對齊方式(如果項目只有一根軸線.該屬性不起作用)

Tag/項目(flex item)屬性

屬性 可取值 說明
order <number> 指定項目的排列順序,默認值為0,order相同時按照項目在DOM中的順序排序
flex-grow <number> 指定項目大小的比例,默認值為0,width屬性會優先指定flex-item的最小大小
flex-shrink <number> 指定項目大小在單行空間不足時的收縮比例,默認值為1
flex-basis <length> 指定項目在主軸方向上的初始大小
flex <'flex-grow'> <'flex-shrink'> <'flex-basis'> CSS簡寫屬性
align-self auto,flex-start,flex-end,center,baseline,stretch 指定單個元素的對齊方式,優先級高於align-items屬性

->> Details

項目屬性 - Flex 屬性可取值詳細介紹 (from MDN)

/* 關鍵字值 */
flex: auto;
flex: initial;
flex: none;

/* 一個值, 無單位數字: flex-grow */
flex: 2;

/* 一個值, width/height: flex-basis */
flex: 10em;
flex: 30px;
flex: min-content;

/* 兩個值: flex-grow | flex-basis */
flex: 1 30px;

/* 兩個值: flex-grow | flex-shrink */
flex: 2 2;

/* 三個值: flex-grow | flex-shrink | flex-basis */
flex: 2 2 10%;

/*全局屬性值 */
flex: inherit;
flex: initial;
flex: unset;

->> See also

Flex Bugs https://github.com/philipwalton/flexbugs

Flexbox Properties Demonstration https://codepen.io/justd/full/yydezN/

Ruanyf#Flex布局的Demo https://www.ruanyifeng.com/blog/2015/07/flex-examples.html
Ruanyf#Flex布局表單的實現 https://www.ruanyifeng.com/blog/2018/10/flexbox-form.html

MDN中文文檔 https://developer.mozilla.org/zh-CN/docs/Learn/CSS/CSS_layout/Flexbox

MDN 英文文檔 https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox

CodingStartUp https://www.bilibili.com/video/BV1qJ411N7TA

CSS-Tricks https://css-tricks.com/snippets/css/a-guide-to-flexbox/

Scotch.io https://scotch.io/tutorials/a-visual-guide-to-css3-flexbox-properties

->> Version History

現在版本為V1.0
詳見 Github(@flightmakers)

8.11 發布V1.0

8.13 修改一些表述,增加了幾個Ruanyf的鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM