面试官:用 CSS 实现一个元素的水平垂直居中,写出你能想到的所有答案

简介: 面试官:用 CSS 实现一个元素的水平垂直居中,写出你能想到的所有答案

前言

前端面试中,“如何实现一个元素水平垂直居中”一直是各大面试官青睐的题目,这篇文章将讲解 5 种实现水平垂直居中的方法,帮你轻松过这关。

5 种实现元素水平垂直居中的方法

1.使用 flexbox 布局

该方案的思路是将父元素设置为display: flex;,并使用align-items: center; justify-content: center;将子元素在水平和垂直方向上居中。

代码如下

.parent {
  display: flex;
  align-items: center;
  justify-content: center;
}
.child {
  width: 200px;
  height: 200px;
}
复制代码

2.使用 grid 布局

该方案的思路是将父元素设置为display: grid;,并使用place-items: center;将子元素在水平和垂直方向上居中。

代码如下

.parent {
  display: grid;
  place-items: center;
}
.child {
  width: 200px;
  height: 200px;
}
复制代码

3.使用绝对定位和负边距

该方案的思路是将元素向上和向左移动一半的宽度和高度,使其在父元素的中心。由于绝对定位是相对于最近的已定位祖先元素,因此必须确保父元素或祖先元素具有position: relative;position: absolute;属性。元素必须具有已知的宽度和高度。

代码如下(CodePen 示例):

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 200px;
  height: 200px;
  margin-top: -100px;
  margin-left: -100px;
}
复制代码

4.使用 transform 属性

该方案的思路是将元素向上和向左移动一半的宽度和高度,使其在父元素的中心。由于transform: translate(-50%, -50%);是相对于元素自身的宽度和高度进行的,因此不需要知道元素的宽度和高度。元素必须设置为绝对定位。

代码如下

.parent {
  position: relative;
}
.child {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
复制代码

5.使用table布局

该方案的思路是将父元素设置为display: table;,将子元素设置为display: table-cell; vertical-align: middle;,并使用text-align: center;将子元素在水平方向上居中。

代码如下

.parent {
  display: table;
  text-align: center;
}
.child {
  display: table-cell;
  vertical-align: middle;
}

 

大厂面试题分享 面试题库

前后端面试题库 (面试必备) 推荐:★★★★★

地址:前端面试题库  web前端面试题库 VS java后端面试题库大全

相关文章
|
5天前
|
前端开发 JavaScript
如何利用 CSS3 动画实现元素的淡入淡出效果?
在上述代码中,定义了一个名为 `fade-in` 的CSS类,其初始透明度为0,并设置了淡入的过渡效果。当通过JavaScript为元素添加 `active` 类时,元素的透明度变为1,实现淡入效果;当再次点击按钮移除 `active` 类时,元素又会逐渐淡出。通过这种方式,可以根据用户的操作灵活地控制元素的淡入淡出效果。
42 3
|
22天前
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
22 0
|
1月前
|
前端开发
css 块元素、行内元素、行内块元素相互转换
css 块元素、行内元素、行内块元素相互转换
89 0
|
2月前
|
前端开发
css水平、垂直居中的写法
css水平、垂直居中的写法
56 2
|
2月前
|
Web App开发 前端开发 JavaScript
「offer来了」1张思维导图,6大知识板块,带你梳理面试中CSS的知识点!
该文章通过一张思维导图和六大知识板块系统梳理了前端面试中涉及的CSS核心知识点,包括CSS框架、基础样式问题、布局技巧、动画处理、浏览器兼容性及性能优化等方面的内容。
|
3月前
|
前端开发 容器
最新CSS3定位元素
【8月更文挑战第28天】
29 5
|
3月前
|
存储 前端开发
为 HTML 元素指定 CSS 样式的方式
【8月更文挑战第24天】
73 0
|
3月前
|
前端开发
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
CSS动画新潮流:炫酷水波效果,让网页元素生动起来!
|
前端开发 容器
css:整理9种元素水平垂直居中的方法
css:整理9种元素水平垂直居中的方法
145 0
css:整理9种元素水平垂直居中的方法