繁体   English   中英

用户代理的条件样式表

[英]Conditional stylesheet by useragent

选择取决于用户代理显示的样式表的最佳方法是什么?

例如,我想为Android显示一个CSS样式,为iPhone显示一个不同的样式。

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

提前致谢

使用Internet Explorer,您可以使用条件注释( http://msdn.microsoft.com/zh-cn/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标记中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM