你应该知道的前端小知识

1.JS为什么单线程

一个简单的原因就是,js在设计之初只是进行一些简单的表单校验,这完全不需要多线程,单线程完全可以胜任这项工作。即便后来前端发展迅速,承载的能力越来越多,也没有发展到非多线程不可的程度。

而且还有一个主要的原因,设想一下,如果js是多线程的,在运行时多个线程同时对DOM元素进行操作,那具体以哪个线程为主就是个问题了,线程的调度问题是一个比较复杂的问题。

HTML5新的标准中允许使用newWorker的方式来开启一个新的线程,去运行一段单独的js文件脚本,但是在这个新线程中严格的要求了可以使用的功能,比如说他只能使用ECMAScript,不能访问DOM和BOM。这也就限制死了多个线程同时操作DOM元素的可能。

2.使用css写出一个三角形角标

元素宽高设置为0,通过border属性来设置,让其它三个方向的border颜色为透明或者和背景色保持一致,剩余一条border的颜色设置为需要的颜色。

3.水平垂直居中

我一般只使用两种方式定位或者flex,我觉得够用了。

父级控制子集居中

4.css一行文本超出...

5.多行文本超出显示...

6.IOS手机容器滚动条滑动不流畅

7.修改滚动条样式

隐藏div元素的滚动条

div::-webkit-scrollbar滚动条整体部分

div::-webkit-scrollbar-thumb滚动条里面的小方块,能向上向下移动(或往左往右移动,取决于是垂直滚动条还是水平滚动条)

div::-webkit-scrollbar-track滚动条的轨道(里面装有Thumb)

div::-webkit-scrollbar-button滚动条的轨道的两端按钮,允许通过点击微调小方块的位置。

div::-webkit-scrollbar-track-piece内层轨道,滚动条中间部分(除去)

div::-webkit-scrollbar-corner边角,即两个滚动条的交汇处

div::-webkit-resizer两个滚动条的交汇处上用于通过拖动调整元素大小的小控件

注意此方案有兼容性问题,一般需要隐藏滚动条时我都是用一个色块通过定位盖上去,或者将子级元素调大,父级元素使用overflow-hidden截掉滚动条部分。暴力且直接。

8.解决iosaudio无法自动播放、循环播放的问题

ios手机在使用audio或者video播放的时候,个别机型无法实现自动播放,可使用下面的代码hack。

9.隐藏页面元素

display-none:元素不会占用空间,在页面中不显示,子元素也不会显示。

opacity-0:元素透明度将为0,但元素仍然存在,绑定的事件仍旧有效仍可触发执行。

visibility-hidden:元素隐藏,但元素仍旧存在,占用空间,页面中无法触发该元素的事件。

10.前端工程化

一提到前端工程化很多人想到的都是webpack,这是不对的,webpack仅仅是前端工程化中的一环。在整个工程化过程中他帮我们解决了绝大多数的问题,但并没有解决所有问题。

前端工程化是通过工具提升效率,降低成本的一种手段。

近些年被广泛的


转载请注明:http://www.aierlanlan.com/grrz/4646.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了