1. JS为什么单线程
一个简单的原因就是,js
在设计之初只是进行一些简单的表单校验,这完全不需要多线程,单线程完全可以胜任这项工作。即便后来前端发展迅速,承载的能力越来越多,也没有发展到非多线程不可的程度。
而且还有一个主要的原因,设想一下,如果js
是多线程的,在运行时多个线程同时对DOM
元素进行操作,那具体以哪个线程为主就是个问题了,线程的调度问题是一个比较复杂的问题。
HTML5
新的标准中允许使用new Worker
的方式来开启一个新的线程,去运行一段单独的js
文件脚本,但是在这个新线程中严格的要求了可以使用的功能,比如说他只能使用ECMAScript
, 不能访问DOM
和BOM
。这也就限制死了多个线程同时操作DOM
元素的可能。
2.使用css写出一个三角形角标
元素宽高设置为0
,通过border
属性来设置,让其它三个方向的border
颜色为透明或者和背景色保持一致,剩余一条border
的颜色设置为需要的颜色。
div {width: 0;height: 0;border: 5px solid #transparent;border-top-color: red;
}
3.水平垂直居中
使用两种方式定位
或者flex
。
div {width: 100px;height: 100px;position: absolute;top: 0;right: 0;bottom: 0;left: 0;margin: auto;
}
.parent {display: flex;justify-content: center;align-items: center;
}
4. css一行文本超出...
overflow: hidden;
text-overflow:ellipsis;
white-space: nowrap;
5.多行文本超出显示...
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
overflow: hidden;