This commit is contained in:
qianguyihao 2019-11-11 16:19:54 +08:00
parent 1cea651679
commit 1230ca3925
6 changed files with 23 additions and 16 deletions

View File

@ -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上关注我一起入门和进阶前端。
> 以下是正文。
国庆节快乐,还在加班的童鞋,良辰必有重谢!
## 本文主要内容
- 头标签
@ -278,7 +276,7 @@ HTML标签通常是成对出现的<font color="blue">**双边标记**</font>
<title>Document</title>
</head>
<body>
</body>
</html>
@ -373,7 +371,7 @@ HTML4.01里面规定了**普通**和**XHTML**两大种规范。HTML觉得自己
<title>Document</title>
</head>
<body>
</body>
</html>
```

View File

@ -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>`

View File

@ -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上关注我一起入门和进阶前端。
## 前言

View File

@ -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/)

View File

@ -293,7 +293,7 @@ fileList 的打印结果:
我看到upload 组件有提供 `defaultFileList` 的属性。我试了下,这个`defaultFileList` 的属性根本没法儿用。
那就只手动实现了。我的model层代码是用 redux 写的。整体的实现思路如下:(这个也是在真正在实战中用到的代码)
那就只手动实现了。我的model层代码是用 redux 写的。整体的实现思路如下:(这个也是在真正在实战中用到的代码)
1PicturesWall.js