英文 | https://blog.bitsrc.io/8-ways-to-center-elements-vertically-and-horizontally-3dc8cce047d8

在前端网络面试中,你可能遇到过“如何使元素垂直和水平居中?”的问题。不止一次。

它很常见也很简单,但我们常常选择忽略它。本文将为你介绍 8 种实现方式。

首先看示例 HTML:

<div class="parent" style="background: black; width: 200px; height: 200px"><div class="child" style="background: red; width: 100px; height: 100px"></div>
</div>

我们得到一个 200px 的父容器和一个 100px 的子容器。

下面我将介绍8种方式,最后给出一个运行示例。

1.

首先是基于父子容器大小的粗略 CSS 值:

<style>.parent {position: relative;}
.child {position: absolute;left: 50%;top: 50%;margin: -50px 0 0 -50px;}
</style>

一旦原始元素大小发生变化,CSS 就需要随之改变。这并不理想。所以下面介绍的方法不需要考虑父子元素的宽高,比较推荐。

2.

<style>.parent {position: relative;}
.child {position: absolute;left: 50%;top: 50%;transform: translate(-50%, -50%);}
</style>

这种方法与第一种方法的不同之处在于我们使用了transform而不是margin,这使得我们的CSS代码不再依赖于元素的尺寸。

3.

<style>.parent {position: relative;}
.child {position: absolute;top: 0;left: 0;right: 0;bottom: 0;margin: auto;}
</style>

请记住,所有四个方向的值都必须为 0。

4.

<style>.parent {display: table-cell;vertical-align: middle;text-align: center;}
.child {display: inline-block;}
</style>

5.

<style>.parent {display: flex;align-items: center;justify-content: center;}
</style>

这种方法可能是目前使用最广泛的。

6.

<style>.parent {display: flex;}
.child {margin: auto;}
</style>

7.

<style>.parent {display: grid;/* The following 3 ways of writing are OK *//* 1 *//* justify-content: center;align-content: center; */
/* 2 *//* align-items: center;justify-items: center; */
/* 3 */place-content: center;}
</style>

8.

<style>.parent {display: grid;}
.child {align-self: center;justify-self: center;}
</style>

到目前为止我看到的就是这些,但我相信还有其他方法,欢迎你在留言区分享更多的方法,最后感谢你的阅读。

学习更多技能

请点击下方公众号

8 种实现垂直和水平居中元素的方法汇总相关推荐

  1. Jquery查找元素的方法汇总

    Jquery查找元素的方法汇总 通过具体的class,id,标签查找 $('div') // 所有div元素 $('.item') // class为item的元素 $('#main') // id为 ...

  2. 数组中某个元素相同的去重_几种去除数组中重复元素的方法、数组去重

    工作中遇到的一个问题,就是去除数组中重复的元素,记录一下几种有效的方法: 第一种思路:遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中. 去除 ...

  3. html屏幕垂直居中显示,HTML+CSS,让div在屏幕中居中(水平居中+垂直居中)方法总结...

    水平居中直接加上 标签即可,或者设置margin:auto;当然也可以用下面的方法 下面说两种在屏幕正中(水平居中+垂直居中)的方法 放上示范的html代码: MAIN 方法一: div使用绝对布局, ...

  4. 单行文本+多行文本垂直水平居中的设置方法

    一.单行文本居中方式   效果图如下:   HTML代码 <div id="container"><div id="text">垂直水平 ...

  5. 【CSS】绝对定位元素设置 水平 / 垂直 居中 ( 绝对定位元素居中设置 - 先偏移 50% 再回退子元素一半尺寸 | 绝对定位居中设置 )

    文章目录 一.问题提出 二.绝对定位 居中设置 1.设置固定尺寸 2.先偏移50%再回退固定值 三.绝对定位元素 水平 / 垂直 居中 一.问题提出 绝对定位 不能通过 设置 margin: auto ...

  6. 盒子/图片/内容 垂直、水平居中方法总结

    css系列--盒子/图片/内容 垂直.水平居中方法总结 盒子居中对齐 1.定位:子绝父相+position+transform 2.定位:margin 3.定位:flex 4.定位:table-cel ...

  7. html的水平居中怎么设置,css水平居中怎么设置?两种css水平居中的设置方法

    css样式能够实现水平居中,那么css水平居中怎么设置呢?本篇文章将给大家来分享关于css设置水平居中的实现方法. css中可以设置行内元素的水平居中和设置块级元素的水平居中,对于行内元素和块级元素不 ...

  8. java arraylist 删除回车符_2种Java删除ArrayList中的重复元素的方法

    这篇文章将给出两种从ArrayList中删除重复元素的方法,分别是使用HashSet和LinkedHashSet. ArrayList是Java中最常用的集合类型之一.它允许灵活添加多个null元素, ...

  9. python去重复元素_Python实现去除列表中重复元素的方法总结【7种方法】

    这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结[4种方法],感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里. 由于内容很简单,就不再 ...

最新文章

  1. ddr3ddr4 lpddr4速率_金泰克LPDDR3/LPDDR4内存新增特性解读
  2. centos7.6下的python3.6.9虚拟环境安装elastalert
  3. 企业架构 - ADM方法概要介绍
  4. js抽奖概率随机取出数据(简单示例)
  5. centos 安装 acrobat Reader之后
  6. 蚂蚁集团暂缓两地上市,重新上市或推迟半年,阿里股价相继大跌...
  7. VS2010-MFC(菜单:VS2010菜单资源详解)
  8. [多图]Maclean的巴厘岛游记
  9. ElasticSearch配置集群
  10. 百度竞价点击系统,互动点击软件【胖虎图图-互动点击专家】
  11. 输入N,打印对应N行的图案。
  12. java file 获取文件类型_Android中Java根据文件头获取文件类型
  13. AI公开课:19.05.30 瞿炜-新东方AI研究院院长《做懂教育的AI:把未来带进现实》课堂笔记以及个人感悟
  14. widows下如何修改Visual Studio2017的字体颜色
  15. 云计算的优点,主要包含哪几个方面?
  16. servercat IOS Linux监控 SSH客户端
  17. c# 节点导纳矩阵形成
  18. 在技​​术团队中做出复杂的决定
  19. SMDK2440A 5.0BSP之eboot流程(作者:wogoyixikexie@gliet)
  20. 识别三角形(c++基础)

热门文章

  1. python正则表达式——区间的表达方式
  2. 刘克亚十二条营销铁律
  3. 数据库原理与应用——引言(一)
  4. matlab 光栅 傅里叶,光栅原理及MATLAB仿真汇编.doc
  5. excel图表配合下拉菜单_在下拉列表中选择Excel仪表盘图表
  6. 进军元宇宙,Akutars是什么来头?首发与众多知名潮牌联名
  7. java 翻译接口_java版本 百度翻译接口
  8. 感恩节如何使用 HTML + CSS 绘制火鸡(Turkey)
  9. 翻翻git之---简单的配置达到产品在应用市场的评价跳转功能
  10. 科普一下IP路由基础