准备工作
首先,在做之前,咱们先来分析一下我们要做的是什么?
一个盒子,垂直 水平 居中
首先 有居中 就必定会被一个父容器(盒子)包裹。
其次 要居中的盒子不会超出父容器大小(否则做居中意义就不大了)
然后 要居中的盒子的宽高可以分为两类 1. 具有固定的宽高。 2. 没有固定的宽高
根据盒子的类型也可分为两类 1.行内快元素inline-block 2. 块级元素block
那么 现在开始吧!
方式一 (弹性盒模型的方式)
html 代码
1 2 3
| <div class="box"> <div class="container"></div> </div>
|
css 代码
1 2 3 4 5 6 7 8 9 10 11
| .box{ height: 100vh; display: flex; justify-content: center; align-items: center; } .container{ width: 200px; background-color: aqua; height: 200px; }
|
效果图

方式二 (绝对定位)
html 代码
1 2 3
| <div class="box"> <div class="container"></div> </div>
|
css 代码
1 2 3 4 5 6 7 8 9 10 11
| .container { width: 200px; background-color: red; height: 200px; margin: auto; position: absolute; top: 0; bottom: 0; left: 0; right: 0; }
|
效果图

注意:由于是使用绝对定位。元素脱离文档流,相对于具有除去static定位以外的其他父级定位去定位的,如果没有父级定位,根据body来定位
html 代码
1 2 3
| <div class="box"> <div class="container"></div> </div>
|
css代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| body { position: relative; height: 100vh; }
.container { width: 200px; height: 200px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); background-color: blueviolet; }
|
效果图

方式四(位移+外边距 + vh)
html 代码
1
| <div class="container"></div>
|
css 代码
1 2 3 4 5 6 7 8
| .container { width: 200px; height: 200px; margin: 0 auto; margin-top: 50vh; background-color: blanchedalmond; transform: translate(0, -50%) }
|
效果图

注意:部分文章可能会在不就的将来更新
如果能够帮助到你,是小编最大的荣幸
当然 有 不好的地方 请大家帮忙指出 学习永无止境
小编一直认为 人外有人 天外有天 一起学习 共同进步
让我们共同加油吧!!!
版权声明: 转载请留言,未经许可禁止转载,转载时请注明出处(必须保留作者署名及链接)