当我正在重新编码整个网站时,我需要选择几种方法来检测网络浏览器和移动设备。从下面的列表中,您能否推荐更好的选择?
以下是我的选择;
浏览器检测
移动设备检测
理想情况下,我希望所有移动设备(智能手机和平板电脑)都能显示网站的移动版本,并且可以通过用户代理交换机查看桌面版本,我知道Chrome,Firefox和Opera在Android上提供(至少)。
谢谢。
答案 0 :(得分:2)
您不应使用浏览器检测,而应使用功能检测。为此,我强烈推荐Modernizr。
关于设备检测,我使用PHP Mobile Detect,它非常有效。但是,大多数情况下,您只需通过媒体查询进行屏幕检测即可逃脱:
@media screen and (max-width:759px){
/* mobile CSS */
}
@media screen and (min-width:760px){
/* browser CSS */
}
显然过于简单,您可以将其设置为您想要的任何尺寸,并具有多个版本(平板电脑,巨型屏幕等)。 More information can be found here.
也就是说,IE8及以下版本不支持媒体查询,因此您需要进行基于Javascript的检测。如果您使用Modernizr,您可以检测它,在单独的文件中复制屏幕大小的CSS,并通过为您的CSS链接提供ID来动态应用该CSS文件:
<link rel="stylesheet" type="text/CSS" id="ApplyQueries" href="queries.css" />
然后通过screensize动态应用正确的文件:
if(document.documentElement.clientWidth < 760){
document.getElementById('ApplyQueries').href = 'mobile.css';
} else {
document.getElementById('ApplyQueries').href = 'browser.css';
}
这又是过度简化了,但应该让你知道从哪里开始。