1.css加载会造成阻塞吗
结论:
1. css加载不会阻塞DOM树的解析
2. css加载会阻塞DOM树的渲染
3. css加载会阻塞后面js语句的执行
原因:
1. DOM解析和CSS解析是两个并行的进程,所以这也解释了为什么CSS加载不会阻塞DOM的解析。
2. 然而,由于Render Tree是依赖于DOM Tree和CSSOM Tree的,所以他必须等待到CSSOM Tree构建完成,也就是CSS资源
加载完成(或者CSS资源加载失败)后,才能开始渲染。因此,CSS加载是会阻塞Dom的渲染的。
3. 由于js可能会操作之前的Dom节点和css样式,因此浏览器会维持html中css和js的顺序。因此,样式表会在后面的js
执行前先加载执行完毕。所以css会阻塞后面js的执行。
2.彻底搞懂white-space
white-space
这个属性是用来控制空白字符的显示的**,同时还能控制是否自动换行。它有五个值:`normal | nowrap |
pre | pre-wrap | pre-line`。因为默认是`normal`,所以我们主要研究下其它四种值时的展现情况。
white-space:normal
white-space:nowrap
white-space:pre
white-space:pre-wrap
white-space:pre-line