前端面试知识题库
应用介绍
## 垂直居中的场景
0. Can you use flexbox?
0. Can you use grid?
1. Is the element of fixed width and height?
2. Is the element of unknown width and height?
## 约定
以下 `css` 中, `child` 为被垂直居中的元素。只写了 `parent` 元素样式的,默认为 `parent` 内的元素被垂直居中。
## 前提条件:可以使用flexbox
那就爽了
```css
.parent {
display: flex;
justify-content: center;
align-items: center;
}
```
## 前提条件:可以使用grid
那就爽了
```css
.parent {
display: grid;
justify-content: center;
align-items: center;
}
```
## 场景1:目标元素具有固定宽|高
将元素绝对定位的位置设为50% / 50%,并设置相应方向的负 `margin` 值 `width + padding / 2` 和 `height + padding / 2` 的。
```css
.parent {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
width: 300px;
height: 100px;
padding: 20px;
margin: -70px 0 0 -170px;
}
```
在设置宽高后,将元素绝对定位相关属性设置如下(left、top、bottom、right 偏移量自定义),并设置 `margin` 为 `auto`。则元素在设定的left、top、bottom、right视口范围内垂直居中。
```css
.child {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
width: 300px;
height: 100px;
padding: 20px;
}
```
元素须具有固定的高度,则设置其 `line-height` 值与 `height` 值相等,达到竖直方向居中目的,再设置水平方向居中。
```css
.child {
height: 100px;
line-height: 100px;
text-align: center;
}
```
利用display:table-cell属性使内容垂直居中。
```css
.child {
display:table-cell;
vertical-align: middle;
text-align: center;
width: 100px;
height: 100px;
}
```
## 场景2:目标元素未知宽高
将元素绝对定位的位置设为50% / 50%,并通过 transform 属性的 translate() 方法,将元素相对当前位置,反向移动其宽高的50%。(百分比计算不是以父元素为基准,而是以自己为基准。)
```css
.parent {
position: relative;
}
.child {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
。。。。。。。想了解详情请下载附件。
©版权声明:本文内容由互联网用户自发贡献,版权归原创作者所有,本站不拥有所有权,也不承担相关法律责任。如果您发现本站中有涉嫌抄袭的内容,欢迎发送邮件至: www_apollocode_net@163.com 进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
转载请注明出处: apollocode » 前端面试知识题库
文件列表(部分)
名称 | 大小 | 修改日期 |
---|---|---|
.travis.yml | 0.23 KB | 2019-03-01 |
config.js | 0.61 KB | 2019-03-01 |
override.styl | 0.02 KB | 2019-03-01 |
favicon.ico | 0.82 KB | 2019-03-01 |
android-chrome-192x192.png | 15.10 KB | 2019-03-01 |
android-chrome-512x512.png | 15.10 KB | 2019-03-01 |
apple-touch-icon-152x152.png | 15.10 KB | 2019-03-01 |
msapplication-icon-144x144.png | 15.10 KB | 2019-03-01 |
logo.png | 15.10 KB | 2019-03-01 |
manifest.json | 0.23 KB | 2019-03-01 |
asyncdefer.svg | 1.09 KB | 2019-03-01 |
defer-async.md | 1.74 KB | 2020-08-31 |
what-is-doctype.md | 0.50 KB | 2020-08-31 |
1.png | 11.22 KB | 2019-03-01 |
10.svg | 0.61 KB | 2019-03-01 |
2.svg | 0.61 KB | 2019-03-01 |
3.svg | 0.40 KB | 2019-03-01 |
4.svg | 0.71 KB | 2019-03-01 |
5.svg | 0.51 KB | 2019-03-01 |
6.svg | 0.85 KB | 2019-03-01 |
7.svg | 0.98 KB | 2019-03-01 |
8.svg | 0.71 KB | 2019-03-01 |
9.svg | 0.68 KB | 2019-03-01 |
center-elements-horizontally-and-vertically.md | 0.97 KB | 2020-08-31 |
flexbox.md | 2.17 KB | 2020-08-31 |
what-is-bfc.md | 0.82 KB | 2020-08-31 |
difference-to-array.md | 0.74 KB | 2020-08-31 |
class.md | 1.05 KB | 2020-08-31 |
promise.md | 3.35 KB | 2020-08-31 |
require-and-import.md | 1.21 KB | 2020-08-31 |
发表评论 取消回复