【发布时间】:2010-12-04 02:59:51
【问题描述】:
在我的网页上,我有这个 CSS:
tr:hover {
background-color: #f0f;
}
除了好的旧 IE 之外,它在所有浏览器中都能很好地工作。我知道我可以编写一些 jQuery 来在鼠标悬停/移出时添加和删除一个类,但我不想妨碍(尽管如此轻微)所有其他正确支持 :hover 的浏览器 - 所以我想仅对原生不支持纯 CSS 解决方案的浏览器应用此 JS 行为。
当然,我们都知道$.browser 已被弃用,而且我们都知道浏览器嗅探是一件坏事,而且关于 SO 的所有其他问题都有大量类似于“你不应该这样做”的答案检查浏览器,检查功能”,在这些人居住的魔法仙境中,这一切都很好,但我们其他人需要得到我们的网站在 IE6 和其他浏览器上运行正常。
$.support 在 IE6 和 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 用户提供该功能,要么在所有浏览器中模拟它,但这不是重点。当$.support 没有接近替换它时,你应该如何停止使用$.browser?
【问题讨论】:
标签: jquery cross-browser sniffing