这是 Harry 的一条很好的推文
我喜欢它,因为它正如他所说,这是正确的思考方式。它有助于形成网站工作原理的心智模型。
只是再详细说明一下……
/*
Just because I'm in the CSS, doesn't mean I'll load!
In order for `myfont.woff2` to load, a selector needs to
set `font-family: 'MyWebFont';` AND something in the DOM
needs to match that selector for that file to be requested.
*/
@font-face {
font-family: 'MyWebFont';
src: url('myfont.woff2') format('woff2');
}
/*
Just because I'm in the CSS, doesn't mean I'll load!
In order for `whatever.jpg` to load, the selector
`.some-element` needs to be in the DOM.
*/
.some-element {
background-image: url(whatever.jpg);
}
如果在 CSS 中声明的资源直到被 DOM 使用或直到浏览器空闲时才加载,那就太好了。这样,如果通过 JavaScript 动态添加元素,则相关资源很可能已经下载。
另一方面,我想这也可以作为一种保护措施,以防加载大量未使用的 CSS,从而节省不必要的网络请求。也许可以作为开发人员可以控制的功能?
这就引出一个问题,即像 Purge CSS 这样的工具是否真的有必要用于除绝对最大的网站之外的任何网站。在第一页加载时加载整个网站的 CSS 的额外权重似乎微不足道,因此我认为没有理由不这样做。
是的,因为 CSS 选择器会对性能产生影响,在较旧、较慢的设备/计算机上尤其明显。这甚至会影响某些设备的电池寿命,因此修剪掉未使用的 CSS 确实有所帮助。
您见过 Tailwind 的输出吗?