绝对定位居中
- 这个方法就是利用绝对定位,使它的top、left、right、bottom都为0就可以实现居中
演示结构:
1 2 3 4 5
| <div class="box"> <div class="children_box"></div> </div>
|
CSS样式结构:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| <style> .box { width: 200px; height: 200px; border: 1px solid #000000; position: relative; } .children_box { width: 100px; height: 100px; position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: auto; background: #0400ff; } </style>
|
样式效果:
- 这个方法用在垂直居中都可以,就使它的上下为 0 就可以实现垂直居中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <style> .box { width: 200px; height: 200px; border: 1px solid #000000; position: relative; } .children_box { width: 100px; height: 100px; position: absolute; top: 0; bottom: 0; margin: auto; background: #0400ff; } </style>
|
flex布局居中
- 主轴设为居中,justify-content: center,一般主轴默认为x轴方向,那么就是水平居中,像下面这样👇
- 侧轴设为居中,align-items: center,一般侧轴默认为y轴方向,那么就是垂直居中,像下面这样👇
- 综上,父盒子设为flex布局,然后再将主轴和侧轴都设为center,就可以让子盒子达到整体居中的效果了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| <style> .box { width: 200px; height: 200px; border: 1px solid #000000; display: flex; justify-content: center; align-items: center;
} .children_box { width: 100px; height: 100px; background: #0400ff; } </style>
|
translate居中
比如 translate(50px,50px);
上面这条可以通过translate方法来将文字或图像在水平方向和垂直方向上分别垂直移动50像素
可以改变元素的位置,x、y可为负值;
translate(x,y); 水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)
translateX(x); 仅水平方向移动(X轴移动)
translateY(y); 仅垂直方向移动(Y轴移动)
- 可以通过设置父盒子为relative,即相对定位,子盒子设为absolute,即绝对定位,然后上和左都设为50%,再利用translate(-50% , -50%)实现在水平和垂直方向都移动-50%的相对距离,实现子盒子整体的居中效果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <style> .box { width: 200px; height: 200px; border: 1px solid #000000; position: relative;
} .children_box { width: 100px; height: 100px; background: #0400ff; position: absolute; top: 50%; left: 50%; transform: translate(-50% , -50%); } </style>
|