跳至內容
Astera Technology

第一段上距為何推走整個容器?

首段的上距可以留在容器內,也可能與上層合併;用實際座標分清楚。

section 從 y=0 開始,段落則從 y=24 開始。

下載完整個案資料及參考答案 ↓

先看這個例子

本例 body 沒有 margin,section 沒有邊框或內距,段落上距則是 24px。flow-root 建立區塊格式化脈絡,把這個上距保留在 section 內。

輸入與瀏覽器原生結果
情況輸入或查看方法結果與意思
父層頂部量度 .box 頂部0px
子元素頂部量度 .box p 頂部24px
上距位置查看有底色的 section上距保留在有底色範圍內
下載可編輯 CSV ↓

瀏覽器怎樣處理

一般區塊配置中,相鄰的垂直 margin 可能合併。新的區塊格式化脈絡會改變這個邊界。flow-root 沒有刪段落 margin,而是阻止本例父層與首段上距合併。水平方向 margin 不沿用這條合併規則。

一般區塊會令這個上距合併

反例移除 flow-root,無邊框、無內距的容器及段落上距均不變。

反例原始碼,請另開例子核對
<style>body{margin:8px}</style>
<style>body{margin:0}.box{background:#e3efe8}.box p{margin:24px 0 0}</style><section class="box"><p>工作坊的第一段筆記</p></section>

這份固定反例的父層和子元素頂部同在 y=24;上距在父層底色之外。

試着修正

flow-root 是否把子元素 margin 變成零?

查看參考答案

不是。上距計算值仍是 24px,只改變它能否跨父層邊界合併。

  • 另開文件,父層和子元素頂部都要量。
  • 比較時保留本例無邊框、無內距的條件。

原始例子檔案

相關資源