CSS 新'content-visibility'属性是否会干扰脚本加载行为?



新的CSS属性content-visibility属性看起来是一个提高页面加载速度的好工具。

我想把它添加到我的页脚:

<footer style="content-visibility: auto;">
(...)
</footer>

因为它可以稍后在屏幕上绘制(它显示在我网站所有页面的文件夹下面(。

但是,我的页面页脚有许多js-lib,它们是通过页脚标记内的<script>标记加载的。

有些脚本是急切加载的,有些是延迟加载的,而另一些则是异步加载的。(是的,不幸的是,有很多剧本(。

所以我的问题是:

content-visibility属性会以任何方式干扰脚本加载吗

还是不管CSS属性如何,脚本都会以相同的方式加载?

在这里询问,因为它是新的,看起来有点";魔术;我没有找到太多相关的文档。提前感谢您对此的任何见解。

应该是<footer style="content-visibility:auto">而不是<footer content-visibility="auto">

它是一个CSS属性,所以它不会影响脚本加载,但因为它有可能影响布局,所以如果脚本<执行>依赖于特定的基于布局的操作,例如获取矩形的边界框,它可能会受到影响。

当你认为Alohci的答案不完整时,我会加上我的2美分,但大多数情况下我只能重新表述已经说过的话。

我没有Chrome 85,所以我不能测试它。但在阅读了这个和这个规格后,我认为:

  1. 。。。但是,如果它是一个向元素添加处理程序的脚本,那么它可能是错误的,比如$(selector).click(...)

    只需测试即可!尝试使用带有JS代码的content-visibility: auto单击一个元素,但由于屏幕外,该元素仍然不可见。我相信管理员会工作的。说明书中没有关于这些事情的任何内容。

  2. content-visibility属性会以任何方式干扰脚本加载吗?

    否。规范中没有一个关于资源加载的词。但再次测试!查看网络选项卡。脚本的加载顺序不应更改。

  3. 因此,它不会影响通用脚本,如bootstrap等,但如果是一个。。。

    。。。一个。。。

    • 在某种程度上取决于具有content-visibility: auto或其后代的元素的大小(Alohci已经指出(
    • 某种程度上取决于innerText
    • 与一些可访问性功能相关(可能……不太熟悉这些功能(
    • 在其他情况下(如果你对细节感兴趣,请阅读规范(
    • 由于该功能仍处于初级阶段,因此可能还有其他情况没有在规范中提及。(content-visibility的规范实际上是一份草案(

    是的,它可以破坏

    你甚至可以想象一个脚本,它读取css属性,找到content-visibility并在未知的情况下抛出……甚至因为它的作者讨厌那些使用content-visibility的人而抛出:(

    但我认为,在你的情况下,机会是无穷小的,因为我认为你所指的脚本中没有一个对你的footer感兴趣。

无论如何,任何更改都应该进行测试(理想情况下(。但你也永远无法确定是否没有bug。所以,只要尝试一下,如果值得的话,看看进展如何。

最新更新