在我的网页上,我有这个CSS:
tr:hover {
background-color: #f0f;
}
除了好的旧IE之外,它在所有浏览器中都能很好地工作。我知道我可以写一些jQuery来添加和删除鼠标上/下的一个类,但我不想让所有其他支持:hover
的浏览器都有障碍(尽管有点小) - 所以我我希望只为那些本身不支持纯CSS解决方案的浏览器应用这种JS行为。
当然,我们都知道$.browser
已被弃用,而且我们都知道浏览器嗅探是一件坏事,SO上的其他问题都有一大堆答案,就像“你不是应该检查浏览器,检查功能“,这些在这些人居住的神奇仙境中一切都很好,但我们其他人需要让我们的网站工作,并在IE6和其他浏览器上看起来很好。
$.support
看起来像这样。 7:
leadingWhitespace: false
tbody: false
objectAll: false
htmlSerialize: false
style: false
hrefNormalized: false
opacity: false
cssFloat: false
scriptEval: false
noCloneEvent: false
boxModel: true
我究竟应该如何使用这些属性来确定tr:hover
是否有效?
是的我知道在这个例子中,它是相当无害的,我可能可以通过不向IE用户提供该功能,或者通过在所有浏览器中模拟它来逃避,但这不是重点。当$.browser
没有接近替换它时,您应该如何停止使用$.support
?
答案 0 :(得分:5)
简单的答案 - 在某些情况下你不能,这是我认为你应该使用任何必要手段来完成工作的情况之一。许多流行的插件(日期选择器和模态脚本)需要来执行此操作(例如,iframe shim),或者脚本无法正常用于特定的(尽管是旧的)浏览器。
然而,不是像$ .browser那样嗅探userAgent,我会反对检测IE6或使用CC。
<!--[if IE 6]><script src="/js/ie6.js"></script><![endif]-->
您还可以提供一般的IE js文件,然后根据版本在其中分支。