编辑于: 2018-05-21

前提:

html模板:


<div class="parent"><div class="content">内容垂直居中</div></div>
复制代码

声明:以下示例,主要实现垂直居中的样式代码为加粗的部分

一、对单行元素进行垂直居中时

  1. 可设置该行内元素的父元素的height与line-heigth的值相等,让行内元素垂直居中

  2. 针对行内元素,可通过设置vertical-align: middle;以及line-height进行垂直居中

二、对文本进行垂直居中

  1. 针对文本,通过display:flex;配合align-items和justify-content实现文本居中

.content{display: flex;align-items: center;justify-content: center;}
复制代码

三、对已知高度块级元素进行垂直居中

  1. 绝对定位,配合top:50%和负margin-top(元素高度一半)进行垂直居中

.content{position: absolute;top: 50%;left: 50%;margin-top: -10em; /* 为元素height/2 */margin-left: -10em;width: 20em;height: 20em;background-color: aqua;}
复制代码
  1. 绝对定位,配合top:0;bottom:0;和margin:auto进行垂直居中
.content{position: absolute;margin:auto;top: 0;bottom: 0;left: 0;right: 0;height: 200px; /*要求指明元素高度*/background-color: aqua;}
复制代码
  1. 设置position:absolute;和calc()函数实现垂直居中

.content{position: absolute;top:calc(50% - 10em); /*calc(50% - 元素本身高度一半)*/left: calc(50% - 20em); /*注意使用时减号间有空格*/width: 40em;height: 20em;background-color: aqua;}
复制代码
  1. 使用浮动float实现元素垂直居中

原理:通过在要进行垂直居中的元素a前面添加一个无内容的元素,并将该无内容元素的高设置为50%,在利用clear:botn清除浮动,则元素a相对于父元素来说是垂直居中。

html如下:

<div class="parent"><div class="float"></div><div class="content"><div><span>内容垂直居中内容垂直居中内容容垂居中</span></div></div></div>
复制代码

css如下:


.parent{height: 500px;background-color: red;}
/**添加的辅助元素*/
.float{height: 50%;}.content{clear: both;background-color: aqua;}
复制代码

四、对未知高度块级元素进行垂直居中

  1. 设置position:absolute;和transform:traslate(x,y)实现水平垂直居中
.content{position: absolute;margin:auto;top: 50%;left: 50%;transform:translate(-50%,-50%); /*针对元素本身向左以及向上移动50%*/background-color: aqua;}
复制代码
  1. 居于视口单位的解决方案:

可通过使用margin-top: 50vh;配合transform:translateY(-50%);实现视口居中


.content{width: 18em;margin-top: 50vh; /*50vh表示视口高度的50%*/transform: translateY(-50%); /*相对元素自身向上移动50%*/background-color: aqua;}
复制代码
  1. 通过display:table-cell和vertical-align:middle;实现垂直居中
.parent{display: table;width: 50px; /*建议设置宽高,以便于查看效果*/height: 500px;}.content{display: table-cell;vertical-align: middle;background-color: aqua;}
复制代码
  1. 基于flex的解决方案:
.parent{display: flex;background-color: beige;}.content{margin: auto; /*自动相对于父元素水平垂直居中*/background-color: aqua;}
复制代码

转载于:https://juejin.im/post/5c778728f265da2d87638711

css实现垂直居中的几种方式(布局常用)相关推荐

  1. CSS水平垂直居中的五种方式

    CSS水平垂直居中的几种方式 absolute and -margin 需要设置盒子的宽度和高度 .father{border:1px solid red;width: 80vh;height: 90 ...

  2. css实现垂直居中的几种方式

    css布局 实现垂直居中的几种方式 一.单行元素垂直居中 二.对文本进行垂直居中 三.对已知高度块级元素进行垂直居中 四.对未知高度块级元素进行垂直居中 <div class="par ...

  3. css设置子盒子水平垂直居中(四种方式)

    css设置子盒子水平垂直居中(四种方式) 1. 使用绝对定位 <!DOCTYPE html> <html><head><meta charset=" ...

  4. css实现水平垂直居中的七种方式

    css实现水平垂直居中的七种方式 一.使用grid布局 二.使用flex布局 三.使用定位+外边距 四.使用定位+平移 五.使用外边距 + 平移 六.使用文本对齐 + 行高 七.使用表格单元 一.使用 ...

  5. html 水平垂直居中,css水平垂直居中有几种实现方式?

    项目中经常碰到需要实现水平垂直居中的样式.下面就总结几种常用的方法 css水平垂直居中有几种实现方式? 1.水平对齐+行高 [思路一]text-align + line-height实现单行文本水平垂 ...

  6. java文本框字体垂直居中_实现css文字垂直居中的8种方法

    注:以下demo都只是针对现代浏览器所做,未兼容低版本的IE以及其他非主流浏览器. 实现css文字垂直居中的8种方法如下: 1.使用绝对定位和负外边距对块级元素进行垂直居中 css垂直居中效果: cs ...

  7. css 清除浮动的几种方式

    css 清除浮动的几种方式 浮动布局和定位布局为css中布局的常用的两种布局方式,而且兼容性会比较好.随着flex的流行,以后会是主流. float布局会脱离文档流,对页面的布局造成影响,比如造成父级 ...

  8. CSS实现垂直居中的7种方法

    CSS实现垂直居中的7种方法 1.设定行高(line-height) 2.设置伪元素::before 3.absolute + transform 4. 设置绝对定位 5.设置display:flex ...

  9. css样式引入形式php,引入css样式表的四种方式介绍

    一.使用STYLE属性: 将STYLE属性直接加在个别的元件标签里. 这种用法的优点 是可灵巧应用样式於各标签中,但是缺点则是没有整篇文件的『统一性』. 二.使用STYLE标签: 将样式规则写在标签之 ...

最新文章

  1. MyBatis 框架下 SQL 注入攻击的 3 种方式,真是防不胜防!
  2. javafx 图片作按钮_JavaFX - 按钮编辑树视图节点文本
  3. oracle用户获取datameta权限,Oracle数据库提权(低权限提升至dba)
  4. springboot 添加拦截器之后中文乱码_spring boot 2.x 添加拦截器配置未生效的问题
  5. linux下文件颜色说明
  6. 50 行代码,看 Python + OpenCV 玩转实时图像处理!
  7. shell基础之for循环语句
  8. 联合国devnet_联合国人权可能会适用于人工智能,如果是这样,考虑一下自动驾驶汽车的奇怪案例
  9. Python之 多重循环
  10. visio给图片添加任意形状外框
  11. 不加群就可以提取QQ群成员
  12. 上海计算机在职专业硕士学校,专业硕士计算机类可以报考上海哪些学校?
  13. php mysql orm_初探PHP ORM框架Doctrine
  14. android为什么总是闪退怎么办,手机应用老是闪退该怎么办?
  15. matlab怎样编写延时函数,编写延时函数的简单方法
  16. 【剑指 Offe】剑指 Offer 17. 打印从1到最大的n位数
  17. Who is the lion(谁是狮子)!
  18. Linux之scp命令的介绍以及命令行输入密码参数执行方法和常见问题解决
  19. 吃货联盟订餐系统项目实践
  20. 如何做好笔记以及记好笔记的好处

热门文章

  1. c++ array 模板类使用
  2. Windows系统MySQL8.0的安装教程
  3. 无忧计算机c语言二级题库,干货for计算机等级考试题库:二级C语言试题
  4. python办公实用功能_【一点资讯】实用办公技巧贴——当Python遇上PDF www.yidianzixun.com...
  5. python字符串使用技巧
  6. 小程序数据框有重影_微信小程序云开发数据库增删改查
  7. 关于fragment backstate的介绍
  8. java jdbc(mysql)驱动源码分析,JAVA JDBC(MySQL)驱动源码分析(四)
  9. SpringMVC + spring3.1.1 + hibernate4.1.0 集成及常见问题总结
  10. Spring Web Service 学习之Hello World篇