tl; dr:IE11 / Edge似乎优先考虑最后使用javascript加载的CSS文件中的样式,而不是它们在DOM结构中的显示方式。
我找不到其他人报告此问题,但我正在寻求帮助确认我的问题。
我有一个加载JS库的函数(如果cdn失败,则在本地),这包括一行“appendTo”和#39;或者' prependTo'头部'元素(传入'方法')。
$("<link>", { rel: "stylesheet", type: "text/css", "href": css })[method]("head");
问题是核心网站风格可能会覆盖图书馆样式,因此我认为&#39; prependTo&#39;头部&#39;将确保核心样式覆盖库 - 这可以在Firefox&amp;铬。但是在IE中,库样式仍然是最重要的,就好像CSS文件在DOM中的核心文件之后,即使通过检查DOM显示它是在之前。
就我而言,我正在加载dataTables CSS&amp;如果CDN失败,本地版本的JS - 因为我希望我的自定义网站CSS覆盖库,我正在使用&#39; prependTo&#39;确保dataTables CSS位于文档头标记中的自定义网站CSS之前。 IE11仍然适用它&#39; last&#39;或者给予它偏好。虽然我不再拥有“真实”的测试区域,但在模拟IE10等时却是如此。旧的IE版本,以验证这是否总是如此。
您能否确认这是IE中的功能?你知道这个什么时候开始吗?你知道修复吗?试图避免一堆重要的&#34;在我的CSS文件中。
答案 0 :(得分:1)
即使在Edge 16上我也看到了完全相同的问题。我不幸的解决方法是通过JavaScript而不是在我的html / page模板中手动附加任何css。
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = '/link/to/style.css';
document.querySelector('body').appendChild(link);
&#13;