設置canvas元素margin: 0 auto無法水平居中,但單獨用margin-left/margin-top卻能定位。
canvas默認是行內元素(inline),而margin: 0 auto僅對塊級元素(block)且具有明確寬度時生效。
/* 方法1:轉為塊級元素 */
canvas {
display: block;
margin: 0 auto;
}
/* 方法2:Flex佈局(推薦) */
.container {
display: flex;
justify-content: center;
}
/* 方法3:Grid佈局 */
.container {
display: grid;
place-items: center;
}
| 屬性 | inline元素 | block元素 |
|---|---|---|
| margin: 0 auto | ❌ 無效 | ✅ 生效(需定寬) |
| width/height | ❌ 無效 | ✅ 生效 |
| 換行行為 | 不換行 | 獨佔一行 |
canvas設置display: block記住:行內元素不支持margin:0 auto,這是CSS基礎盒模型特性,而非Canvas特有問題。