网站页面弹性设计详解

设计|详解|页面

要从固定的、基于像素的设计方法转到弹性的、相对的设计方法并不容易。但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲。

像素是计算机屏幕上的不可缩放的点,而一个 em 就是一个字大小的方块。由于字体大小的变化, em 代表用户喜欢的文字大小的相对单位。

采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少。可是如果采用弹性的设计方法,就可以充分利用电脑的显示器和浏览器。

也许你想你的网站以某种特定的方式显示,但是你的用户想看到的可能不一样。任何强加于用户的东西都不利于易用性,从而对网站的成功造成损害。

为了理解弹性设计,我们必须首先来看看一个似乎与此无关的问题 - 指定文字大小的几种方式。

弹性文本

显然文字是最容易实现的弹性设计的。能够设定喜欢的文字大小是用户最常见的要求,因此不可忽视。

亲和力指的并不只是关于盲人和屏幕阅读器。还有许多人虽然不是盲人,但是有视力障碍 - 你我变老时就会成为他们的一员。使网站变得更具亲和力的一个最简单的方法就是允许用户改变文字大小;拒绝提供这样的选择就剥夺了用户的主导权,很可能使用户无法舒适地阅读。

如果设计者使用像素为单位指定文字大小,大多数的用户将无法缩放文字,因为 Internet Explorer 改变文字大小的方式与别的浏览器不同。Mozilla 和 Opera 可以缩放已经设定像素大小的文字,而Windows 下的IE却不能。

em 存在的问题

Em 似乎是进行文字相对大小设定时的单位,浏览器默认的文字高度是16像素,对大多数设计者来说太大了,不合他们的口味。要使用 em,设计者一般将文字的初始大小设为小于 1em。

例如:

body { font-size: 0.8em; }
h1 { font-size: 2em; }
p { font-size: 1em; }

看起来似乎可行,但有一个问题 - 如果你在 IE 中将“文字大小”设为“较小”或“最小”,文字就会小得难以阅读。由于 IE 如此普及, em 似乎不是可行的选择。

Jeffrey Zeldman过去曾经对此表示质疑,他认为尽管有其不利之处,以像素指定文字大小还是比用 em 好。这个结论是根据 Owen Briggs 所作的深入研究得出的。 Owen Briggs 测试了264种不同的文字缩放方法并演示了 em 之类的相对单位行不通。许多设计人员现在都用像素为单位指定文字大小,不是出于精确控制网页外观的需要,而是似乎没有更为合理的其他选择。

如此看来,要么是难看的大字体,要么无法缩放,好像无法两全。别着急,接着读下去。

另一种“大字体”后备样式

在与无法缩放的像素所带来的亲和力问题的战斗中,许多作者在他们的网页上使用了一种后备样式表的技术,可通过网页上的一个链接进行切换。

这种方法固然不错,但是如果和相对文字大小的措施(比如Wired News所提到的)一起使用,效果会更好。不能指望用户熟悉你的特有界面,用户一般对浏览器的界面更为熟悉,如果他们想看大一点的字体,更倾向于用浏览器来达到而不是用你的界面。而且他们更期望这种方法在各个网站都管用,不想每访问一个网站都改变一次。,比如Wired News

CSS 关键词

Font-size 的关键词(xx-small, medium, x-large,等等)好像就是答案。在 IE 中,当用户选择“较大”或“最大”时文字会变大,选择“较小”或“最小”时文字会变小,一直到合适的大小。与其他的弹性设计方法不同,使用关键字的好处是当对文字进行缩放时,永远不会使文字实际像素大小低于某个值,所以无论用户如何选择文字大小,都应当有良好的可读性。

在 ALA 的其他地方对关键字有更详尽的解说,这种方法的最好的示例也许就是你正在阅读的这篇文章。(在最近一次的改版之前,ALA 使用了后备的“大字体”样式切换,一个样式表使用像素指定文字大小,另一个用的是基于关键字的相对大小方法。)

百分比使得 em 可行

Em 之所以可行是因为通过设定初始文字的百分比,可以很容易避免文字过小的问题。虽然其原理并非显而易见,但的确可行。当采用这种方案时,IE 文字大小各档设置之间的间隔就不会显得生硬,设计者可以精确设置初始文字大小,使得在“较小”和“最小”时仍然得到较好的可读性。这样有使 em 有了用武之地。(甚至于 Briggs 现在也更认同 em.)

例如:

body { font-size: 80%; }
h1 { font-size: 2em; }
p { font-size: 1em; }

不用关键字而采用 em 的好处是你可以用 em 来指定全部布局的尺寸,它可以随着文字的大小按比例缩放。

弹性布局

对设计者来说,比弹性字体更困难的是彻底的相对布局 - 如果用 em 来设定布局的尺寸事情就容易了。

布局具有弹性,使之随着用户改变文字大小时自动适应,这好像有些多余甚至毫无必要。但是既然你让文字可以伸缩,那么让包容文字的布局也随之伸缩也是顺理成章的事。

另外,如果用户选择了较大的字体,则周围的空间应当会随之按比例增加,保持了“设计者”选择的比例,使文章容易阅读。

这种方案的另一个好处是可以避免不希望的文字换行。如果一个窄的栏目宽度以像素来定义,当其中的文字变大时,可能会打乱整个布局。采用文字大小比例来指定栏目宽度就可避免这个问题。

关于该方案的一个例子请看 CSS Zen Garden 上的作品 Elastic Lawn

太宽了!

将网页的初始文字大小指定为 100% 以后,在 IE 的“中等”字体下,36em 的宽度应该是 576 个像素(作为参考,ALA 的宽度为600个像素),在“最大”的字体下,36em 应当增加到 768 个像素(Windows 下 IE 6 的测试结果)。如果再大一点,在 800 像素宽的屏幕、“最大”号字体下就可能会显得太宽了。

CSS 对这个问题的解决方案是 max-width 属性,它可以指定某个元素的最大宽度。不幸的是 Internet Explorer 不支持(不知有谁想过没有?)。

另一个解决方案就是采用流动式布局,也就是说根本不指定内容区域的宽度,让文字自然流动,充满屏幕宽度(HTML Dog采用了这种方案)。许多人不接受这种方案,因为在宽屏幕下的可读性不好,但对于移动设备这样的小屏幕非常合适。

如果你准备采用弹性布局方案,在指定边界或者位图之类的由像素构成的对象时,仍然要以像素为单位,这可能会和基于文字大小关系发生冲突;但这不应成为不采用弹性布局的理由。

使图形弹性化

用相对大小来设置位图的尺寸会导致灾难性的后果。对付这个问题可以这样做 - 维持图形原有的解析度不变,将它裁剪到合适的大小。

通过更换背景图片可以就可做到。这里是一个标题元素的例子,你也可以采用其他的图片替换技术:

h1 { font-size: 1em; width: 10em; height: 100px; text-indent: -1234em; background-image: url(whatever.jpg); }

或者(正如hebig.orgv-2.org所做的那样),你可以将图片包含在一个容器,比如一个有下面样式的 DIV 中:

div { width: 10em; overflow: hidden; }

本文中提到的许多弹性设计方法都可以在demonstration page 中看到。

 

时间: 2024-11-02 16:02:37

网站页面弹性设计详解的相关文章

网站页面弹性设计

原作: Patrick Griffiths 原文出自:A List Apart中文翻译:onestab [2004.01.25] 要从固定的.基于像素的设计方法转到弹性的.相对的设计方法并不容易.但是如果恰当利用,就可以成为增强亲和力和易用性的一个自然选择,同时又无须做出设计上的牺牲. 像素是计算机屏幕上的不可缩放的点,而一个 em 就是一个字大小的方块.由于字体大小的变化, em 代表用户喜欢的文字大小的相对单位. 采用印刷式的固定设计方案或许要容易些,因为如果尺寸不变,则考虑的东西就相对较少

ASP计数器设计详解-1

计数器|设计|详解 Active Server Pager(动态服务器主页,简称ASP),通过读写服务器的文件,结合script语言(VBscript或Jscript)和html码可以方便地实现页面计数器功能.现流行的ASP教材和网络上的ASP教程都谈到过ASP计数器的设计问题,但是都过于简单,比如没有提到怎样实现计数器脚本和主页面的分离以及图象计数器的实现等.下面就作者为单位制作NT web站点的经验,举实例循序渐进谈谈关于ASP计数器的设计,希望能给ASP的初学者和对ASP WEB编程有兴趣

ASP计数器设计详解-2

计数器|设计|详解 (三)与页面分离的图象计数器 人们的追求是永无止境的,也许你需要一个更有个性的图形数字计数器,而不是简单的文本数字计数器.没问题,现在我们就来看看用ASP是怎样来实现图形计数器功能的.要实现图形计数器,关键点在于如何实现把计数器文件中的数据值转变为对应的图象表示.因为十进制数有0,1,2,3,4,5,6,7,8,9共十个不同的数数字,我们需要有十个对应的图象,且图象的文件名字要与显示的数字对应起来,比如0对应的数字图象的文件名字就是0.gif,1对应的就是1.gif,...(

ASP计数器设计详解(转载)

计数器|设计|详解 Active Server Pager(动态服务器主页,简称ASP),通过读写服务器的文件,结合script语言(VBscript或Jscript)和html码可以方便地实现页面计数器功能.现流行的ASP教材和网络上的ASP教程都谈到过ASP计数器的设计问题,但是都过于简单,比如没有提到怎样实现计数器脚本和主页面的分离以及图象计数器的实现等.下面就作者为单位制作NT web站点的经验,举实例循序渐进谈谈关于ASP计数器的设计,希望能给ASP的初学者和对ASP WEB编程有兴趣

ASP计数器设计详解

计数器|设计|详解 Active Server Pager(动态服务器主页,简称ASP),通过读写服务器的文件,结合script语言(VBscript或Jscript)和html码可以方便地实现页面计数器功能.现流行的ASP教材和网络上的ASP教程都谈到过ASP计数器的设计问题,但是都过于简单,比如没有提到怎样实现计数器脚本和主页面的分离以及图象计数器的实现等.下面就作者为单位制作NT web站点的经验,举实例循序渐进谈谈关于ASP计数器的设计,希望能给ASP的初学者和对ASP WEB编程有兴趣

Dubbo架构设计详解

[本文转载于Dubbo架构设计详解] Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色.关于注册中心.协议支持.服务监控等内容,详见后面描述. 总体架构 Dubbo的总体架构,如图所示: Dubbo框架设计

【转】Dubbo架构设计详解

本文转自:Dubbo架构设计详解,原作者是:时延军 Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色.关于注册中心.协议支持.服务监控等内容,详见后面描述. 总体架构 Dubbo的总体架构,如图所示: Du

推送技术实现动态更新页面的内容详解

动态|详解|页面 一.什么是动态内容 大多数热门Web网站都从在线广告业务获利.Web页面中的广告空间是有限的,为了让广告投资物有所值,广告客户不仅必须在很小的广告空间内塞入大量的信息,而且还要保证广告能够吸引用户的注意力.在当前的大多数网站上,放入Web页面的横幅广告一般由服务器在构造页面的同时生成,我们无法把新的广告动态地插入到已经发送出去的页面. 如果要显示新的广告,唯一的办法就是重新刷新页面.我们可以用编程的方法刷新页面,例如: 使用浏览器窗口对象的setTimeOut函数定期地刷新页面

ASP图形计数器设计详解

计数器|设计|图形|详解 这里介绍一种不用CGI而设计出的漂亮的图形计数器.这里分为三部分:1,建立图形文件. 2,建立数据库. 3,编写代码.1,建立图形文件. 首先,用做图软件制作10个图形,用于显示计数器的十个数字:1,2,3,4,5,6,7,8,9,0.如果你有美术才能,还能做出更好的图形.2,建立数据库. 用建立一个数据库,名字为.数据库包含一个表,名字为,结构为:整数,有一条记录,初始值为0.用于存放上一次访问本页面的次数.3,编写代码.------number.asp-------