【CSS】inline, block, inline-block 比較

當然可以!以下是一份完整對比 inline、block、inline-block 以及其他 相似概念的屬性(如 flex、grid) 的整理,幫你從「排列方式、寬高設定、用途」等角度快速掌握它們的差異:


✅ display 類型比較總覽表

特性/類型 inline block inline-block flex grid
是否換行 ❌ 不會 ✅ 會 ❌ 不會 ❌ 子元素可橫向排列 ❌ 預設橫向排列
可否設寬高 ❌ 不行(無效) ✅ 可以 ✅ 可以 ✅ 可以 ✅ 可以
子元素排列方式 橫向排列 垂直排列 橫向排列 橫向(可變) 依格線排列(2D)
是否可佔整行 ❌ ✅ ❌ ❌(看內容/設定) ❌(看格線配置)
適合用來 文字、行內元素 區塊、段落、容器 輕量橫向組件(按鈕等) 排列多個項目(卡片、列) 複雜版面、表格、卡片區塊
可否放 block 元素 ❌ ✅ ✅ ✅ ✅

✅ 說明重點

🔹 inline


🔹 block


🔹 inline-block


🔹 flex(父元素設 display: flex)


🔹 grid(父元素設 display: grid)


✅ 總結建議(選擇指引)

想做的事 建議使用
行內放文字(無寬高) inline
單區塊、自然上下排列 block
要設定寬高又要橫向排列 inline-block
排列表現靈活(橫、對齊) flex
網格狀、表格排版需求 grid

inline-block 是否可以取代 inline ?

✅ 簡答:

可以,但要小心。inline-block 在大多數情況下可以取代 inline,但它們在行為上仍有差異,直接替換可能會造成版面細節不同。


🔍 詳細說明:inline-block 取代 inline 的注意事項

比較面向 inline inline-block 差異是否影響?
橫向排列 ✅ 會 ✅ 會 ✅ 相同
寬高控制 ❌ 無效 ✅ 可控制寬高 ✅ 有差異
padding / margin 上下 ❌ 通常無效或不穩定 ✅ 完全有效 ✅ 有差異
baseline 對齊 ✅ 與文字 baseline 對齊 ⚠️ 有時偏移(可能上下出現間隙) ✅ 有差異
line-height 影響 ✅ 受影響,與文字同行 ✅ 也受影響,但更像方塊 ⚠️ 可能導致意外間距
內容包覆 ✅ 只包住文字寬度 ✅ 包覆內容,也可設定寬高 ✅ 相同
應用範圍 文字、icon 等純行內項目 小區塊元件:按鈕、badge、icon + 文字等 ✅ 可取代但需測試

✅ 什麼情況可以直接用 inline-block 取代?

✔ 適合:

❌ 不適合:


🧪 實驗範例

<p>
  Hello <span style="display:inline; background:yellow">inline</span> world!
</p>
<p>
  Hello <span style="display:inline-block; background:lightblue">inline-block</span> world!
</p>

image-1754373945717.png

你會發現:


🎯 結論

問題 答案
inline-block 可以取代 inline 嗎? ✅ 可以,但不完全等效
有什麼副作用? ⚠️ 行高變化、baseline 偏移、可能多出空隙
要不要取代? 📌 如果需要控制寬高 → 用 inline-block;只包字串就繼續用 inline

 


修訂版本 #4
由 treeman 建立於 2025-08-05 05:58:24 CST
由 treeman 更新於 2025-08-05 06:05:49 CST