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

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{

ES6

  • 列举常用的ES6特性:

  • 箭头函数需要注意哪些地方?

  • let、const、var

  • 拓展:var方式定义的变量有什么样的bug?

  • Set数据结构

  • 拓展:数组去重的方法

  • 箭头函数this的指向。

  • 手写ES6 class继承。

微信小程序

  • 简单描述一下微信小程序的相关文件类型?

  • 你是怎么封装微信小程序的数据请求?

  • 有哪些参数传值的方法?

  • 你使用过哪些方法,来提高微信小程序的应用速度?

  • 小程序和原生App哪个好?

  • 简述微信小程序原理?

  • 分析微信小程序的优劣势

  • 怎么解决小程序的异步请求问题?

其他知识点面试

  • webpack的原理

  • webpack的loader和plugin的区别?

  • 怎么使用webpack对项目进行优化?

  • 防抖、节流

  • 浏览器的缓存机制

  • 描述一下二叉树, 并说明二叉树的几种遍历方式?

  • 项目类问题

  • 笔试编程题:

最后

技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
1.png)

其他知识点面试

  • webpack的原理

  • webpack的loader和plugin的区别?

  • 怎么使用webpack对项目进行优化?

  • 防抖、节流

  • 浏览器的缓存机制

  • 描述一下二叉树, 并说明二叉树的几种遍历方式?

  • 项目类问题

  • 笔试编程题:

最后

技术栈比较搭,基本用过的东西都是一模一样的。快手终面喜欢问智力题,校招也是终面问智力题,大家要准备一下一些经典智力题。如果排列组合、概率论这些基础忘了,建议回去补一下。
加入社区》https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值