水平垂直居中的方式

方案一

div 绝对定位水平垂直居中【margin:auto 实现绝对定位元素的居中】,

兼容性:,IE7 及之前版本不支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
```

## 方案二

div 绝对定位水平垂直居中【margin 负间距】      这或许是当前最流行的使用方法。

```css
div {
width: 200px;
height: 200px;
background-color: green;
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
}

方案三

div 绝对定位水平垂直居中【Transforms 变形】

兼容性:IE8 不支持;

1
2
3
4
5
6
7
8
9
div {
width: 200px;
height: 200px;
background-color: green;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}

方案四

css 不定宽高水平垂直居中

1
2
3
4
5
6
7
8
9
10
11
.box {
height: 600px;
display: flex;
justify-content: center;
align-items: center;
}
.box > div {
background-color: green;
width: 200px;
height: 200px;
}

方案五

将父盒子设置为 table-cell 元素,可以使用 text-align:center 和 vertical-align:middle 实现水平、垂直居中。比较完美的解决方案是利用三层结构模拟父子结构

1
2
3
4
5
<p class="outerBox tableCell"></p>
<p class="ok"></p>
<p class="innerBox">tableCell</p>
<p></p>
<p></p>

css

1
2
3
4
5
6
7
8
9
10
11
12
13
/* table-cell实现居中 将父盒子设置为table-cell元素,设置 text-align:center,vertical-align: middle;
子盒子设置为inline-block元素 */
.tableCell {
  display: table;
}
.tableCell .ok {
  display: table-cell;
  text-align: center;
  vertical-align: middle;
}
.tableCell .innerBox {
  display: inline-block;
}

方案六

对子盒子实现绝对定位,利用 calc 计算位置

1
2
3
<p class="outerBox calc"></p>
<p class="innerBox">calc</p>
<p></p>

css

1
2
3
4
5
6
7
8
9
10
11
12
13
/*绝对定位,clac计算位置*/
.calc {
 position: relative;
}
.calc .innerBox {
 position: absolute;
 left: -webkit-calc((500px - 200px)/2);
 top: -webkit-calc((120px - 50px)/2);
 left: -moz-calc((500px - 200px)/2);
 top: -moz-calc((120px - 50px)/2);
 left: calc((500px - 200px) / 2);
 top: calc((120px - 50px) / 2);
}
文章作者: wenmu
文章链接: http://blog.wangpengpeng.site/2020/01/16/%E6%B0%B4%E5%B9%B3%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD%E7%9A%84%E6%96%B9%E5%BC%8F/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 温木的博客
微信打赏