我有一个3个步骤:


一切正常。除了在步骤3的少数情况下,样式(在步骤2中插入)可能尚未应用。这通常发生在很多东西加载并在页面上与我的代码并行初始化时。


我无法提取一个简单的复制示例(代码库非常复杂)。


我的问题是:是否保证在插入样式后立即应用它们?如果没有,是否有任何API允许我在应用样式后运行一些代码?


我在网上找不到任何关于此内容的信息。所以我非常感谢有人可以指导我做任何关于这个问题的事情。


样式插入看起来像这样:


 var style = document.createElement('style');
 style.setAttribute('type','text / css');& #xA; style.appendChild(document.createTextNode(CSS));
 document.getElementsByTagName( '头')[0] .appendChild(风格);
 代码>
&# XA;
答案 0 :(得分:1)
似乎<style>
内容在DOM加载之前的每个<link rel="stylesheet" />
都没有应用。
它可能以这种方式工作,因为样式依赖于并依赖于顺序(如果有多个规则使用相同的选择器)。根据这一点 - 浏览器开发人员可以在DOM中按顺序执行样式。
在添加样式标记之前尝试等待:
直到window.load
事件(用于测试)
直到加载所有样式表(在生产中减少延迟),例如How to determine if CSS has been loaded?
P.S。我还没有测试过那个
答案 1 :(得分:0)
与任何其他依赖项一样,需要获取/解析/绘制CSS文件。很难确切地知道何时下载和使用它。
我认为你的边缘情况是它的下载速度不够快。您是否可以准备好CSS并在主体上使用类来在需要时应用CSS?