CSS实现水平垂直居中的方式有哪些?

基本结构样式:

.box {
width: 400px;
height: 400px;
background-color: red;
} .inner {
width: 100px;
height: 100px;
background-color: blue;
}
<div class="box">
<div class="inner"></div>
</div>

1.利用flex布局

将父元素启动flex布局,并设置justify-content: center; align-items: center;

添加样式:

.box {
display: flex;
justify-content: center;
align-items: center;
}

2.利用flex+margin

父元素设置display: flex;,子元素设置margin: auto;

添加样式:

.box { display: flex; }
.inner { margin: auto; }

3.利用定位,子绝父相

3.1.利用margin: auto(偏移量都为0)

将子元素的top、left、right、bottom都设置为0,再设置其margin为auto即可。

添加样式:

.box { position: relative; }

.inner {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
}

3.2.利用平移translate

先设置子元素的top和left都为50%,即父元素宽高的一半,再使用translate往回走自己宽高的一半。

添加样式:

.box { position: relative; }

.inner {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}

4.知道具体宽高,通过计算

4.1.子绝父相,直接计算或者使用calc()

添加样式:

.box { position: relative; }

.inner {
position: absolute;
/* 直接计算 */
/* top: 150px;
left: 150px; */
top: calc(50% - 50px);/* 使用calc() */
left: calc(50% - 50px);
}

4.2.利用margin

子元素设置margin-top;但是存在父子共用外边距问题,父元素需要设置overflow: hidden;

添加样式:

.box { overflow: hidden; }

.inner {
margin: 0 auto;
margin-top: 150px;
}

4.3.利用padding

父元素设置padding,防止父盒子被撑大,需加上box-sizing: border-box;

添加样式:

.box {
box-sizing: border-box;
padding: 150px;
}

5.利用display的table-cell属性值

5.1.利用display+vertical-align

父元素设置display: table-cell;vertical-align: middle;,子元素设置margin: 0 auto;

添加样式:

.box {
display: table-cell;
vertical-align: middle;
} .inner { margin: 0 auto; }

5.2.利用display+vertical-align+text-align

父元素设置display: table-cell以及内容的水平和垂直居中,注意子元素要设置为行内块。

添加样式:

.box {
display: table-cell; /* 此元素会作为一个表格单元格显示 */
vertical-align: middle; /* 把此元素放置在父元素的中部 */
text-align: center;
} .inner { display: inline-block; }

6.以上方法最终运行结果

CSS实现水平垂直居中的方式有哪些?的更多相关文章

  1. CSS实现水平垂直居中的1010种方式

    转载自:CSS实现水平垂直居中的1010种方式 划重点,这是一道面试必考题,很多面试官都喜欢问这个问题,我就被问过好几次了 要实现上图的效果看似很简单,实则暗藏玄机,本文总结了一下CSS实现水平垂直居 ...

  2. 你知道CSS实现水平垂直居中的第10种方式吗?

    你知道CSS实现水平垂直居中的第10种方式吗? 仅居中元素定宽高适用: absolute + 负 margin absolute + margin auto absolute + calc 居中元素不 ...

  3. CSS实现水平垂直居中方式

    1.定位 核心代码实现请看示例代码中的注释: <!DOCTYPE html> <html lang="zh"> <head> <meta ...

  4. CSS制作水平垂直居中对齐 多种方式各有千秋

    作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收 集了几种不同的方式制作垂直居中方法,但每种方法各有千秋 ...

  5. CSS制作水平垂直居中对齐

    作为前端攻城师,在制作Web页面时都有碰到CSS制作水平垂直居中,我想大家都有研究过或者写过,特别的其中的垂直居中,更是让人烦恼.这段时间,我收集了几种不同的方式制作垂直居中方法,但每种方法各有千秋呀 ...

  6. css实现水平 垂直居中

    css实现水平居中 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  7. CSS实现水平垂直居中的数种方法整合

    CSS实现水平垂直居中可以说是前端老生常谈的问题了,一般面试官问的时候面试者都会回答出来,但是继续追问还有没有其他方法的时候有可能就说不出来了. 本着学习知识的目的,特在此纪录CSS实现水平垂直居中的 ...

  8. CSS实现水平|垂直居中漫谈

    利用CSS进行元素的水平居中,比较简单,手到擒来:行级元素设置其父元素的text-align center,块级元素设置其本身的left 和 right margins为auto即可.而撸起垂直居中, ...

  9. 纯CSS制作水平垂直居中“十字架”

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. 日常Java 2021/10/24

    Java ArrrayList ArrayList类是一个可以动态修改的数组,没有固定大小的限制,可以在任何时候添加或者删除元素 ArrayList类在java.util包中使用之前需要引用 E:泛型 ...

  2. accent, access, accident

    accent A colon (:) is used to represent a long vowel [元音], e.g. sheet /ʃiːt/ and shit /ʃit/. The wor ...

  3. ubantu打开摄像头失败

    摘要-针对ubantu20 sudo apt install v4l-utils v4l2-ctl --list-devices - cv2 install on ubantu20```针对ubant ...

  4. An internal error occurred during: “Updating Maven Project”. Unsupported IClasspathEntry kind=4解决办法

    An internal error occurred during: "Updating Maven Project". Unsupported IClasspathEntry k ...

  5. Ribbon详解

    转自Ribbon详解 简介 ​ Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现.通过Spring Cloud的封装,可以让 ...

  6. javascript将平行的拥有上下级关系的数据转换成树形结构

    转换函数 var Littlehow = {}; /** * littlehow 2019-05-15 * 平行数据树形转换器 * @type {{format: tree.format, sort: ...

  7. 如何使用pycharm克隆阿里云项目

    我们回到PyCharm刚打开时的界面,如图1-1所示:   点击"Check out from Version Control" => "Git",如图1 ...

  8. C++11 标准库 bind 函数

    bind 是什么? bind 顾名思义: 绑定 通俗来讲呢,可以这么理解有点像函数指针的意思. 资料上是这么讲的:可以将 bind 函数看做一个通用函数的适配器,它接受一个可调用对象,生成一个新的可以 ...

  9. vue在某页面监听键盘输入事件

    需求:在某一网页,通过上下左右键控制一些操作 实现: 1.基本代码: 因为没有绑定特定的元素.所以我们将事件绑定到document上. //当前页面监视键盘输入 document.onkeydown ...

  10. [BUUCTF]REVERSE——[V&N2020 公开赛]strangeCpp

    [V&N2020 公开赛]strangeCpp 附加 步骤 查壳,无壳,64位程序 64位ida载入,没有main函数,根据程序里的字符串,去查看函数 __int64 __fastcall s ...