垂直居中
flex (子级宽高未知)
父级增加属性 display: flex;
、justify-content: center;
、align-items: center;
1 2 3 4 5 6 7 8 9 10 11 12 13
| <style> .box { width: 300px; height: 300px; border: 1px solid red; display: flex; justify-content: center; align-items: center; } </style> <div class="box"> <div class="item">1</div> </div>
|
定位 + CSS3 (子级宽高未知)
父级 position: relative;
,子级 position: absolute;
、top: 50%;
、left: 50%;
、transform: translate(-50%,-50%);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| <style> .box { width: 300px; height: 300px; border: 1px solid red; position: relative; } .item{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); } </style> <div class="box"> <div class="item">1</div> </div>
|
定位 (子级宽高未知)
父级 position: relative;
,子级 position: absolute;
、top: 0;
、bottom: 0;
、left: 0;
、right: 0;
、margin: auto;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <style> .box { width: 300px; height: 300px; border: 1px solid red; position: relative; } .item{ width: 50px; height: 50px; background: red; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; } </style> <div class="box"> <div class="item">1</div> </div>
|
定位 (子级宽高已知)
父级 position: relative;
,子级 position: absolute;
、top: 50%;
、left: 50%;
、margin-top: -高一半
、margin-left: -宽一半
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <style> .box { width: 300px; height: 300px; border: 1px solid red; position: relative; } .item{ position: absolute; width: 50px; height: 50px; top: 50%; left: 50%; margin-left: -25px; margin-top: -25px; } </style> <div class="box"> <div class="item">1</div> </div>
|
table-cell (子级宽高未知)
父级 display: table-cell;
、text-align: center;
、vertical-align: middle;
,子级 display: inline-block;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <style> .box { width: 300px; height: 300px; border: 1px solid red; display: table-cell; text-align: center; vertical-align: middle; } .item{ width: 50px; height: 50px; background: red; display: inline-block; } </style> <div class="box"> <div class="item">1</div> </div>
|
或者
父级 display: table-cell;
、vertical-align: middle;
,子级 display: block;
、margin: 0 auto;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <style> .box { width: 300px; height: 300px; border: 1px solid red; display: table-cell; vertical-align: middle; } .item{ width: 50px; height: 50px; background: red; display: block; margin: 0 auto; } </style> <div class="box"> <div class="item">1</div> </div>
|
最后更新时间: