1. absolute + margin auto

利用元素 position: absolute 和 margin: auto实现垂直居中,适用于父子盒子里。
代码:

    .parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: aquamarine;width: 50px;height: 50px;/* 主要代码 */position: absolute;top :0;bottom: 0;left: 0;right: 0;margin: auto;}

2.absolute + -margin

利用绝对定位百分比 50% 来实现,然后再用负的 margin-top 和 margin-left 来进行简单的位移即可。适用于父子盒子里。
代码:

    .parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: aquamarine;width: 100px;height: 100px;/* 主要代码 */position:absolute;top: 50%; left: 50%;margin-top: -50px;  //这里返回的是自身宽度的一半margin-left: -50px; //这里返回的是自身高度的一半}

3. absolute + calc

使用 CSS3 的一个计算函数来进行计算即可;方法与上面类似。适用于父子盒子里。
了解calc的用法具体参考:CSS calc()函数的用法
代码:

    .parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: blanchedalmond;width: 100px;height: 100px;/* 主要代码 */position:absolute;top: calc(50% - 50px);  //这里减去的是自身宽度的一半left: calc(50% - 50px);  //这里减去的是自身高度的一半}

4. absolute + transform

利用 CSS3 的新特性 transform;因为 transform 的 translate 属性值如果是一个百分比,那么这个百分比将是基于自身的宽高计算出来的。适用于父子盒子里。
代码:

    .parent{position: relative;width: 500px;height: 500px;border: 1px solid red;}.child{background-color: burlywood;width: 100px;height: 100px;/* 主要代码 */position:absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);   //横纵各返回自身宽度的50%}

5. line-height + vertical-align

把当前元素设置为行内元素,然后通过设置父元素的 text-align: center; 实现水平居中;同时通过设置当前元素的 vertical-align: middle; 来实现垂直居中;最后设置当前元素的 line-height: initial; 来继承父元素的line-height。
具体参考:css之 vertical-align用法详解
代码:

    .parent{width: 500px;border: 1px solid red;line-height: 100px;/* 主要代码 */text-align: center;}.child{background-color: blue;/* 主要代码 */display: inline-block;vertical-align: middle;line-height: initial;}

6.flex 布局

要说现在较为流行和使用较多的布局方案,那么非 flex 莫属了。
代码:

    .parent{width: 500px;height: 200px;border: 1px solid red;/* 主要代码 */display: flex;justify-content: center;align-items: center;}.child{background-color: black;}

justify-content 表示:设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式;
align-items 表示:定义 flex 子项在 flex 容器的当前行的侧轴(纵轴)方向上的对齐方式。

7.flex + margin auto

代码:

    .parent{width: 500px;height: 400px;border: 1px solid red;/* 主要代码 */display: flex;}.child{background-color: coral;/* 主要代码 */margin: auto;}

8.grid 网格布局

grid 布局相信大家在实际项目中用的较少,主要是该布局实在是太超前,导致了兼容性不是那么理想,但是不可否认的是 grid 的能力在 css 布局中绝对是一个质的飞越。
CSS Grid 包含与 Flexbox 几乎相同的对齐选项,因此我们可以在 grid-container 上优雅的实现。
具体参考:grid布局
代码:

    .parent{width: 500px;height: 200px;border: 1px solid red;/* 主要代码 */display: grid;align-items: center;justify-content: center;}.child{background-color: brown;}

或者我们同样这样写:

    .parent{width: 500px;height: 200px;border: 1px solid red;/* 主要代码 */display: grid;}.child{background-color: brown;align-self: center;justify-self: center;}

Html+CSS垂直居中的N种方法(大全)相关推荐

  1. 高度不定垂直居中_经典:CSS垂直居中的七种方法

    点击上方"程序员黑叔",选择"置顶或者星标" 你的关注意义重大! 作者: 来自互联网 我们在编辑一个版面,通常都会用到水平居中和垂直居中来设计,而水平居中很好处 ...

  2. css 图文 上下 居中,CSS垂直居中的6种方法

    垂直居中一直是CSS布局中比较令人头疼的问题,相比于水平居中,垂直居中对于不同的元素类型需要采取截然不同的策略,因此常常会因为策略的误用导致无法成功居中.这篇文章总结了垂直居中的6种常见策略. Ver ...

  3. CSS 垂直居中的七种方法——史上最详细总结

    博主目前在蚂蚁集团-体验技术部,AntV/S2 是博主所在团队的开源项目--多维交叉分析表格,欢迎使用,感谢到 S2 github 仓库点赞 star,有任何关于前端面试.就业.技术问题都可给在文章后 ...

  4. 经典:CSS垂直居中的七种方法

    点击上方"程序员黑叔",选择"置顶或者星标" 你的关注意义重大! 作者: 来自互联网 我们在编辑一个版面,通常都会用到水平居中和垂直居中来设计,而水平居中很好处 ...

  5. CSS垂直居中的6种方法

    垂直居中一直是CSS布局中比较令人头疼的问题,相比于水平居中,垂直居中对于不同的元素类型需要采取截然不同的策略,因此常常会因为策略的误用导致无法成功居中.这篇文章总结了垂直居中的6种常见策略. 1.V ...

  6. CSS垂直居中的8种方法

    1.通过verticle-align:middle实现CSS垂直居中. 通过vertical-align:middle实现CSS垂直居中是最常使用的方法,但是有一点需要格外注意,vertical生效的 ...

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

    ​​​​​​CSS垂直居中的8种方法 目录 ​​​​​​CSS垂直居中的8种方法 1.通过vertical-align:middle实现CSS垂直居中. 2.通过display:flex实现CSS垂直 ...

  8. html怎么把元素垂直居中显示,分享html css元素垂直居中的几种方法

    元素垂直居中的几种方法: 方法一:设置height和line-height 在CSS中,line-height 属性设置两段段文本之间的距离,也就是行高,如果我们把一段文本的line-height设置 ...

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

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

最新文章

  1. SQL Server 性能基线和监控
  2. 这 3 个字是未来发展关键,不重视的企业,正在被淘汰
  3. 【转】Linux查看物理CPU个数、核数、逻辑CPU个数
  4. 2020-2021网络游戏行业人才招聘报告
  5. 学法减分助手PRO小程序
  6. C/C++ Native 包大小测量
  7. JDK8新特性之Lambda表达式和四大函数接口
  8. logo qt添加_Qt官方示例-窗口标志
  9. 使用Mongo Shell和Java驱动程序删除MongoDB的示例
  10. 【基础】集成学习 (Ensemble Learning)
  11. Qt中qmake的INSTALLS变量将编译文件拷到运行目录
  12. WebIDE 使用指南
  13. 学习管理系统五大好处
  14. 【数电】(四)逻辑门电路
  15. 输出月份英文名java_输出月份英文名 (30 分)
  16. NSGAII快速非支配遗传算法二代学习笔记1
  17. 企业应用程序安全的新「守护神」
  18. Revit2016 笔记04
  19. 几何光学学习笔记(39)- 7.10 中国颜色体系
  20. 突发事件舆情管理分析

热门文章

  1. 手机丢失后如何第一时间找回你的手机并保护个人信息?
  2. rtklib 天线相位中心_北斗广播TGD精度评估及其对静态定位性能分析
  3. 数据可视化就是数据分析吗,两者之间是什么关系?
  4. (附源码)ssm城市旅游景点信息交流平台的设计与实现 毕业设计290915
  5. 天下3最新服务器列表,天下3合服服务器查询-《天下3》官网
  6. ARM协处理器CP15介绍
  7. 深入学习使用ocr算法识别图片中文字的方法
  8. 网络攻防(1.1)---网络扫描
  9. ESP传统蓝牙之SPP通讯
  10. 这可能是斯蒂芬·霍金最后一次访问中国