在IE9中处理HTML和CSS的顺序

Tho*_*mas 9 html css jquery internet-explorer internet-explorer-9

我有一个网页,我隐藏页面的内容,直到onloadJavaScript事件被触发,然后我取消隐藏内容.它在Chrome,IE11和IE10下运行良好.但是当我使用IE9时,内容的隐藏会被忽略,直到页面完全加载,此时隐藏才会生效.

由于这个问题,我将隐藏从JavaScript移到了CSS而且仍然具有相同的视觉效果.所以我的问题是:CSS是仅在html完全加载后应用还是我在这里忽略了什么?这里有一些代码:

#deactivate {  
    display: none;
}
Run Code Online (Sandbox Code Playgroud)
<html>
    <body>
        <div id="deactivate">MycontentIsNotToBeShown</div>
        <div>MyContentIsToBeShown</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)
$(document).ready(function() {
    //......DO things and then as the last step:
    $("#deactivate").first().show();   
});
Run Code Online (Sandbox Code Playgroud)

就像我说的那样,"去激活"div的消失至少在jQuery代码开始工作之前不会发生(至少它看起来是光学的).

发生这种情况的整个页面是一个sharepoint页面(sharepoint 2013)...在视图模式下的nintex表单更精确.我不确定它是否与OR有任何关系,如果它与IE9中的内容加载顺序有关.因此,我的问题在于,如果它可能是IE9中如何加载/使用事物的顺序可能会导致这种影响?

另外需要注意的是:我已经检查过.css中是否有太多选择器,这看起来并非如此(我知道IE中有一个限制,它将在单个.css文件中处理多少个选择器) .

Har*_*ngh 0

您必须将代码放在body标记之外,它将在 dom 和布局(CSS)之后应用:

    </body>
    <script>
        $(document).ready(function () {
            $("#deactivate").first().show();
        });
    </script>
</html>
Run Code Online (Sandbox Code Playgroud)