文章將陸續整理並更新至個人部落格。
先前介紹格式化上下文(formatting context)時,曾說到 container box 會為其內容建立格式化上下文,而 display: flex 的元素會為其內容建立 flex formatting contex,其處在這佈局環境中的子元素,皆會遵照它的佈局規則。
display 為 flex
或 inline-flex
的元素。
flex container 會建立 flex formatting contex(FFC),所以:
此元素不會
與 float 元素重疊。
此元素不會
與其子
元素(flex item)發生 margin collapsing。
column-* 屬性不
適用。
display 為 flex 或 inline-flex 元素的子
元素稱為 flex item
。
建立
block formatting contex(BFC),所以 flex items
之間不會
發生 margin collapsing
。
參與
flex formatting contex(FFC)。
vertical-align 不
適用。
float 與 clear 不
適用。
即使 flex item 是 display: inline 的元素,仍然可以
透過 width
與 height
屬性調整寬高。因 flex item 是 blockified。
註:建立
formatting contex 是為後裔元素
建立一個佈局環境
;參與
formatting contex 是元素本身
處在何種佈局環境
。
flex items 可以透過 flex-direction
屬性來決定排列方向
,flex-direction 同時也會決定主軸(main axis)
與副軸(cross axis)
。
摘自W3C
flex-direction 共有四個屬性值,會受到書寫方向 writing-mode
影響。
橫向
且由左至右
的書寫方式來說,此時 row 為橫向,column 為直向。main start
至 main end
排列。main end
至 main start
排列。main start
至 main end
排列。main end
至 main start
排列。還在持續看 flex 規範中~ 或許看完之後會再重新整理一次文章~
W3C-Flexible Box Layout
W3C-Automatic Box Type Transformations