居中
<div class="container">
<div class="content"></div>
</div>
.container {
width: 100%;
height: 600px;
border: 1px solid black;
}
.container .content {
width: 100px;
height: 100px;
background: red;
}
水平居中
- 方法一:将其父元素定位relative,定位absolute + margin auto
.container {
width: 100%;
height: 600px;
border: 1px solid black;
position: relative;
}
.container .content {
width: 100px;
height: 100px;
background: red;
position: absolute;
left: 0;
right: 0;
margin: auto;
}
- 方法二:定位 absolute + 负margin,
.container {
width: 100%;
height: 600px;
border: 1px solid black;
position: relative;
}
.container .content {
width: 100px;
height: 100px;
background: red;
position: absolute;
left: 50%;
margin-left: -50px;
}
- 方法三:行内元素水平居中
.container {
width: 100%;
height: 600px;
border: 1px solid black;
text-align: center;
}
.container .content {
width: 100px;
height: 100px;
background: red;
display: inline-block;
}
垂直居中
- 方法一:定位 absolute + 负margin
.container {
width: 100%;
height: 600px;
border: 1px solid black;
position: relative;
}
.container .content {
width: 100px;
height: 100px;
background: red;
position: absolute;
top: 50%;
margin-top: -50px;
}
- 方法二:relative + transform
.container {
width: 100%;
height: 600px;
border: 1px solid black;
}
.container .content {
width: 100px;
height: 100px;
background: red;
position: relative;
top: 50%;
transform: translateY(-50%);
}
- 方法三:通过verticle-align:middle实现垂直居中
- vertical-align:设置元素的垂直对齐方式
- verticle生效的前提是display: inline-block;
.container {
width: 100%;
height: 600px;
border: 1px solid black;
}
.container::before{
content: "";
display: inline-block;
vertical-align: middle;
height: 100%;
}
.container .content {
width: 100px;
height: 100px;
background: red;
display: inline-block;
vertical-align: middle;
}
水平垂直居中
- 方法一:将其父元素定位relative,定位absolute + margin auto
.container {
width: 100%;
height: 600px;
border: 1px solid black;
position: relative;
}
.container .box {
width: 100px;
height: 100px;
background: red;
position:absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
- 方法二:定位 absolute + 负margin,(为父元素设置了相对定位之后,子元素的绝对定位就是相对于父元素盒子的左上顶点,所以定位之后,需要回退盒子一半的距离)
.container {
width: 100%;
height: 600px;
border: 1px solid black;
position: relative;
}
.container .content {
width: 100px;
height: 100px;
background: red;
position:absolute;
top: 50%;
left: 50%;
margin-left: -50px;
margin-top: -50px;
}
- 方法三:利用transform,translate
.container{
width:600px;
height: 600px;
border: 1px solid black;
position: relative;
}
.container .box{
width: 100px;
height: 100px;
background: red;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}