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布局的详细介绍
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