PHP/javascript中基于用户代理的物理屏幕大小“检测”

PHP/javascript中基于用户代理的物理屏幕大小“检测”,php,javascript,css,device,screen-size,Php,Javascript,Css,Device,Screen Size,因此,有一些方法可以使用javascript和php检测“移动”浏览器和屏幕大小。。然而,屏幕大小总是以像素为单位返回,现在移动设备可以意味着任何东西 我想知道移动设备的显示屏有多大,平板电脑随处可见。这是因为我想为小屏幕设备选择一个样式表,其他所有设备默认为普通样式表。例如,我想要一台iPad、kindle fire、hp touchpad等来显示普通的样式表,但我想要一个不同的样式表,用于手机或任何有人手大小显示器的设备 现在,我猜不存在这样做的方法,但可能有人想到了更好的方法,或者知道某个

因此,有一些方法可以使用javascript和php检测“移动”浏览器和屏幕大小。。然而,屏幕大小总是以像素为单位返回,现在移动设备可以意味着任何东西

我想知道移动设备的显示屏有多大,平板电脑随处可见。这是因为我想为小屏幕设备选择一个样式表,其他所有设备默认为普通样式表。例如,我想要一台iPad、kindle fire、hp touchpad等来显示普通的样式表,但我想要一个不同的样式表,用于手机或任何有人手大小显示器的设备

现在,我猜不存在这样做的方法,但可能有人想到了更好的方法,或者知道某个数据库的某个地方有屏幕大小的尺寸……嗯

…也许有一种方法可以找到像素密度,然后将屏幕宽度/高度(以像素为单位)应用于此


看起来你可以从WURFL API上得到这些信息。太酷了

我实际上认为这是一个很好的问题。目前令人不满意的情况是,在10台平板电脑上,默认情况下,你会得到一个巨大的、浪费空间的单栏移动网站,而桌面版本来就可以

不幸的是,正如约翰·亨特(John Hunt)所发现的,即使是WURFL也不能给出准确的物理屏幕大小

一种半解决方法是一种启发式假设,如果x或y维度小于768像素,则您在手机上*,因此默认情况下为您站点的单栏移动版本提供服务

您仍应始终允许访问者在移动或桌面之间进行选择。更好的是,只需将其称为你网站的单列或窄幅版本,以避免用词不当


*为什么是768像素?因为所有10款重要的平板电脑都至少有1024x768或1280x800,而即使是大屏幕手机,如iPhone 5或HTC HD5,其宽度也小于768像素iPhone 5-640x1136,HTC HD5 1280x720。这在三星的巨大屏幕上可能不起作用,但在那些设备上,默认情况下使用桌面版本并不是那么烦人。

正确的答案我认为是使用响应式布局方法,因为你永远不会为所有不同的设备找到正确的布局方法每天都有100台新设备。

你可以使用类似引导的框架,根据屏幕分辨率显示/隐藏列或数据。就显示而言,这很好

但理想情况下,您也希望您的脚本语言了解这一点,以便它不会处理/执行某些数据,这些数据不会通过引导显示

此时浏览器代理不提供屏幕分辨率。因为现代网站必须至少对流行的手机、平板电脑和电脑做出响应,所以应该启用这一功能


这是我对未来版本的HTTP/W3c/Browser实现的愿望清单。

使用wordpress时,wp_is_移动功能存在相同的问题,因为它将为平板电脑和手机设置移动标志。我的问题是,我希望手机在没有页面顶部图像滑块的情况下获得有限的页面,以加快网站下载/绘制速度。平板电脑通常具有比3G更快的wifi接入速度,或者实际上比wifi 4g更慢

我正在使用的响应性wordpress主题Customizer使用了自动调整的twitter引导,但在具有大图像页面的手机上运行速度仍然太慢。因此,我的网站的问题不仅仅是屏幕大小或分辨率,而是数据和屏幕绘制速度

Rocco Aliberti在这个主题论坛上提出了一个有用的建议,将浏览器检测插件与内置wordpress wp_is_mobile功能相结合,然后将其与内置wordpress wp_is_mobile功能相结合,以获得wp_is_mobile&!is_平板电脑-例如,该设备是移动设备,而不是平板电脑。

您可以通过javascript innerWidth检查屏幕大小给出/返回设备的宽度,无论您是在桌面还是手机上,您可以使用此javascript innerWidth代码向用户代理提供更多过滤器


然后,您可以根据屏幕大小应用css。

浏览器嗅探是一种有缺陷的策略。无法从用户代理字符串可靠地获取屏幕大小。即使你可以,这意味着你必须为每个不同的设备和可能的用户代理处理不同的大小。解释你的问题,你可能会得到如何处理它的帮助。但是,屏幕大小总是以像素为单位返回-为什么这是一个问题?像素的数量不是比实际的屏幕尺寸重要得多吗?不,想象一下你有一个非常小的8000x20000px的理论示例屏幕,大约是4cm x 8cm或者其他任何东西。。你不希望你的页面在这件小事上乱七八糟,不管这个决议能否很好地解决它。我是说英语中的集体“你”。这是个问题
非常糟糕的英语,抱歉。注意:原来数据库不是很准确,它报告我的三星Galaxy S的屏幕尺寸完全不正确。问题是响应是基于像素的。。。现在制造商们正在获得1000像素的屏幕,尽管手机只有5英寸宽。。。在如此小的屏幕上,一个响应性网站会错误地推出众所周知的“2列”版本。@dsd实际上,响应性设计通常基于CSS像素,而这些像素与设备像素不同。供应商基本上已经为您做了计算,并为您提供了考虑物理设备大小的“像素”。例如,据报道,iPhone4的屏幕为320x480 CSS像素。阅读你的768启发性论点有意义。。。但我想知道这个基数什么时候会上升?1年,3年。。。但我还是喜欢它。