本文介绍了多种 CSS 实现元素居中的方法,包括 Flex、Grid、绝对定位、table 布局及其他方式(如 text-align、margin、line-height 和 vertical-align),并提供了相应代码示例。
.container {
background-color: aquamarine;
height: 200px;
width: 200px;
display: flex;
justify-content: center;
align-items: center;
}
.element {
background-color: skyblue;
width: 100px;
height: 100px;
}
.container {
display: grid:
align-items: center;
}
Warning
.container {
position: relative;
width: 200px;
height: 200px;
background-color: #fbf;
margin: 20px auto;
}
.element {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 100px;
height: 100px;
background-color: #fb3;
}
Note
这里的
transform也可以替换为margin: -50px 0 0 -50px;但是仅限于固定宽高
.container {
display: table;
text-align: center;
background-color: #f92;
width: 200px;
height: 200px;
margin: 20px auto;
}
.centered {
display: table-cell;
vertical-align: middle;
}
.content {
display: inline-block;
background-color: #fb7299;
width: 100px;
height: 100px;
}
.container {
text-align: center;
}
使用 margin: auto 将块级元素(如 div)水平居中。请确保元素具有明确的宽度 (width)。
.container {
margin-left: auto;
margin-right: auto;
width: 50%;
}
使用 line-height 将单行文本垂直居中。设置元素的 line-height 等于其 height:
.single-line {
height: 50px;
line-height: 50px;
}
当用于行内元素(如 <span>、<img>)或行内块级元素(如 <button>、<input>、<textarea>)时,vertical-align: middle 将使元素在其 “line box” 内垂直对齐。这意味着行内元素或行内块级元素将与其他行内内容(如文字或图像)垂直居中对齐。
<p>
This is a
<span style="vertical-align: middle;">vertically middle-aligned</span> text.
</p>