我想知道浏览器如何处理大多数(如果不是全部)HTML 之后的 CSS 规则。由于新规则,它是否必须重新解析整个页面,还是使用其他技术来处理这种情况?谢谢。
问问题
54 次
3 回答
1
在许多情况下必须进行重绘,并且在页面生命周期中的许多情况下,DOM 都会更改。
但是一旦页面被解析,就没有理由再次解析它,所有的变化都是在内存中的 DOM 上进行的。
话虽如此,您应该将 CSS 链接放在 HEAD 中,因为
- 它可以让浏览器更快地开始下载
- 它符合 HTML4 规范(“它可能只出现在文档的 HEAD 部分”)
- 它让浏览器更快地开始渲染
- 它让您的同事和您的未来自己在维护代码时不会感到惊讶
于 2013-02-18T12:35:13.293 回答
0
也许重新布局和重新绘制。(也就是说,如果它已经开始渲染它并且加载的样式需要不同的显示。)
重新分析,没有。样式表纯粹是展示性的;它们不影响解析。
于 2013-02-18T12:33:53.130 回答
0
假设浏览器在看到额外的 CSS 时已经开始渲染页面(这种行为有很多特定于浏览器的触发器)并假设新规则导致至少一个元素的 CSS 属性发生变化,浏览器将只需将该元素标记为需要重绘的元素。
这将导致下次浏览器重新绘制其窗口的一部分时显示页面的任何可见更改。
重要的是要记住,现代浏览器异步执行所有这些操作并安排事件,例如应用新 CSS、重新计算布局和在屏幕上绘画,大部分(但不是完全)彼此独立。
于 2013-02-18T12:35:12.723 回答