CSS 布局中常見技巧:單行文本垂直居中,設置 line-height == height。為什麼這能生效?什麼場景適用?
height:決定盒模型內容區高度,即容器外觀高度。line-height:決定行盒基線間距,瀏覽器按行盒高度在容器內垂直置中文本。| 場景 | 是否推薦 | 說明 |
|---|---|---|
| 單行文本/圖標垂直居中 | ✅ 首選 | 代碼極簡,兼容性最好(IE6+) |
| 多行文本 | ❌ 禁用 | 行高固定導致行間距極大或重疊,改用 flex/grid |
| 包含替換元素 | ⚠️ 謹慎 | img/input 有自身高度,line-height 可能失效 |
.center { display: flex; align-items: center; justify-content: center; }
/* 或 */
.center { display: grid; place-items: center; }
Flex/Grid 支持多行、多元素、自適應高度,是當前主流垂直居中方案。
單行用 line-height=height,多行用 flex/grid。