基本结构样式:
.box {
width: 400px;
height: 400px;
background-color: red;
}
.inner {
width: 100px;
height: 100px;
background-color: blue;
}
<div class="box">
<div class="inner"></div>
</div>
将父元素启动flex布局,并设置justify-content: center; align-items: center;
。
添加样式:
.box {
display: flex;
justify-content: center;
align-items: center;
}
父元素设置display: flex;
,子元素设置margin: auto;
。
添加样式:
.box { display: flex; }
.inner { margin: auto; }
将子元素的top、left、right、bottom都设置为0,再设置其margin为auto即可。
添加样式:
.box { position: relative; }
.inner {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}
先设置子元素的top和left都为50%,即父元素宽高的一半,再使用translate往回走自己宽高的一半。
添加样式:
.box { position: relative; }
.inner {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
添加样式:
.box { position: relative; }
.inner {
position: absolute;
/* 直接计算 */
/* top: 150px;
left: 150px; */
top: calc(50% - 50px);/* 使用calc() */
left: calc(50% - 50px);
}
子元素设置margin-top
;但是存在父子共用外边距问题,父元素需要设置overflow: hidden;
。
添加样式:
.box { overflow: hidden; }
.inner {
margin: 0 auto;
margin-top: 150px;
}
父元素设置padding,防止父盒子被撑大,需加上box-sizing: border-box;
。
添加样式:
.box {
box-sizing: border-box;
padding: 150px;
}
父元素设置display: table-cell;
和vertical-align: middle;
,子元素设置margin: 0 auto;
。
添加样式:
.box {
display: table-cell;
vertical-align: middle;
}
.inner { margin: 0 auto; }
父元素设置display: table-cell
以及内容的水平和垂直居中,注意子元素要设置为行内块。
添加样式:
.box {
display: table-cell; /* 此元素会作为一个表格单元格显示 */
vertical-align: middle; /* 把此元素放置在父元素的中部 */
text-align: center;
}
.inner { display: inline-block; }
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/MomentYY/p/15737561.html
内容来源于网络,如有侵权,请联系作者删除!