目录

方法1:设定行高 ( line-height )

方法2:绝对定位

方法3:利用 transform

方法4:使用表格或假装表格

方法5:使用 Flexbox

十种水平垂直居中方案 :


    在编辑一个页面时,通常用到 水平居中垂直居中 

而水平居中很好处理,不外乎就是 设定

margin: 0 auto; 或是 text-align: center; 

就能轻松解决掉 水平居中 的 问题,但一直以来最麻烦的对齐问题,

都是 “ 垂直居中 ” 这个讨人厌的设定,

以下将介绍五种单纯利用 CSS 来实现 垂直居中 的 方法。

方法1:设定行高 ( line-height )

设定行高 是 垂直居中 最简单 的 方式,

适用于 “单行” 的 “行内元素” ( inline、inline-block ),

例如 单行 的 标题,或是已经设为 inline-block 属性 的 div,

若将 line-height 设成和 高度 一样 的数值,则内容的 行内元素 就会被 垂直居中

不过由此就可以看出,为什么必须要单行的行内元素,

因为如果多行,第二行与第一行的间距会变超大,

就不是我们所期望的效果了。

示例代码 :

垂直居中Java 垂直居中代码_css

实例效果 :

垂直居中Java 垂直居中代码_垂直居中Java_02

方法2:绝对定位

口诀 : 父 相 ( relative ) 子 绝 ( absolute

绝对定位 就是 CSS 里的 position: absolute

绝对定位 使元素的位置与文档流无关,因此不占据空间。

这一点与 相对定位 不同,相对定位 实际上被看作普通流定位模型的一部分,

因为元素的位置相对于它在 普通流 中的位置。

不过要特别注意的是,设定 绝对定位子元素

父元素position 必须要指定为 relative 喔 !

而且 绝对定位 的元素是会互相覆盖的,所以如果内容元素较多,可能就会有些问题。

示例代码 :

垂直居中Java 垂直居中代码_垂直居中_03

实例效果 :

垂直居中Java 垂直居中代码_垂直居中Java_04

方法3:利用 transform

transform 是 CSS3 的 新属性 ,

主要掌管元素的 变形 、 旋转 和 位移 ,

利用 transform 里的 translateY 改变 垂直位移

搭配元素本身的 top 属性,就可以做出 垂直居中 的效果,

比较需要注意的地方是,子元素 必须要加上 position: relative

不然就会没有效果的哦。

示例代码 :

垂直居中Java 垂直居中代码_css_05

实例效果 :

垂直居中Java 垂直居中代码_前端_06

方法4:使用表格或假装表格

我们发现在 表格 这个 HTML 里面常用的 DOM 里 ,

要实现 垂直居中 是相当容易的,

只需要写一行 vertical-align: middle 就可以 ,

为什么呢 ?

最主要的原因就在于 table 的 display 是 table ,

tddisplaytable-cell

所以我们除了直接使用表格之外,

也可以将要 垂直居中 元素的 父元素 的 display 改为 table-cell ,

就可以轻松达成,不过修改 display 有时候也会造成其他样式属性的连动影响,

需要比较小心使用。

示例代码 :

垂直居中Java 垂直居中代码_垂直居中_07

实力效果 :

垂直居中Java 垂直居中代码_前端_08

方法5:使用 Flexbox

使用 align-items 或 align-content 的属性 ,

轻轻松松就可以做到 垂直居中 的效果。

示例代码 :

垂直居中Java 垂直居中代码_垂直居中Java_09

实例效果 :

垂直居中Java 垂直居中代码_css_10

  


十种水平垂直居中方案 :

1、

垂直居中Java 垂直居中代码_css_11

2、

垂直居中Java 垂直居中代码_垂直居中_12

3、

父相子绝 , +  负  - margin

4、

垂直居中Java 垂直居中代码_垂直居中_13

5、

垂直居中Java 垂直居中代码_垂直居中Java_14

6、

垂直居中Java 垂直居中代码_前端_15

7、

垂直居中Java 垂直居中代码_垂直居中_16

8、

垂直居中Java 垂直居中代码_css_17

9、

垂直居中Java 垂直居中代码_css_18

10、

垂直居中Java 垂直居中代码_垂直居中Java_19