gpt4 book ai didi

html - 针对 IE 和 !IE

转载 作者:行者123 更新时间:2023-11-28 01:41:53 29 4
gpt4 key购买 nike

我知道有 1000 个问题,但我就是无法让它发挥作用。我只是想针对所有版本的 IE(包括 IE11)并给 html 一个特定的类,对于所有其他浏览器(firefox、opera、chrome),我希望 html 有另一个类,甚至根本没有类。这是我的非工作代码:

<!-- [if IE] --> <html lang="en" class="legacy"><!-- [endif] -->
<!-- [if !IE] --> <html lang="en" class="modern"><!-- [endif] -->

这是怎么回事?我到处都是 class="legacy" :\

针对任何 IE 浏览器的通用 javascript 解决方案也可以!

这是用例:

我正在使用 skrollr jquery 插件,我正在用移动版的 enquire.js 破坏它,因为它在 explorer 上不工作(并且部分不在 IE11 中工作......是的...... IE 只是不会得到在任何情况下都是正确的)我有一个看起来像这样的函数:

var $html = $("html");

function enableSkrollr() {

var s = skrollr.init({
forceHeight : false
});
}//enable

function disableSkrollr() {

var s = skrollr.init();
s.destroy();

}//disable

if ($html.hasClass("modern")) {
enquire.register("screen and (min-width: 1140px)", {
match : function() {
enableSkrollr();
},
unmatch : function() {
disableSkrollr();
}
});
};

所以我依赖于 html 标签中的 modern

最佳答案

要使用 CSS 以 IE10+ 为目标,请使用带有仅 IE 支持的规则的媒体查询。

示例,其中 .class<!-- [if !IE] --> 的类html标签:

.class {
background-color: red;
width: 150px;
height: 150px;
}

@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
/* IE10+ styles go here */
.class {
background-color: gray;
}
}

JSFiddle

继续使用条件注释来定位旧版本的 IE。

编辑:除了让您的 javascript 只检测类之外,您还可以让它检查媒体查询是否匹配:

if (document.getElementsByTagName('html')[0].className === 'modern') {
var mql = window.matchMedia("screen and (-ms-high-contrast: active), (-ms-high-contrast: none)");
mql.addListener(handleMediaQuery);
handleMediaQuery(mql);

function handleMediaQuery(mql) {
if (mql.matches) {
console.log('ie')
}
}
}

您可能希望使用 jQuery 来执行此操作和 enquire.js而不是纯 JavaScript。

Demo Fiddle

关于html - 针对 IE 和 !IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25514624/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com