块级元素居中
一、居中元素不定宽高情况(子元素有内容)
- 关键样式父元素position: relative, 子元素position: absolute, 上左为50%,transform: translate(-50%, -50%)
<style>
.main {
background-color: aquamarine;
width: 400px;
height: 400px;
/* 关键代码 */
position: relative;
}
.content {
background-color: red;
/* 关键代码 */
position: absolute;
/* 垂直居中 */
top: 50%;
transform: translateY(-50%);
/* 水平居中 */
left: 50%;
transform: translateX(-50%);
/*transform: translate(-50%, -50%);*/
}
</style>
- flex, 父元素设置display: flex, align-items: center, justify-content: center.
<style>
.main {
background-color: aquamarine;
width: 400px;
height: 400px;
/* 关键代码 */
display: flex;
/* 垂直居中 */
align-items: center;
/* 水平居中 */
justify-content: center;
}
.content {
background-color: red;
}
</style>
二、仅居中元素定宽高情况
- 关键样式父元素position: relative, 子元素position: absolute, 上下左右0,margin: auto
<style>
.main {
background-color: aquamarine;
width: 400px;
height: 400px;
/* 关键代码 */
position: relative;
}
.content {
background-color: red;
width: 200px;
height: 200px;
/* 关键代码 */
position: absolute;
/* 垂直居中 */
top: 0;
bottom: 0;
/* 水平居中 */
left: 0;
right: 0;
margin: auto;
}
</style>
行内元素居中
- 水平居中text-align: center
- 垂直居中父height,子line-height同高