2024年5月11日发(作者:)

div内容垂直居中的方法

随着div的普及使用,居中的特技也在使用越来越多。在前端

开发中,实现div内容垂直居中有以下几种方法:

一、使用CSS table布局

CSS table布局是使用table元素的display属性来模拟table

布局,利用table-cell来居中特定元素。使用display:table;和

display:table-cell;属性,我们可以让内容垂直居中,具体实现

如下:

html:

```

content

```

css:

```

.wrap{

display: table;

width: 100%;

height: 100px;

- 1 -

}

.inner-box{

display: table-cell;

vertical-align: middle;

}

```

这种方式的优点是兼容性比较好,能在IE 8及以上的浏览器使

用;但是缺点也很明显,就是有点麻烦,要配合HTML元素以及CSS

样式才能实现内容垂直居中,无形中多做了更多的工作。

二、使用flex布局

flex是最近几年出现的一种布局,它能很方便的实现div内容

的垂直居中,具体实现如下:

html:

```

content

```

css:

```

- 2 -

.flex-wrap {

display: flex;

align-items: center;

height: 100px;

}

```

使用flex布局居中的最大优点在于实现更加方便,只需要两行

CSS代码即可实现div内容的垂直居中,兼容性也不错,可以在IE

10以及以上的浏览器使用。

三、使用CSS3 transform:translateX属性

CSS3 transform提供了许多属性,其中有一个叫translateX,

通过translateX可以实现水平移动,进而实现内容的垂直居中,具

体实现如下:

html:

```

content

```

css:

- 3 -

```

.translate-wrap {

position: relative;

width: 100%;

height: 100px;

}

.translate-inner {

position: absolute;

top: 50%;

left: 50%;

transform: translateX(-50%);

}

```

通过设置父元素与子元素的定位,进而让子元素的水平位置居

中,并且再设置子元素的translateX(-50%)来实现内容的垂直居

中。这种方式的优点是让内容垂直居中只需要使用一行CSS代码,

非常方便;缺点在于兼容性不太好,只能在IE 9以及以上的浏览器

使用。

以上就是实现div内容垂直居中的几种不同方法介绍,从使用

方便、性能以及兼容性上来看,使用flex布局是最佳选择,无论是

PC端还是移动端都可以使用;而CSS 3 transform:translateX则

只能用在移动端,在PC端不能使用,并且兼容性也非常差;CSS

- 4 -

table则是一种比较麻烦的方法,需要配合HTML元素以及CSS样式

来实现内容的垂直居中,但是可以实现兼容性最好的效果。

总而言之,实现div内容垂直居中有多种方法,需要实际应用

情况来决定选择哪种方法,只要选择最接近的方法,就可以实现完

美的div内容垂直居中。

- 5 -