useragent的条件样式表

时间:2014-06-24 20:57:48

标签: javascript html5 css3

选择将根据使用者显示的样式表的最佳方法是什么?

示例,我想为Android显示一个css样式,为iPhone显示另一个样式。

  • 只能用css吗?
  • 我可以使用类似媒体查询的内容吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

使用Internet Explorer,您可以使用条件注释(http://msdn.microsoft.com/en-us/library/ms537512.aspx)在特定浏览器中包含样式表。此技术在其他浏览器中不起作用,我相信它在最新版本的Internet Explorer中不起作用。

据我所知,实现这一目标的唯一方法是使用Javascript。最简单的方法是使用基于用户代理字符串的Javascript将类添加到页面的HTML标记(即" .android"或" .iphone")。在CSS中,只需在样式表中引用.android或.iphone即可专门针对其中一个。

但是,最好的方法是尽可能避免进行特定的浏览器检测。特征检测是首选方法(http://www.joezimjs.com/javascript/feature-detection-vs-browser-detection/)。这是一个例外,因为您的意图是根据设备使用不同的主题。

查看isMobile Javascript库(https://github.com/kaimallea/isMobile)以轻松检测Apple或Android设备。只要样式表对于每个主题都不是很大,我建议将Android和Apple样式表合并为一个。比使用带有一点自定义Javascript的isMobile库将必要的CSS类添加到HTML标记中。