fe-daily-challenges-2018

如何用纯 CSS 创作一个矩形旋转 loader 特效

★资源

➹:前端每日实战:2# 视频演示如何用纯 CSS 创作一个矩形旋转 loader 特效 - 前端每日实战 - SegmentFault 思否

➹: https://scrimba.com/c/cJMkwH9

★源码

➹:front-end-daily-challenges/002-rectangular-rotating-loader-animation at master · comehope/front-end-daily-challenges

➹:fe-daily-challenges-2018/002-rectangular-rotating-loader-animation at master · ppambler/fe-daily-challenges-2018

★预览效果

★知识点

★总结

★Q&A

①body没有高度,为啥设置背景色会让整个视口变色呢?

<html>标签无背景样式时,<body>的背景色其实不是<body>标签的背景色,而是浏览器的。

一旦html标签含有背景色,则<body>的背景色变成了正常的<body>标签(一个实实在在,普普通通标签)的背景色,而此时的<html>标签最顶级,背景色被浏览器获取,成为浏览器的背景色。

➹:对html与body的一些研究与理解 « 张鑫旭-鑫空间-鑫生活

②移动端的html的font-size如何设置?

用媒体查询来设置html的font-size:

@media screen and (min-width: 320px) {
    html {font-size: 14px;}
}
 
@media screen and (min-width: 360px) {
    html {font-size: 16px;}
}
 
@media screen and (min-width: 400px) {
    html {font-size: 18px;}
}
 
@media screen and (min-width: 440px) {
    html {font-size: 20px;}
}
 
@media screen and (min-width: 480px) {
    html {font-size: 22px;}
}
 
@media screen and (min-width: 640px) {
    html {font-size: 28px;}
}

这样一来,同样一个页面下的元素,在不同的屏幕尺寸下,就会呈现出不一样的大小了!当然前提是,你这个元素涉及px单位的属性,都转为rem单位才行!

总之,通过「媒体查询+rem」可以让一个元素的盒子大小在不同的屏幕尺寸下会有等比的缩放!这样一来,元素看起来大小就是合适的!而不是PC端看这个元素很正常,但是移动端看这个元素就大得离谱了!

➹:移动端应该如何动态设置字体大小? - web开发 - SegmentFault 思否

③关于像素的那些事儿?

想到一个比喻:之前看张鑫旭大佬一书说到把CSS世界看做是一个动漫世界!一个世界即一个地球对吧!

现在为了理解px这个相对单位,我引入了平行世界的概念,即一个设备即可看做是不同的平行世界,或者说是一个宇宙,总之不同的平行世界下,即不同的设备下,这个px所表示的「大小」是不同的。

像是日常的10cm大小的物体,平行世界也是如此的大小,只是名字不同而已,比如叫10zn,反正这是一种约定的大小。而px则不是,它受到硬件的影响,这种影响是我们前端开发者不可控的。

➹:CSS像素、物理像素、逻辑像素、设备像素比、PPI、Viewport · Issue #21 · jawil/blog

④关于英寸单位换算的那些事儿?

我们可以测量物体有多长、多高或有多远。这些都是长度。

最常见的测量单位:mm、cm、m、km(千米,公里)

➹:Metric Length

1英寸 = 2.54cm

在美国,通常人们都可以估计出一件东西大约有多少英寸长

同样,在中国,我们也可以估计出一件东西大约有多少里厘米长

生活中,一个1元硬币的直径是25mm,即大约是1英寸,当然,你可以把硬币看做是1英寸长,这点误差对于我们估算某个东西有多长,并咩有多大影响,反正又不是精确度量,而是用于「装逼」之技(我只要看一眼就知道这东西有多长,你说厉害不?)而已!

1元

上边这个是第五套人民币第二个版本的1元硬币,直径是22.5毫米(0.89英寸)

而第五套人民币第一个版本的1元硬币才是25mm的直径:

img

其背面是牡丹花:

img

还有SIM标准卡的尺寸为 25mm×15mm×0.8mm

1559792411474

是1in,而不是1ins

那么1cm长的东西呢?——图钉img、订书针等

图钉

那么关于英寸的单位换算呢?

有段文字一直才重复,那就是「666xx连在一起就是1zz」,为啥要重复呢?因为这重复的话,是需要深刻记得脑子里边的!因为它告诉了你这个1码概念是怎么来的?这个1英里概念是怎么来的……

请记住为什么,而不是什么!

总之:

1559793531671

一英里是 1.609344千米(我大概算着是1.584千米

快速但不绝对准确的转换:

我们知道斐波那契数列(每项是前两项的和):0、1、1、2、3、5、8、13、21、34、55、89、144……

然后,头几个数不管用,但从 “3、5”开始:

所以「55英里是多少千米?」。显然是89千米呀!(55英里 × 1.609344 米m/英里 = 88.51392千米

我们知道今年2019年的nba状元大热锡安体侧数据:

img

可以看到锡安是6尺7寸(6英寸7寸),也就是 (6*12+7)*2.54cm=200.66cm=2米,而老詹则是 203.2cm=2米03

➹:美国标准长度

➹:SIM卡_百度百科

➹:谁帮忙测一测1块钱硬币宽度多少厘米 还有 20RMB宽度多少 不是长度_百度知道

➹:1元人民币硬币 - 维基百科,自由的百科全书

⑤每次打开chrome的控制台,然后刷新页面,就会自动打断点,至此就会卡住页面,那么如何设置为不打断点呢?

1559805151951

我测试了一下,只需要把第二步的勾勾去掉就可以了。第一步点不点都无所谓。

➹:怎么关闭谷歌浏览器自动断点调试?打开网页按F12之后,打开任何网页都会自动断点调试js - microcosmv的博客 - CSDN博客

⑥3个span 加上z-index属性 和没加 效果一样啊 … 这里为啥要加z-index属性啊??

把动画时间放慢4倍到 16s/8s/4s,就可以看到不加 z-index 的效果了,是有差别的