2011-07-06 77 views
3

好的,我一直在研究这一段时间,似乎有几种方法可以做到这一点,CSS媒体查询,检测屏幕大小,htaccess和JavaScript。检测平板电脑和手机,htaccess或CSS

我宁愿去htaccess路由,因为据我所知,平板电脑现在有1024px的分辨率。这不会干扰桌面解决方案吗?此外,htaccess让我有机会为平板电脑和移动浏览器构建一个全新的网站,但我该如何去检测它是平板电脑还是手机?我不想检测它是谷歌Nexus还是HTC Desire或者iPhone,对比iPad,Acer Iconia,Xoom等。

有没有办法检测平板电脑,手机或台式电脑,而不必包括每一个品牌和型号? (for example as here。)

回答

6

我建议使用Modernizr这个。

它使用JavaScript客户端浏览器上,以检测全范围的浏览器功能,包括触摸事件的支持,并为您提供CSS类,哪些是你可以用它来调整你的网站,以适应用户的浏览器Javascript对象。

我总是会避免在服务器上进行浏览器检测(即在.htaccess或服务器端代码中),因为它不可靠 - 服务器可以用来检测客户端环境的数据以纯文本形式发送并很容易被欺骗或黑客入侵。更重要的是,它通常也被代理和隐私应用所压制。

+0

这是一个很好的资源,但我肯定在寻找一种方式来创建桌面两种不同的HTML结构和手机/平板电脑版本.. – Kyle

2

如果要使用.htaccess检测移动浏览器,则必须列出其名称(至少是最独特的部分)。它可以用一个重写规则来完成,例如(从SO另一个问题采取):

RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC] 
RewriteCond %{REQUEST_URI} !^/mobile.php 
RewriteRule .* /mobile.php?url=%{REQUEST_URI} [L]