當一個元素生成一個或多個 box 時,其中一個是 principal box,用來代表該元素本身的內容
和子元素的 box
。
Tips
::marker 偽元素
box,或 table 元素會生成一個 table wrapper box位置會相對於
principal box 的位置。根據 W3C Outer Display 中有提到 principal box 佈局的方式有以下三種
run-in 是一種特殊行為的 inline-level box,將元素 合併到
後方 block container 中,使該元素在結構呈現上,像是後方區塊元素的第一個行內元素,若後方元素不是 block box 時,該元素本身會變為 block box,詳細可以參考 W3C 文件
常見的範例為,將標題合併到段落中,請參考下方圖片。
上方效果,其實也可以透過 float 來達到,請參考此 codepen。
此屬性目前很少用到,因為瀏覽器支援度極差(請參考下方 can i use 結果)
inline-level box,代表的是由行內元素(inline-level elements)組成的 box,box 內的元素會呈現水平排列。
Tips
inline-level box 又分為以下兩種
Tips
常見的 inline box 範例:span、a。
非 inline-level boxes 的 inline boxes 就稱為 atomic inline-level boxes 。例如下方三種元素
Tips
block-level box 會參與 BFC 佈局。
區塊元素之為盒模型( box model ),由 content、padding、border、margin 所組成。
元素寬度預設會撐到最大,使其占滿整個容器
多個元素會換行來呈現,並不會並排
區塊盒例子:div、h1、p、ul、li、table 等等。
常見區塊元素標籤:div、ul li、p、h1
Block-level elements 代表那些會生成 principal box 為 block-level 的元素。