Dom結構:flex
<div class="box"> <div class="inner"> 123 </div> </div>
1, 僞元素 加 vertical-align spa
.box { width: 300px; height: 300px; border: 1px solid red; text-align: center; } .box:before{ content: ''; height: 100%; width: 0; display: inline-block; vertical-align: middle; } .inner{ display: inline-block; }
2, table -ceilcode
.box { width: 300px; height: 300px; border: 1px solid red; display: table-cell; vertical-align: middle; text-align: center; }
3, flexorm
.box { width: 300px; height: 300px; border: 1px solid red; display: flex; justify-content: center; align-items: center; }
4, transform blog
.box { width: 300px; height: 300px; border: 1px solid red; position:relative; } .inner{ position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
5, absolute + margin:auto (子元素要設置寬高)it
.box { width: 300px; height: 300px; border: 1px solid red; position:relative; } .inner{ position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100px; height: 100px; margin: auto; }
6, flex + margin:autoio
.box { width: 300px; height: 300px; border: 1px solid red; display: flex; } .inner{ margin: auto; }