javascript - IE11 / Edge不尊重DOM中的链接/ css顺序

原文 标签 javascript html css internet-explorer dom

tl;dr:ie11/edge似乎优先考虑最后加载了javascript的CSS文件中的样式,而不是它们在DOM结构中的显示方式。
我找不到其他报告过这个问题的人,但我正在寻求帮助来确认我的问题。
我有一个加载JS库的函数(如果cdn失败,在本地),这包括一行到“appendto”或“prependto”的“head”元素(传入“method”)。

$("<link>", { rel: "stylesheet", type: "text/css", "href": css })[method]("head");

问题是核心网站样式可能会覆盖库样式,所以我认为“prependto”的“head”可以确保核心样式覆盖库-这在firefox&chrome中有效。但在IE中,库样式仍然被重写,就好像CSS文件在DOM中的核心文件之后一样,即使通过检查DOM也可以发现它在以前。
在我的例子中,如果cdn失败,我将从本地版本加载数据表css&js-由于我希望自定义网站css覆盖库,我使用“prependto”确保数据表css在文档标题标记中的自定义网站css之前。IE11仍然使用“最后一个”或给予它优先权。当模仿IE10等时是真的,尽管我不再有一个“真实的”旧IE版本的测试区来验证这是否总是真的。
你能确认这是IE的功能吗?你知道这是什么时候开始的吗?你知道解决方法吗?试图避开一堆“!在我的CSS文件中。

最佳答案

即使在第16边缘,我也看到了同样的问题。我不幸的解决方法是通过JavaScript手动附加任何CSS,而不是在我的HTML/页面模板中。

    var link = document.createElement('link');
    link.rel = 'stylesheet';
    link.href = '/link/to/style.css';
    document.querySelector('body').appendChild(link);

相关文章:

javascript - ctags,jsctags / doctorjs,Tagbar逐步

jquery - 如何使Fancybox弹出窗口全屏滚动

html - 以确定的间隙响应地将两个元素居中

javascript - Python和读取JavaScript变量值

javascript - 用于基于节点的对象和对象关系的Javascript库?

html - Angular实例化组件更多次

html - 下划线左浮动div

javascript - 配置htaccess绕过直接链接到CSS和Javascript文件

javascript - 在不使用表格的情况下,将所有文本放在链接的右侧

javascript - 我无法在Node.js中的readFile()回调内更新对象属性