html结构:
<div class="parent"> <div class="child"></div> </div>
方法一: display:flex
.parent { 500px; height: 500px; background: red; display: flex; align-items: center; justify-content: center; } .child { 100px; height: 100px; background: blue; }
方法二:display:table-cel
.parent{ 500px; height: 500px; background: red; display: table-cell; vertical-align: middle; } .child{ 100px; height: 100px; background: blue; margin: auto; }
方法三:绝对定位和0
.parent{ 500px; height: 500px; background: red; position: relative; } .child{ 100px; height: 100px; background: blue; margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }
方法四:负边距
.parent{ 500px; height: 500px; background: red; position: relative; } .child{ 100px; height: 100px; background: blue; position: absolute; top: 50%; left: 50%; margin-left: -50px; margin-top: -50px; }
以上四种方法都可以完成用css实现子元素在父元素实现水平和垂直居中。