flexbox簡介


flexbox簡介

什么是flexbox

flexbox是一種新的布局方式,這種布局方式是2009年W3C提出的方案。它可以簡便,完整,完成頁面的布局。目前,它已經得到所有瀏覽器的支持。

但是flexbox從2009年以來,有各種版本的變化,比如2009年版本和2011年版本差別比較大。

為什么要有flexbox

每個新事物出現都有其歷史使命的。flexbox也是如此,傳統的布局依賴於屏幕的寬度和高度,或者依賴於計算的百分比,但是flex則是直接按照比例關系進行布局展示。

這樣做的好處就是當屏幕進行拉升等情況的時候,flex布局的頁面仍然符合我們的預期。

比如一個橫排布局

|-----|-----|----------|
|  1  |  1  |     2    |
|-----|-----|----------|

平時的布局情況我們就會為1設置寬度25%,2設置寬度50%。但是這個時候,如果我們要變成下面這個布局呢?

|-----|-----|-----|----------|
|  1  |  1  |  1  |     2    |
|-----|-----|-----|----------|

那么我們就需要重新設置比例了,1比例為20%,2比例為40%。

在flexbox中,我們就可以直接設置一個橫排為一個flex容器,然后子結構1的比例為1(flex:1),自結構2的比例為(flex:2)。

flexbox都有哪些屬性可以設置

強烈推薦(《A Complete Guide to Flexbox》)[https://css-tricks.com/snippets/css/a-guide-to-flexbox/]。文章圖文並茂地說了各個屬性的各種含義。

父容器的屬性

  • display:flex。 表明這個容器是flex布局。
  • flex-direction: row | row-reverse | column | column-reverse; 表明容器里面的子元素的排列方向。
  • flex-wrap: nowrap | wrap | wrap-reverse; 如果子元素溢出父容器的時候是否進行換行。
  • justify-content: flex-start | flex-end | center | space-between | space-around; 這一個容器子元素橫向排版在容器的哪個位置
  • align-items: flex-start | flex-end | center | baseline | stretch; 這個容器子元素縱向排版在容器的哪個位置
  • align-content: flex-start | flex-end | center | space-between | space-around | stretch; 當容器內有多行項目的時候,項目的布局

子元素的屬性

  • order: ; 子元素的排序
  • flex-grow: ; 分配剩余空間的比例
  • flex-shrink: ; 分配溢出空間的比例
  • flex-basis: | auto;
  • flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ] 在容器中占比
  • align-self: auto | flex-start | flex-end | center | baseline | stretch; 特定某個子元素的排布情況

參考文章

(A Complete Guide to Flexbox)[https://css-tricks.com/snippets/css/a-guide-to-flexbox/]
(終極Flexbox屬性查詢列表)[http://www.w3cplus.com/css3/css3-flexbox-cheat-sheet.html]
(一個完整的Flexbox指南)[http://www.w3cplus.com/css3/a-guide-to-flexbox.html]
(Flex 布局教程:語法篇)[http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html]
(利用flexbox構建可伸縮布局)[http://yanni4night.com/blog/flexbox-layout.html]


免責聲明!

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



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