rename
This commit is contained in:
parent
1cea651679
commit
1230ca3925
@ -1,10 +1,8 @@
|
||||
|
||||
> 本文最初于2015-10-01发表于[博客园](http://www.cnblogs.com/smyhvae/p/4850684.html),并在[GitHub](https://github.com/qianguyihao/Web)上持续更新**前端的系列文章**。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
> 本文最初发表于[博客园](http://www.cnblogs.com/smyhvae/p/4850684.html),并在[GitHub](https://github.com/qianguyihao/Web)上持续更新**前端的系列文章**。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
|
||||
> 以下是正文。
|
||||
|
||||
国庆节快乐,还在加班的童鞋,良辰必有重谢!
|
||||
|
||||
## 本文主要内容
|
||||
|
||||
- 头标签
|
||||
|
@ -1,9 +1,8 @@
|
||||
|
||||
> 本文最初于2015-10-02发表于[博客园](http://www.cnblogs.com/smyhvae/p/4852863.html),并在[GitHub](https://github.com/qianguyihao/Web)上持续更新**前端的系列文章**。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
> 本文最初发表于[博客园](http://www.cnblogs.com/smyhvae/p/4852863.html),并在[GitHub](https://github.com/qianguyihao/Web)上持续更新**前端的系列文章**。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
|
||||
> 以下是正文。
|
||||
|
||||
|
||||
## 本文主要内容
|
||||
|
||||
- 列表标签:`<ul>`、`<OL>`、`<dl>`
|
||||
|
@ -1,6 +1,6 @@
|
||||
|
||||
|
||||
> 本文的最新内容将在[GitHub](https://github.com/qianguyihao/Web/blob/master/03-CSS%E8%BF%9B%E9%98%B6/02-%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1%E5%92%8C%E5%BC%80%E5%8F%91%E4%B8%AD%EF%BC%8C%E5%85%B3%E4%BA%8E%E5%AD%97%E4%BD%93%E7%9A%84%E5%B8%B8%E8%AF%86.md)上实时更新。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
> 本文的最新内容将在[GitHub](https://github.com/qianguyihao/Web/tree/master/03-CSS%E8%BF%9B%E9%98%B6)上实时更新。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
|
||||
|
||||
## 前言
|
||||
|
@ -1,6 +1,12 @@
|
||||
|
||||
![](http://img.smyhvae.com/20191108_2130.png)
|
||||
|
||||
> 本文的最新内容将在[GitHub](https://github.com/qianguyihao/Web/tree/master/03-CSS%E8%BF%9B%E9%98%B6)上实时更新。欢迎在GitHub上关注我,一起入门和进阶前端。
|
||||
|
||||
## 前言
|
||||
|
||||
老板的手机收到一个红包,为什么红包没居中?
|
||||
|
||||
如何让一个子元素在父容器里**水平垂直居中**?这个问题必考,在实战开发中,也应用得非常多。
|
||||
|
||||
你也许能顺手写出好几种实现方法。但大部分人的写法不够规范,经不起千锤百炼。换句话说:这些人也就面试的时候夸夸其谈,但真的上战场的时候,他们不敢这么写,也不知道怎么写最靠谱。
|
||||
@ -9,7 +15,6 @@
|
||||
|
||||
当然,我还会拿出实际应用中的真实场景来举例,让你感受一下**标准垂直居中的魅力**。
|
||||
|
||||
|
||||
## 如何让一个行内元素(文字、图片等)水平垂直居中
|
||||
|
||||
> 行内元素的居中问题比较简单。
|
||||
@ -42,7 +47,7 @@
|
||||
|
||||
在 CSS 中对元素进行水平居中是非常简单的:如果它是一个行内元素,就对它的父容器应用 `text-align: center`;如果它是一个块级元素,就对它自身应用 `margin: auto`或者 `margin: 0 auto`。
|
||||
|
||||
我们都知道,`margin: auto`相当于`margin: auto auto auto auto`。`margin: 0 auto`相当于`margin: 0 auto 0 auto`,四个值分别对应上右下左。其计算值取决于**剩余空间**。(参考链接:<https://www.zhihu.com/question/21644198/answer/22392394>)
|
||||
在这里,`margin: auto`相当于`margin: auto auto auto auto`。`margin: 0 auto`相当于`margin: 0 auto 0 auto`,四个值分别对应上右下左。其计算值取决于**剩余空间**。
|
||||
|
||||
但是,如果要对一个元素垂直居中,`margin: auto`就行不通了。
|
||||
|
||||
@ -213,7 +218,7 @@
|
||||
|
||||
```
|
||||
|
||||
上面这种写法的,不足之处在于:给父容器设置属性`justify-content: center`和`align-items: center`之后,导致父容器里的所有子元素们都垂直居中了(如果父容器里有多个子元素的话)。可我明明只向让指定的**某个子元素**居中,要怎么改进呢?
|
||||
上面这种写法,不足之处在于:给父容器设置属性`justify-content: center`和`align-items: center`之后,导致父容器里的所有子元素们都垂直居中了(如果父容器里有多个子元素的话)。可我明明想让指定的**某个子元素**居中,要怎么改进呢?
|
||||
|
||||
### 方式4: flex 布局 + margin: auto(推荐)
|
||||
|
||||
@ -254,20 +259,19 @@
|
||||
</html>
|
||||
```
|
||||
|
||||
请注意,当我们给父容器使用 Flex 布局 时,子元素的`margin: auto`不仅让其在水平方向上居中,**垂直方向上也是居中的**。
|
||||
请注意,当我们给父容器使用 Flex 布局 时,子元素的`margin: auto`不仅能让其在水平方向上居中,**垂直方向上也是居中的**。
|
||||
|
||||
参考文章:[探秘 flex 上下文中神奇的自动 margin](https://www.cnblogs.com/coco1s/p/10910588.html)
|
||||
|
||||
|
||||
## 垂直居中的典型应用场景:红包幕帘/弹窗
|
||||
|
||||
### 问题引入
|
||||
|
||||
就拿“弹窗”这一点来说,现在大家的弹窗都是各种样式、各种布局满天飞。不过进公司后,大家在第一次写弹窗之前,都会问一个问题:“弹窗这么通用的东西,没有一个规范吗?”说完之后,又默默写自己的有个性的弹窗去了。
|
||||
就拿“弹窗”这一点来说,现在大家的弹窗都是各种样式、各种布局满天飞。不过进公司后,新人在第一次写弹窗之前,都会问一个问题:“弹窗这么通用的东西,没有一个规范吗?”说完之后,又默默写自己的有个性的弹窗去了。
|
||||
|
||||
建议大家在写弹窗的时候,无论如何,一定要**严格采用**水平居中、垂直居中的写法。
|
||||
|
||||
千万不要用 `margin-top` 这种举例屏幕顶部的距离来计算弹窗的位置,太搓了。不要让领导觉得:“你们写了这么久的前端代码,连个弹窗都搞不定?”
|
||||
千万不要用 `margin-top` 这种距离屏幕顶部的距离来计算弹窗的位置,太搓了。不要让领导觉得:“你们写了这么久的前端代码,连个弹窗都搞不定?”
|
||||
|
||||
### 移动端,红包幕帘/弹窗 居中的规范写法(非常标准)
|
||||
|
||||
@ -355,8 +359,14 @@
|
||||
|
||||
2、任何弹窗,都需要解决“滚动穿透”的问题,本文篇幅有限,请自行查阅。
|
||||
|
||||
## 最后一段
|
||||
|
||||
有些实现方式虽然简单,但必须要经得起千锤百炼。我们要做到**敬畏每一行代码**,不能浮于表面。团队开发,要的不是个性,而是**标准和规范**。
|
||||
|
||||
## 参考链接
|
||||
|
||||
- [为什么「margin:auto」可以让块级元素水平居中?](https://www.zhihu.com/question/21644198/answer/22392394)
|
||||
|
||||
- [七种方式实现垂直居中](https://jscode.me/t/topic/1936)
|
||||
|
||||
- [margin:auto实现绝对定位元素的水平垂直居中](http://www.zhangxinxu.com/wordpress/2013/11/margin-auto-absolute-%E7%BB%9D%E5%AF%B9%E5%AE%9A%E4%BD%8D-%E6%B0%B4%E5%B9%B3%E5%9E%82%E7%9B%B4%E5%B1%85%E4%B8%AD/)
|
||||
|
@ -293,7 +293,7 @@ fileList 的打印结果:
|
||||
|
||||
我看到upload 组件有提供 `defaultFileList` 的属性。我试了下,这个`defaultFileList` 的属性根本没法儿用。
|
||||
|
||||
那就只要手动实现了。我的model层代码,是用 redux 写的。整体的实现思路如下:(这个也是在真正在实战中用到的代码)
|
||||
那就只有手动实现了。我的model层代码,是用 redux 写的。整体的实现思路如下:(这个也是在真正在实战中用到的代码)
|
||||
|
||||
(1)PicturesWall.js:
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user