首页 前端知识 2024 CSS 水平垂直居中方式汇总,全到没朋友(锤爆面试官系列)

2024 CSS 水平垂直居中方式汇总,全到没朋友(锤爆面试官系列)

2024-04-17 21:04:08 前端知识 前端哥 422 722 我要收藏

}

.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;

/* 核心代码 */

display: inline-block;

vertical-align: middle;

line-height: initial;

}

3、table 表格元素(不推荐)

通过经典的table来进行布局(不推荐)

4、css-table(display:table-cell)

不写 table 元素,也可以使用 table 的特性,需使用 css-table(display:table-cell)

.parent{

width: 500px;

height: 500px;

border: 1px solid blue;

/* 核心代码 */

display: table-cell;

text-align: center;

vertical-align: middle;

}

.child{

background: green;

/* 核心代码 */

display: inline-block;

}

5、flex 布局(推荐)

.parent{

width: 500px;

height: 500px;

border: 1px solid blue;

/* 核心代码 */

display: flex;

/* 水平居中 */

justify-content: center;

/* 垂直居中 */

align-items: center;

}

.child{

background: green;

}

justify-content:设置或检索弹性盒子元素在主轴(横轴)方向上的对齐方式;

align-items:设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式。

更多细节请参考本人对flex布局的详细介绍

Css 弹性布局(Flex)详细介绍(Flex 属性详解、场景分析)_前端不释卷leo的博客-CSDN博客_flex布局前言我们知道,网页展示就好比一个个盒子堆叠在一起,通过调整盒子的大小、位置、样式等,形成了各式各样的页面。当我们在开发一个页面的时候,我们常规的做法可能是:搭建框架、划分区域、定制排版、调整位置、嵌入内容、微调与增添样式。今天所介绍的是基础且关键的一环–布局排版。其中,展开布局中常用的技术:Flex布局。Flex布局是什么?Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局。.box {外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传https://blog.csdn.net/qq_41809113/article/details/121869338?spm=1001.2014.3001.5502

6、flex + margin auto

.parent{

width: 500px;

height: 500px;

border: 1px solid blue;

/* 核心代码 */

display: flex;

}

.child{

background: green;

/* 核心代码 */

margin: auto;

}

7、grid 网格布局(一)

注意:由于grid布局实在是太超前,导致了兼容性不是那么理想

.parent{

width: 500px;

height: 500px;

border: 1px solid blue;

/* 核心代码 */

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里即可获取!!!


码讲义、实战项目、讲解视频,并且会持续更新!**

如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)

最后

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里即可获取!!!

[外链图片转存中…(img-VgQjOVZm-1711644375099)]

转载请注明出处或者链接地址:https://www.qianduange.cn//article/5093.html
标签
评论
发布的文章

JQuery中的load()、$

2024-05-10 08:05:15

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!