在Web开发中处理多个屏幕分辨率和方面比的策略

当天早些时候,800 x 600是屏幕分辨率devise – 也许是640 x 480.然后沿着1024 x 768等等,等等,等等。

但后来情况变得更糟:现在我们不仅有不同的分辨率,而且还有不同的宽高比。

人们使用什么策略来适应今天不断扩大的屏幕尺寸和纵横比的范围?

(顺便说一句 – 我只是在想笔记本电脑/台式机的硬件,当然也有智能手机和平板电脑的考虑)。

我知道这将是一个有点争议的意见,但我会说,无论如何:

不要devise多种屏幕尺寸或宽高比。 当然也有一些例外:像webmail客户端这样的大型web应用程序肯定可以处理更多的屏幕空间,而且可能足够灵活以适应大尺寸的屏幕尺寸。 所述网站的移动版本具有更灵活的devise以适应移动屏幕尺寸的令人难以置信的频谱,对于移动量高的站点也可以有帮助。 然而,如果你坚持所谓的“桌面networking”,那么我认为我们可以说95%的时间里有比屏幕尺寸,分辨率和纵横比更重要的事情要关心。

首先,让我们解决一个简单的问题。 我不是很明白为什么你们会为了宽高比而关心这么多,我们不是那么在意“废话不多”的废话,我们呢? networking是一个垂直媒体 – 滚动将永远在网站上的地方。 拥有神奇的600像素线以上的东西只是愚蠢的。

接下来,屏幕分辨率/大小:我再次发现难以防守。

大屏幕的用户通常不会最大化他们的浏览器窗口,因为他们发现大多数网站不利用他们。 在网页调整到用户的同时,用户也调整到网页。 虽然你可以说这是一个鸡和鸡蛋的问题,事实仍然是, 网站通常是为最低的共同点而devise的。 我并不是捍卫这一立场,而是指出当前行业的主stream趋势。

有些东西根本不适用于分辨率太高或太低的情况。 例如,有一小段宽度可以让人们在屏幕上舒适地阅读。 任何更长的时间和眼睛到下一行的移动量都会很烦人。 太低,文字会显得狭窄。 networking被devise成与解决scheme无关的事实意味着,对于那些希望构buildstream畅布局的人来说,矛盾的是没有多less规定。 当然, min-heightmax-height会有所帮助,但范围越宽,您将面临的困难越多。 像孤儿元素,stream离失所的图像,用完的背景等等,对于用现代技术build立起来的真正灵活的网站是不可避免的。

所以我的观点是,处理多种解决scheme的最简单的方法就是完全忽略它 – 用今天的技术来说,没有多lessselect – 并且devise出最低的共同标准。

注意高DPI设置

我认为当今前端Web开发面临的最大的问题之一是testing高DPI系统。 每个人都学会了在不同的浏览器上进行testing和testing,但是devise人员/开发人员还没有抓住不同的DPI设置进行testing。

高(甚至低),DPI设置在字体缩放但是图像不是(可能发生),可能导致图像看起来模糊/模糊,并且绝对定位的对象可能不会出现在期望的位置(对CSS菜单来说是毁灭性的)。如果没有其他的东西,在高DPItesting你的图像,并根据需要重新渲染它们。

直到最近,随着Windows 7的发布以及人们购买高分辨率显示器的电脑,这个问题才真正成为问题。 首先,Windows 7使用96DPI作为默认设置(与使用72DPI作为标准的其他计算机世界不同,此外,Windows 7将自动调整DPI设置,并且我看到人们的DPI为正常的150% (Windows中96 DPI)。

这里有一个很好的链接,更详细地讨论这个问题: http : //webkit.org/blog/55/high-dpi-web-sites/

一个伟大的跨浏览器网站devise与networking标准是目标,但不要忘记DPItesting。

那么,为了不让答案保持不久,这就是我所做的。

(A)始终从最可能使用的比率/分辨率开始

如果您的平均乔将在现代笔记本电脑或桌面计算机上,他可能有至less1024x768(参考: w3schools elykinnovation ),这给你一个可用的960px宽度(你可能想要检查960grid系统 – 有一个地狱很多新框架,因为我第一次写这个)。 如果用户更可能从移动设备或平板电脑入手,那么首先要了解他们。 如果是50%-50%,通常从小开始然后长大,比如说, 岩石锤子或基础

(B)布局:stream畅与否?

如果您的网站可以从更大的宽度中受益,请从此分辨率开始selectstream畅的devise。 要小心人类的眼睛不喜欢长时间阅读文本,所以不要滥用stream体devise; 经常坚持960px的大利润是可以接受的。 如果你真的有更多的空间,你可能想添加(javascript)一些额外的菜单。 但devise你的网站尽可能无JS的工作。

(三)其他决议

最后是时候检查一下,使用最less的分辨率仍然可以接受。

(四)其他设备,比例和东西

对于不同的比例,没有太多的select。 这通常意味着您正在使用手机,iPad,AAA或类似设备。

我的build议是…专门devise这些设备。

在编写你的HTML时,要记住你将需要的东西,并记住通过语义来做HTML,而不是devise。 如果可以,请使用正确的HTML5语义标签。 避免使用<bold>或类似的标签,并正确使用标签和类,而不是CSS样式。

使用框架!

但是,对于不同的设备,你仍然可以做出一些不同的devise。 你不需要做任何事情/在相同的devise/。

有多种方式可以根据客户端来服务不同的CSS; 你能行的:

  1. 服务器端,检查来自客户端的HTTP标题中的浏览器,无论是与您的Web服务器或dynamic脚本环境 – 无论是python / Django,PHP,或其他任何
  2. JavaScript(你可以很容易地获得窗口大小)
  3. HTML – 特别是与一些特定的设备,如iPhone

通过遵循以下简单的规则,您可以轻松地为小型(例如移动)设备制作通用devise:1.stream体布局能够适应非常小的宽度2.紧凑的页眉/页脚不会浪费太多的空间3.很less,清晰的内容每'页'4.避免:过度的影响,因为他们不会在触摸设备上工作!

如果你想进一步,你必须检查个别设备的定制; 一个例子是iphone的视口,请参阅apple ref库 。

这只是为了让你开始。 经验和具体的需求将推动其余的!

您的网站无法完美适用于每个显示器。 即使你在一天中有足够的时间(或者应该说是一年/十年)来devise每一个可能的显示器,每当新的设备出现时,你都必须这样做。

在我的开发中,我仍然虔诚地尝试避免水平滚动,这对于浮动div /可变宽度div并不太难。 但除此之外,我们确实是在“有一个应用程序”的十字路口,在那里你需要一个特殊devise的显示器。

我使用的一个策略是减less对单个显示器的依赖 – 客户可能不需要看到整个网页做他们来做的事情。 您可以将functionparsing到更小/更简单的网页,以便在不同大小的设备上进行更好的扩展。

在工作中,我有更多的“权力”,因为它可以 – 我可以开发内部networking应用程序,“devise运行在一些特定的浏览器,某些特定的显示设置等 – 使用其他configuration你自己的风险“。 这只有在经理们同意花费额外一周的时间(甚至更多的升级/未来的维护)才能安抚校园另一端拒绝使用IE的素食者真的不值得花费。 在这种情况下,我们需要另一个Timmy,而不是一个更灵活的networking应用程序,可以在他最喜欢的非IE浏览器上看起来不错。

这是一个常见但复杂的问题,不幸的是没有一个最好的解决scheme。 这一切都取决于你有什么样的内容。 您可以使用stream体布局,或针对不同的分辨率devise不同的网站(请参阅http://www.maxdesign.com.au/articles/resolution/ )。 对于一个stream体devise的例子,请查看–http://hicksdesign.co.uk/journal/finally-a-fluid-hicksdesign

我认为响应式网页devise就是您的问题的答案。 看看这些例子和技术… 响应式网页devise