经过谨慎的考虑,将这个PR提到了master分支(因为master当中也存在这些错位问题,且本修改造成的影响非常有限)。
事情起因是在制作新模板的过程当中,在ie9及以上浏览器上发现了许多微小的表现不正常的行为。仔细检查原因以后发现,这些问题主要出现在IE9-10当中,是由css当中的ie_all引起的(IE11未被识别成IE因此不受影响)。过去为IE专门设计的样式随着新版本的IE浏览器的出现而变得不再合适了,这些IE hack的代码反而对后来的IE浏览器造成了问题。
事实上IE9及以后的表现与之前的版本差异较大,更符合现代浏览器的特征,实际书写当中也几乎不存在对IE所有版本生效而对其他所有浏览器不生效的css(意味着理论上应该不会有人依赖这个特性来区分所有IE浏览器),外加目前ie_all的行为本就不正确,无法正确标识IE11。因此经讨论后计划将ie_all的行为变更为针对ie9以下的版本生效,就可以解决掉这个问题。经检查,此修改可以基本上让IE9-10的异常行为得到消除。
没有从css一侧进行修改的原因是改动量大,必要性不强且每条css的选择器都要被重复三遍。

本修改仅对css产生影响,所有依赖IE检测的相关js代码不会因此受到任何影响,行为也与之前完全一致。

另外本PR顺便修复了IE11无法被识别到的问题,且不影响从前的代码行为(js侧IE11依然不会有BROWSER.ie的值,IE11仍然会拥有BROWSER.rv和BROWSER.firefox,但如需识别IE11可以通过BROWSER.trident或BROWSER.iemode获取到IE11的信息)。