【问题标题】:Is it not good to detect devices, operating systems and browsers Versions by User-agents?通过用户代理检测设备、操作系统和浏览器版本不是很好吗?
【发布时间】:2011-07-02 17:34:19
【问题描述】:

User-agents 检测设备、操作系统和浏览器版本不好吗?

如果我们设置过期标头并使用 wordpress W3 Total cache plugin,它会在缓存中产生任何问题

【问题讨论】:

  • 为什么检测浏览器和缓存会相关?

标签: php javascript asp.net browser-detection device-detection


【解决方案1】:

检测浏览器版本,尤其是通过用户代理字符串,是一个非常糟糕的主意。除其他外,由于两位数的版本号,这种方法通常会在新版本的 10+ 版本的 opera 和 chrome 中失败。

改用特征检测是更好的做法,而且信息量更大。这通常会为您提供您想要确定的信息。

看看 Paul Irish(jQuery 和 Chrome)和其他人的 Modernizr 库。将其与 HTML5Boilerplate 中的一些技术混合使用,通常可以满足您的所有需求,同时兼容跨浏览器。

您还可以使用 CSS3 @media-queries 将您的网站调整为适合移动或小屏幕设备。

【讨论】:

  • +1 谢谢,但我不仅在谈论跨浏览器兼容性。我说的是要检测 Windows 上的 Sarari、OSX 上的 Safari 和 iphone 上的 Safari 和 ipad 上的 Safari,并希望为每个人提供不同的风格。
  • 您将使用 CCS3 媒体查询将不同样式应用于移动设备上不同尺寸的屏幕和方向。由于在不同操作系统上对同一浏览器应用不同的样式,因此对您想要控制的元素(即 safari macosx 中的按钮)进行一般样式设置将是一种更好的方法,因此它们在所有系统上看起来都相同。或者更好的是,只是忍受它。某些东西应该在浏览器/操作系统之间看起来不同,这是一个功能而不是一个错误。
  • 另外,关于 windows 和 mac osx 之间的不同文本渲染,如果您查看 YUI 字体 css(也包含在 html5boilerplate 重置的一部分中),它在跨浏览器规范化文本方面做得很好和os'
  • @xzyfer - 但是如果我想在屏幕尺寸相同的情况下为 Firefox for windows(桌面)和 Firefox for OSX(桌面)提供不同的 CSS 怎么办?我已经了解 CSS 媒体查询和 IE 条件。我的问题有点不同。
  • 这很好奇,请问为什么?简而言之,没有一种完全可靠的方法可以做到这一点,也不鼓励这样做。但是,您可以查看 Mozilla 开发文档。我认为您也许可以在某种程度上使用供应商前缀来做您想做的事情。
猜你喜欢
  • 1970-01-01
  • 2010-10-13
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 1970-01-01
  • 2013-05-02
相关资源
最近更新 更多