响应式Web设计与用户代理嗅探


13

CSS3 media查询功能在开发可适应许多不同屏幕尺寸和设备的网站方面带来了许多有趣的可能性。

但是,实际上,我开始意识到CSS3 media查询功能以及整个“响应式Web设计”运动可能无法实现其承诺。

我看到的问题是,归根结底,Web开发人员最关心的是他们的用户是通过台式机,平板电脑还是移动设备查看内容。但是CSS3只提供一种检测屏幕分辨率的方法。从理论上讲,检测屏幕分辨率似乎是针对各种不同设备进行调整的好方法。但是实际上

假设我们有一个简单的Javascript函数,它仅输出屏幕宽度:

function foo()
{
   alert(screen.width);
}

在我的Blackberry Touch上,输出:

768

在我的三星Galaxy上,输出:

800

所以...在这一点上,主流智能手机的分辨率已经非常接近台式机级别的分辨率。如果只需要屏幕分辨率,那么检测用户是否正在通过智能手机,平板电脑或台式机查看您的网站的能力似乎变得越来越困难。

这使我质疑基于媒体查询的整个CSS3“响应式Web设计”运动背后的全部智慧。似乎media查询功能更适合于适应桌面屏幕上调整大小的浏览器窗口,而不是各种移动设备。

用于检测移动设备或平板设备的另一种可能的技术是通过检查ontouchstart事件是否受支持来使用功能检测。但是,随着许多桌面屏幕开始支持触摸,即使这样也变得越来越不可靠。

问题:因此,作为一名Web开发人员,如果我不能依靠RWD或功能检测,用户代理嗅探(一如既往地不可靠)是否真的是检测移动设备的最佳选择?


如果响应式Web设计的目标是(如Wikipedia 所言)“以最小的调整大小,平移和滚动来轻松阅读和导航”,那么您为什么要关心它是台式机还是移动设备?重要的是设备的屏幕分辨率和屏幕尺寸,而不是设备的类型。没有?
鲁阿赫

我想我想说的是“屏幕分辨率”与实际屏幕尺寸(例如,屏幕宽度的厘米/英寸)之间的联系正在变得越来越瞬态。
2013年

我认为您应该对设备宽度的媒体查询执行某些操作,因为宽度/分辨率变得越来越不准确,尤其是在各种显示器(例如Apple的“ Retina”设备)的像素密度方面。因此,如果设备宽度在移动设备的常规宽度之内,则您将显示不同的布局。对于平板电脑/台式机用户,我只显示相同的布局,即1024px宽。
zuallauz

@zuallauz,不是device-width很糟糕吗?
Channel72

为什么不按em单位走呢?这样,内容就会根据可用的文本空间而变化...

Answers:


12

不必再为特定设备担心。

如果您只想通过屏幕分辨率来检测用户是通过智能手机,平板电脑还是台式机查看您的网站,似乎变得越来越困难

在正在调整,以您的设计时,越来越难以通过屏幕分辨率来检测,随着越来越多的设备进入市场,它只会变得更难,但媒体查询的目的不是为了检测设备types.What媒体查询都不错在当前尺寸下使用不再令人满意。如果站点开始以550px的宽度瓦解,那么是否有具有这些尺寸的设备都没有关系:您可以在此处设置断点。

它与特征检测相同。如果设备支持触摸,那么,如果它是移动设备或将来的壁挂式显示器,那有什么关系呢?无论哪种方式,触摸增强功能都可能有用。

如您所说,用户代理嗅探是完全不可靠的。如果我也确实愿意,可以将用户代理字符串更改为莎士比亚引号。那么,您的网站将如何决定我的浏览器?

用户代理还需要大量工作来处理所有可能性。您在Android上是否有一款适用于Firefox的软件?在iOS上使用Chrome?Froyo上的海豚?WiiU浏览器?我的旧LG功能手机上的浏览器极为有限?天猫?IE 13?链接?IceWeasel?黑莓剧本的浏览器?您如何分辨平板电脑上运行的Opera和手机上运行的歌剧之间的区别?

此列表只能随着时间的推移而增长。


嗯,一栏式布局通常很适合智能手机。对于平板电脑,您可以选择2列甚至3列的布局,而对于台式机,通常3列即可。无论如何,理想的显示列数通常取决于人眼生物学功能,而不是屏幕分辨率。我的观点是,如果屏幕分辨率与一般人能够轻松地以视觉方式扫描您的站点之间的可能性之间存在更紧密的关联,那将是很好的。至少,CSS3似乎假定了这种相关性。
2013年

1
实际上应该有。CSS像素应该使用角度和距离而不是物理像素来定义。但是,许多制造商在其默认设置中都忽略了这一点。
Mike Gossmann

@ Channel72 1列布局很适合任何窄屏幕宽度。屏幕宽度是狭窄的,因为它是智能手机浏览器,还是在巨型显示器上重新调整大小的窗口中的桌面浏览器,都没有关系。响应式网页设计尝试适当地适应所有情况,而与用户代理无关。
埃里克·金

如果您要为移动用户提供完全不同的视图该怎么办。如何防止移动用户下载桌面用户所需的所有不相关数据。用户代理是必经之路...
约翰

1

用户代理也说谎。如果您在附近搜索Google,则会发现用户代理与现实的列表。所以这是一个问题。有些人求助于dpi设置以确定它是哪种设备。


3
如果有人需要在用户代理数据中提供虚假数据,他将获得该网站的默认版本...
John
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.