选择取决于用户代理显示的样式表的最佳方法是什么?
例如,我想为Android显示一个CSS样式,为iPhone显示一个不同的样式。
仅CSS可能吗?
我可以使用类似媒体查询的内容吗?
提前致谢
最佳答案
使用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样式表合并为一个。比使用带有少量自定义Java脚本的isMobile库将必要的CSS类添加到HTML标记中。
关于javascript - 用户代理的条件样式表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24396138/