windows:Visuals/layout

出自UXGuide.net

跳转到:导航, 搜索

布局
Layout

目录


“布局”是指窗口或页面内各内容的尺寸、间距及位置。有效的布局对于帮助用户快速找到他们想要的东西至关重要,并可产生具有吸引力的视觉外观。有效的布局可以使有的设计用户立即就可以理解,而有的设计却使用户觉得困惑而不知所措。

注:窗口管理相关的设计规范请参考各自相应的章节。特定控件的推荐尺寸与间距则请参考相应的设计规范章节。


设计理念

视觉层次

当窗口或页面的外观能够表明各个元素之间的关系和重要性时,即可认为是具有清晰的视觉层次。如果缺少视觉层次,用户就得靠他们自己来分辨它们之间的关系与重要性。

视觉层次是通过巧妙结合下列属性来实现的:

另外,有效的布局还具有下列特性:

虽然尺寸、间距和位置等概念非常简单,但在布局中正确混合使用这些属性却不是一件容易的事情。

在 Microsoft® Windows® 中,布局是用对话框单位(DLU)这样的设备无关度量单位和相对像素来描述的。关于布局度量单位、测量及换算的更多信息,请参考布局度量单位


阅读设计模型

用户是通过内容的外观和组织形式来选择要阅读的内容的。要创建有效的布局,你需要理解什么是用户经常阅读的以及为什么如此。

你可以在决定如何布局时参考阅读设计模型:

Aa511279_layout02(en-us,MSDN_10).png
该图所示的是沉浸式阅读模式。
相反,浏览的目标则是定位。一般的浏览路径看起来像是:
Aa511279_layout03(en-us,MSDN_10).png
该图所示的是浏览模式。
Aa511279_layout04(en-us,MSDN_10).png
如果文本排列在页面的左侧,则用户会先浏览左侧。
Aa511279_layout07(en-us,MSDN_10).png
用户在浏览时通常会跳过大块文本及导航部分。
Aa511279_layout08(en-us,MSDN_10).png
一切都等价时,用户会以 1、2、4、3 的顺序阅读这些数字。
Aa511279_layout09(en-us,MSDN_10).png
用户关注于主要的交互式控件及显著的主标题说明,其他东西只有在他们需要的时候才会去看。
Aa511279_layout10(en-us,MSDN_10).png
用户会在他们认为结束的时候停止扫视。

当然,常规模式也存在例外。眼动仪实验指出,真实用户的行为很没有规律。此模式的目的在于帮助你做出好的决定,而不是精确地描述用户的行为。但既然你已经阅读了该列表,希望你也能辩别出许多你自己的阅读模式。


为扫视进行设计

用户并不阅读,他们只是扫视——因此你应当为视扫来设计用户界面。不要假设用户会像书写那样从左至右、从上到下地阅读文本,事实上他们会看那些吸引他们注意的 UI 元素。

要为扫视进行设计:

尽可能使用这个模式而不要进行改变,但有时你可能需要强调或弱化某些 UI 元素。

要强调主要的 UI 元素:

Aa511279_layout11(en-us,MSDN_10).png


该示例显示了强调主要 UI 元素的多种方式。

要弱化次要的 UI 元素:

Aa511279_layout12(en-us,MSDN_10).png


该示例显示了多种弱化次要 UI 元素的方式。


有效利用屏幕空间

要有效利用屏幕空间,需要对多种因素进行平衡:占用太多空间使窗口显得臃肿且浪费,以及基于费茨法则来说甚至会难以使用。

错误:

Aa511279_layout13(en-us,MSDN_10).png


在这个示例中,窗口相对于其内容来说太大了。

另一方面,使用太少空间会使窗口显得狭小、不适、有压迫感,而且难以使用——如果需要滚动或其他操作才能使用的话。

错误:

Aa511279_layout14(en-us,MSDN_10).png


在这个示例中,窗口相对于其内容来说太小了。

虽然关键 UI 必须适合最小支持的屏幕分辨率,但不要认为有效利用屏幕空间就意味着窗口应该越小越好——事实上不是这样。高效的布局也顾及空白,并不是说把所有东西都塞到尽可能小的空间中去。现代显示器拥有足够的屏幕空间,应当尽可能有效地加以利用。因此,宁可占用过多屏幕空间,也不要使用太少。这么做可以使你的窗口感到更加轻便好用。

下列情况可以表明某布局确实有效地利用了屏幕空间:

选择恰好能够很好地适合其用途的窗口尺寸。(如果窗口是可缩放的,该条则应用于其默认尺寸。)被截断的数据或滚动条与大量可用屏幕空间的情况同时存在则是布局不当的明显标志。


控件尺寸

充分利用屏幕空间的第一步往往是决定各种 UI 元素的合适尺寸。参见控件尺寸表及各控件设计规范中的推荐尺寸部分。

费茨法则指出,目标越小,鼠标指向其所需的时间就越长。因此,对于那些使用 Windows Tablet 及触摸技术的计算机来说,这里所谓的“鼠标”事实上可能是手写笔或是用户的手指,因此你在为小控件确定尺寸的时候需要考虑其他输入设备。16x16 像素对于任何输入设备来说都是合适的最小控件尺寸。相反,15x9 像素的标准微调控件按钮对于手写笔来说则太小了一些。


间距

留出充足(但不过分)的间距会使布局看起来更加舒服并易于理解。有效的空间并不只是未被使用的空间——它扮演了非常重要的角色,使用户更容易进行扫视、且给你的设计增添了视觉吸引力。关于设计规范,参见间距表

再次说明,对于使用 Windows Tablet 和触摸技术的计算机来说,“鼠标”事实上可能是手写笔或是用户的手指。当使用手写笔或手指作为定点设备时,定位会较为困难,以导致用户会点触到目标位置之外。当交互控件彼此靠得很近但并没有直接接触的话,用户可能会点击在控件之间的非交互区域。由于在非交互区域内点击不会产生任何结果或视觉反馈,用户往往无法确定哪里出了问题。如果小控件靠得过近,用户则需要非常精确地点触以避免误按其他对象。要解决这类问题,交互控件的目标区域要么彼此相接,要么之间留有至少 3 DLU(5 像素)。

具有良好间距的布局是指:


可缩放窗口

可缩放窗口也是有效使用屏幕空间的一个因素。虽然这对于那些由固定内容组成的窗口来说没有什么帮助,但包含可缩放内容的窗口应当也是可缩放的。显然,用户缩放窗口的原因是可以利用额外的屏幕空间,因此窗口内容也应当相应地扩展,为需要的 UI 元素提供更多空间。可缩放窗口最适用于那些包含动态内容、文档、图像、列表及树的窗口。

Aa511279_layout17(en-us,MSDN_10).png


在这个示例中,缩放窗口的同时会缩放列表视图控件。

这也意味着窗口可能被拉得太宽。例如,许多控制面板页在宽度超过 600 相对像素时会显得笨拙。在这种情况下,最好不要将内容区域缩放到超过最大宽度,或者是随着窗口的扩大而改变内容的原点位置。相反,应当保持宽度的最大值并固定左上角的原点位置。

当行宽不断增加时,文本会变得难以阅读。对于文本文档来说,考虑每行不超过 80 个字符以易于阅读。(字符包括字母、标点和空格。)

错误:

Aa511279_layout18(en-us,MSDN_10).png


在这个示例中,文本太宽难以阅读。

最后,可缩放窗口在缩小时也需要有效使用屏幕空间,比如通过缩小可缩放的内容或是移除那些即使不存在也可以有效使用的 UI 元素。有时,窗口或其 UI 元素可能会太小而无法使用,则应指定最小尺寸或者有些元素应当完全移去。

Aa511279_layout19a(en-us,MSDN_10).png

Aa511279_layout19b(en-us,MSDN_10).png


在这个示例中,该面板具有最小尺寸。

对于有些程序来说,更好的方法是使用完全不同的呈现方式以使其内容在较小尺寸下仍保持可用。

Aa511279_layout20(en-us,MSDN_10).png


在这个示例中,Windows Media Player® 在其窗口太小,无法使用其标准模式时,进行了改变。


焦点

当某种布局中存在一个明显会被最先看到的地方时即称为具有“焦点(focus)”。焦点非常重要,它告诉用户从何处开始扫视你的窗口或页面。如果没有清晰的焦点,用户的目光则会漫无目的地游荡。焦点应当位于那些用户需要快速找到并理解的重要内容处,且应当在视觉上予以强调。左上角是大多数窗口的自然焦点。

应当只存在一个焦点。在真实生活中,人眼一次只能聚焦在一件物体上,用户无法同时聚焦至多个位置。

要使某个 UI 元素成为焦点,可通过下列方式进行视觉加强:

考虑一下 Windows 搜索。Windows 搜索的焦点应当在搜索框上,因为这是任务的起点。然而,为了与标准搜索框的位置保持一致,它被放在了右上角。虽然搜索框具有输入焦点,但是鉴于其在扫视路径上的位置,单单这样线索是不够的。

为了解决这个问题,窗口上方中部用一个显著的说明文字将用户引导至正确的位置。

可以接受:

Aa511279_layout22(en-us,MSDN_10).png


在这个示例中,窗口上方中部的显著说明文字将用户引导至搜索框。

如果没有说明文字,该窗口将没有明显的焦点。

错误:

Aa511279_layout23(en-us,MSDN_10).png


这个示例没有明显的焦点。用户不知道应当从何处开始。

如果你对某个 UI 元素进行了视觉加强,应当确保这种注意力是合适的。在之前那则错误的 Windows 搜索示示例中,高亮的 All 按钮位于左上角且是最为醒目的,然而它却并不是所期望的焦点。用户可能会停在这个按钮处,试图弄清应该怎么做。

错误:

Aa511279_layout24(en-us,MSDN_10).png


失去了显著的说明作为焦点,高亮的 All 按钮意外地成了焦点。


流程

当用户能够顺着界面上清晰的路径而流畅自然地按合适的顺序找到他们想要的 UI 元素时,该布局即称为具有好的“流程(flow)”。一旦用户认出了焦点,他们就需要确定如何完成任务。UI 元素的位置传达了它们之间的关系,且应当反映出完成任务的步骤。通常来说,这意味着任务的各个步骤应当自然地从左至右、从上至下(在西方文化中)排列。

具有好的流程的布局应满足下列条件:

错误:
Aa511279_layout25(en-us,MSDN_10).png
在这个示例中,用户不知道下一步该做什么。任务流程中存在出人意料的跳转和停止。
正确:
Aa511279_layout26(en-us,MSDN_10).png
在这个示例中,UI 元素的呈现方式反映了完成任务所需的步骤。


分组

当那些在逻辑上相关的 UI 元素具有清晰地视觉联系时,该布局即可称为具有好的“分组(grouping)”。分组非常重要,因为这使得用户能够更加容易地理解并专注于一组相关而非单独的条目。分组可使布局显得更加简洁、易于理解。

你可以以下列方式进行分组(按分组程度由低到高排列):

Aa511279_layout27(en-us,MSDN_10).png
在这个示例中,仅仅使用布局显示控件之间的关系。
Aa511279_layout28(en-us,MSDN_10).png
在这个示例中,带标签的分隔符用于显示控件之间的关系。
Aa511279_layout29(en-us,MSDN_10).png
在这个示例中,边界聚合器用于强调控件之间的关系,使其看起来像是单个控件,而不是八个。
Aa511279_layout30(en-us,MSDN_10).png
在这个示例中,分组框用于圈出并标注一组相关的控件。
Aa511279_layout31(en-us,MSDN_10).png
在这个示例中,控制面板任务窗格用于对相关的任务和控制面板项进行分组。

要避免视觉混乱,能够达到效果的最轻量级的分组方式即是最好的选择。更多信息,参见分组框选项卡分隔符背景

无论使用何种分组方式,你都可以用缩进的方式在分组内部展示控件的关系。互相平行的控件应当垂直对齐,相互依赖的控件则应当缩进 12 DLU 或 18 像素。

Aa511279_layout32(en-us,MSDN_10).png


有依赖关系的控件缩进了 12 DLU 或 18 像素,在设计上,这是复选框及单选按钮到其标签之间的距离。

分组良好的布局满足以下条件:


对齐

对齐是 UI 元素按照基准而排列的方式。对齐非常重要,因为这使内容更加易于扫视,并会降低用户所感受到的视觉复杂度。

当决定如何对齐时应当考虑下列目标:


水平对齐

左对齐

由于从左至右的阅读顺序,使得左对齐适用于绝大部分内容。左对齐使得列数据易于垂直扫视。


右对齐

右对齐最适用于数值数据,尤其是成列的数值数据。右对齐也适用于提交按钮以及与窗口右边缘对齐的控件。

Aa511279_layout37(en-us,MSDN_10).png


在这个示例中,高级搜索渐进展开控件是向右对齐的,因为它是对着窗口右边侧而放置的。


居中对齐

居中对齐最适用于那些左对齐和右对齐都不合适或显得不平衡的情况。

Aa511279_layout38(en-us,MSDN_10).png


在这个示例中,媒体播放器控件是居中的,以保持外观平衡。

不要仅仅为了填充空间而将窗口内容居中。

错误:

Aa511279_layout40(en-us,MSDN_10).png


在这个示例中,内容为了填充空间而错误地在可缩放窗口中居中。


垂直居中

元素顶端

由于自上而下的阅读顺序,使得顶端对齐适用于绝大部分内容。顶端对齐使得 UI 元素易于水平扫视。


文本基线

当控件与文本垂直对齐时,应当按照文本基线对齐以保持水平阅读流畅。

正确:

Aa511279_layout41(en-us,MSDN_10).png


错误:

Aa511279_layout42(en-us,MSDN_10).png


在正确的示例中,控件和其标签是按照各自的文本基线垂直对齐的。

对齐良好的布局应当满足下列条件:


标签对齐

常规对齐规则适用于控件标签,但这也是值得特别注意的常见问题。标签对齐包含以下目的:

总体目标在于当寻找用户可能需要的内容时减少必须的视线移动,但控件的特性以及用户需要的内容则取决于上下文环境。

以下是四种常见的标签摆放和对齐样式,以及各自的特点:


标签在控件上方左对齐

该样式最易于本地化,因为该布局不依赖于标签的长度,但这是在垂直方向最占空间的样式。

Aa511279_layout48(en-us,MSDN_10).png


该样式在垂直方向最占空间但易于本地化。适用于标注绝大部分交互控件。

适用情形:


标签在控件左侧左对齐

该样式是纵向扫视时最为方便的,且当标签长度不一时也能够适用,但在将标签与控件关联起来方面较为困难。如果需要,该样式也可使用多行标签。

Aa511279_layout48a(en-us,MSDN_10).png


该样式很好用。不过,这里的两列看上去像是四列——数据看起来更加复杂。

适用情形:


标签在控件左侧左对齐,控件的左侧错开排列

该样式使得在纵向扫视标签以及横时同时扫视标签和控件时较为方便,而且空间利用率很高,但纵向扫视控件较为困难。控件右侧对齐以充分利用空间。

Aa511279_layout49(en-us,MSDN_10).png


该样式布局紧凑,易于阅读,但对控件的纵向扫视较为困难。

适用情形:


标签在控件左侧右对齐

该样式是最易于横向阅读并将标签与其控件联系在一起的,但是在纵向扫视标签时较为困难且当标签长度差距很大时不太适用。

Aa511279_layout49a(en-us,MSDN_10).png


该样式易于阅读以及纵向扫视,但扫视标签而较为困难。

适用情形:

然而,在决定使用上述任一样式之前,还应当考虑下列两个因素:


平衡

当窗口或页面的内容在整个界面上分布均匀时,即可称其为“平衡”。如果界面实际的复杂度与看起来相一致的话,平衡的布局则不会倒向一边。

最常见的问题是窗口或页面的左侧包含太多内容。你可以通过下列方法来取得平衡:

Aa511279_layout50(en-us,MSDN_10).png


这个平衡良好的向导页布局通过在左侧比右侧留有更多的边距来取得平衡。

如果上述方法无法取得平衡,考虑减少窗口或页面的宽度以更好地适应其内容。

对于可缩放界面来说,不要仅仅为了取得平衡而将内容居中。相反,应当将其固定在左上角,定义最大界面区域,并在可用空间内对内容进行平衡。


网格

网格是不可见的底层对齐系统。网格可以是对称的,但非对称网格也同样适用。当用于单个窗口或页面时,网格有助于在界面上组织内容。当重用时,网格可以在各个界面之间建立统一的布局。

网格线的数量会影响视觉复杂程度。网格线数量较少的布局比网格线数量较多的布局显得简单。

看起来复杂:

Aa511279_layout56(en-us,MSDN_10).png


看起来简单:

Aa511279_layout57(en-us,MSDN_10).png


不必要的网格线增加了视觉复杂度。

一个有效使用网格的布局应当满足下列情况:


视觉简洁

视觉简洁(visual simplicity)是指,在感觉上某种布局的复杂度不比它实际需要的更高。

视觉简洁的布局应当满足下列情况:

作为一条通用法则,如果某个布局元素可以被去掉而不影响 UI 的有效性,则应当将其去除。


设计规范

屏幕分辨率及 DPI


窗口尺寸

Aa511279_layout61(en-us,MSDN_10).png
在这个示例中,Windows Media Player® 在因窗口太小而标准形式不再适用时,改变了它的形式。


控件尺寸

Aa511279_layout62(en-us,MSDN_10).png
在这个示例中,下拉列表的尺寸进行了调整以消除滚动条。
Aa511279_layout64(en-us,MSDN_10).png
在这个示例中,统一使用了一种列表框和命令按钮尺寸。
错误:
Aa511279_layout67(en-us,MSDN_10).png
在这个示例中,对控件文本进行了不必要的截断。


控件间距


位置


焦点


对齐


无障碍访问特性

错误:
Aa511279_layout71(en-us,MSDN_10).png
在这个示例中,文本框错误地放置在复选框的标签中。

更多设计规范,参见<a href="../../interaction/accessibility.aspx">无障碍访问(辅助特性)</a>。


推荐尺寸与间距

控件尺寸

下表列出了对于常见 UI 元素(在 96 DPI 下 9 pt 的 Segoe UI 字体)的推荐尺寸(宽 x 高,如果只有一个值则为高)。对于要进行本地化的文本(不包括数字),其宽度应当在基于英语中最长项的宽度之上再加 30% 以用于本地化(对于较短的文本来说,最多 200%)。

控件 对话框单位 相对像素
Aa511279_checkboxes(en-us,MSDN_10).png 复选框 10 17
Aa511279_comboboxes(en-us,MSDN_10).png 组合框 最长项的宽度 + 30% x 14 最长项的宽度 + 30% x 23
Aa511279_commandbuttons(en-us,MSDN_10).png 命令按钮 50 x 14 75 x 23
Aa511279_commandlinks(en-us,MSDN_10).png 命令链接 25(单行)或 35(两行) 41(单行)或 58(两行)
Aa511279_dropdownlists(en-us,MSDN_10).png 下拉列表 最长有效数据宽度 + 30% x 14 最长项的宽度 + 30% x 23
Aa511279_listboxes(en-us,MSDN_10).png 列表框 最长项的宽度 + 30% x 取项目条数整数(最少 3 项)
Aa511279_listviews(en-us,MSDN_10).png 列表视图 避免截断数据的各列总宽 x 取项目条数整数
Aa511279_progressbars(en-us,MSDN_10).png 进度条 107 或 237 x 9 160 或 355 x 15
Aa511279_radiobuttons(en-us,MSDN_10).png 单选按钮 10 17
Aa511279_sliders(en-us,MSDN_10).png 滑块 15 24
Aa511279_statictext(en-us,MSDN_10).png 文本(静态) 8 13
Aa511279_textboxes(en-us,MSDN_10).png 文本框 最长或预期输入值的宽度 + 30% x 14(单行)+ 每增加一行加 10 最长或预期输入值的宽度 + 30% x 23(单行)+ 每增加一行加 16
Aa511279_treeviews(en-us,MSDN_10).png 树形视图 最长项宽度 + 30% x 取项目条数整数(最少 5 项)

间距

下表列出了常见 UI 元素(在 96 DPI 下 9 pt 的 Segoe UI 字体)之间的推荐间距。

元素 对话框单位 相对像素
Aa511279_corner-spacing(en-us,MSDN_10).jpg 对话框边距 各边为 7 各边为 11
Aa511279_vertical-label(en-us,MSDN_10).jpg 文本标签与相应控件(例如,文本框及列表框)之间 3 5
Aa511279_between-related(en-us,MSDN_10).jpg 相关控件之间 4 7
Aa511279_unrelated-spacing(en-us,MSDN_10).jpg 无关控件之间 7 11
Aa511279_first-control(en-us,MSDN_10).jpg 分组框内的第一个控件 距分组框顶端 11;与分组框标题垂直对齐 距分组框顶端 16;与分组框标题垂直对齐
Aa511279_between-related(en-us,MSDN_10).jpg 分组框内的控件之间 4 7
Aa511279_between-buttons(en-us,MSDN_10).jpg 水平或垂直排列的按钮之间 4 7
Aa511279_bottom-groupbox(en-us,MSDN_10).jpg 分组框内的最后一个控件 距分组框底部 7 距分组框底部 11
Aa511279_leftedgeofgroupbox(en-us,MSDN_10).jpg 距分组框的左边 6 9
Aa511279_labeltocontrol(en-us,MSDN_10).jpg 控件旁边的文本标签 距离控件顶端 3 距离控件顶端 5
Aa511279_paragraphspacing(en-us,MSDN_10).jpg 文本段落之间 7 11
交互控件最小间距 3 或无间距 5 或无间距
非交互控件与任意控件的最小间距 2 3
导航
工具箱