前言
居中元素宽高已知
1、absolute + margin auto
2、absolute + 负 margin
3、absolute + calc
居中元素宽高未知
1、absolute + transform
2、line-height + vertical-align
3、table 表格元素(不推荐)
4、css-table(display:table-cell)
5、flex 布局(推荐)
6、flex + margin auto
7、grid 网格布局(一)
8、grid 网格布局(二)
场景推荐
前言
–
无论是实际开发中,还是求职面试中,css 垂直居中往往都是一个绕不开的话题,其中有许多面试者在遭受多次打击之后,却没有一个很好的反击点,刚好结合自己的经历与痛处,来给大家一个锤爆面试官大佬们的机会。
垂直居中主要分为了两种类型:居中元素宽高已知 和 居中元素宽高未知,那么我们就结合这两种类型来一一举例。
居中元素宽高已知
1、absolute + margin auto
注意:父元素与当前元素的宽高已知
.parent{
position: relative;
width: 500px;
height: 500px;
border: 1px solid blue;
}
.child{
background: green;
width: 200px;
height: 200px;
/* 核心代码 */
position:absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
2、absolute + 负 margin
注意:负 margin 是基于自身的高度和宽度来进行位移的(设置为自身的 -1/2)
.parent{
position:relative;
width: 500px;
height: 500px;
border: 1px solid blue;
}
.child{
background: green;
width: 200px;
height: 200px;
/* 核心代码 */
position:absolute;
top: 50%;
left: 50%;
margin-top: -100px;
margin-left: -100px;
}
3、absolute + calc
注意:使用 CSS3 的一个计算函数来进行计算(相当于负 margin 的简化版)
.parent{
position:relative;
width: 500px;
height: 500px;
border: 1px solid blue;
}
.child{
background: green;
width: 200px;
height: 200px;
/* 核心代码 */
position:absolute;
top: calc(50% - 100px);
left: calc(50% - 100px);
}
居中元素宽高未知
1、absolute + transform
注意:transform
的 translate
属性值如果是一个百分比,那么这个百分比是基于自身的宽高进行计算
.parent{
position: relative;
width: 500px;
height: 500px;
border: 1px solid blue;
}
.child{
background: green;
/* 核心代码 */
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
2、line-height + vertical-align
把当前元素设置为行内元素,然后通过设置父元素的 text-align: center
来实现水平居中;同时通过设置当前元素的 vertical-align: middle
来实现垂直居中;最后设置当前元素的 line-height: initial
来继承父元素的line-height
.parent{
width: 500px;
border: 1px solid blue;
/* 核心代码 */
line-height: 500px;
text-align: center;
}
.child{
background: green;
/* 核心代码 */
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注前端)
ajax
1)ajax请求的原理/ 手写一个ajax请求?
2)readyState?
3)ajax异步与同步的区别?
4)ajax传递中文用什么方法?
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
-1712673082592)]
ajax
1)ajax请求的原理/ 手写一个ajax请求?
2)readyState?
3)ajax异步与同步的区别?
4)ajax传递中文用什么方法?
[外链图片转存中…(img-0NvkAk77-1712673082592)]
[外链图片转存中…(img-uSUFaXJK-1712673082593)]
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-MUdKOw9r-1712673082593)]