栅格 布局 宽度 前言在如今多终端、多设备尺寸的加持下,多屏设计就成了商业设计中不可缺少的一部分,为了让所用界面的视觉表现出统一性和一致性、同时在不同系统及不同尺寸的设备上保持良好的用户体验,栅格系统就显得尤为重要,它能辅助设计师制定界面排版布局的方案,以网格的形式将多元素/内容链接在一起,很好做到多平台、多尺寸的适配,让设计美感、工作效率都得到很大的提升。一些优秀的产品都在使用栅格去规范界面信息的排版布局,虽然它只是传统设计方式的一部分,但只要不嫌麻烦,就可以使用栅格系统解决很多设计布局的问题。不少设计师都知道栅格的重要性,但碍于对其一知半解,以至于在设计中总有些无从下手,本文笔者将从浏览过的大量文章结合自身工作经验对栅格做出系统化的总结,希望能帮助初/中级设计师对栅格有一个更深的认识。更多栅格设计干货:用7大章节,帮你从零开始学会栅格系统前言现如今随着设备尺寸的多种多样,产品在设计过程中需要适配到更多尺寸,布局方案与栅格系统的搭配使用,可以很好的做到跨平台跨尺寸适配,极大的提升设计效率。阅读文章 > 一、栅格的定义及重要性1. 栅格的来源栅格的概念来源于平面设计中的“网格”,早在 13 世纪,法国建筑师 Villard de Honnecourt 创作了一张图表,试图实现“和谐的设计”,这也是继黄金比例之后,第一次将网格与其结合在一起,以此产生固定比例的页面布局。在 18 世纪工业革命大规模生产的开始,随着报纸、传单等主流印刷品的兴起,设计师们需要解决“将不同的信息传达给不同的人群且能自然浏览、还要防止不同部分争夺读者的注意力”的问题时,栅格的雏形已然显现出来。20 世纪初,设计师们发现使用网格辅助设计印刷作品,可让排版布局更加清晰、信息传递也更加有效,由此演变成了平面设计中的一种方法。20 世纪中期,约瑟夫·米勒-布罗克曼著作了《平面设计中的网格系统》一书对设计界影响至今。由此不难发现,不管是前几个世纪的印刷刊物、还是如今的互联网产品界面布局,栅格都可以作为组织信息的工具,帮助设计师实现一致、和谐的信息布局效果。2. 什么是栅格栅格和网格的英文都以“Grid”来表示,其本质是为了给版面提供一个基本设计框架,这也是为实现有组织的设计其中方法之一,在平面设计中称之为“网格”,而在网页/移动端中更多称为“栅格”。栅格是根据平面中的网格发展而来,通过一定的规律、合理的设置基准线来规范界面中的元素(文本/图像),让每个区域能够相对独立却又能相互关联,形成整个界面,最终呈现出清晰易读的信息布局。3. 为什么要使用栅格首先对用户来说,使用栅格能让内容布局具有规律性,通过定义留白、对齐、分割等各种比例关系,不仅能降低用户认知成本,还能让信息的展现更加清晰,有效提升用户的浏览、接收效率。其次对于研发团队,栅格通过统一的标准规范对设计师进行约束,协同产出一致性的视觉效果,避免了一人一个样式的混乱场面,同时减少了部分细节上的沟通,提高决策及产出效率。在开发过程中,程序员通过有规可循的设计规律,可对部分组件及模块进行封装调用,不仅高度还原设计效果、还能提高开发效率。另外,在设计 Web 界面时,使用栅格系统能一稿适配电脑、平板、手机等不同的设备尺寸,合理兼容多端、多系统下的自适应效果。二、栅格系统的组成栅格系统并没有我们想象的那么复杂,它主要由网格、列、水槽、边距、总宽、容器盒子等组成,只要清楚它们之间的相互关系以及定义即可,下面我们将一一了解:1. 网格(Gird)网格(Gird)是由基本单位「单元格」构成,也被称为最小单元格,而栅格则是由一系列规律的网格组成,通常情况下,我们会使用 8 作为作为栅格中的最小单位,以此进行增量。为什么用 8 为基础倍数呢?首先作为偶数,程序进行单位换算后可被整除,避免像素出现小数点;其次,8 为增量单位既不会显得琐碎、也不会让内容过于分散,当界面中所有元素都以 8 为倍数时,其元素大小、间距都有规可循,之前笔者曾写过一篇「间距」类的文章,感兴趣的伙伴可以去看一下。5000字干货!超详细的保姆级间距设计规范编者注:UI设计中的间距到底是什么,有什么作用,如何合理有效地使用?阅读文章 > 2. 列(Column)列(Column)指的是栅格数量,如 12 栅格有 12 个列、24 栅格就是 24 个列,主要用来对齐内容。通过栅格的列数来控制版面的呼吸感及节奏感,列数越多、内容排版越精细,反之列数越少、内容排版就越疏松。3. 水槽(Gutter)水槽(Gutter)是指列与列之间的间距,通过留白以实现界面中的信息元素分割及版式呼吸感。水槽的宽度对设计风格会存在一定影响,水槽越大留白就越多、其呼吸感就越好,反之留白就越少、内容也会变的较为紧凑。4. 边距(Margin)边距(Margin)是指界面内容到屏幕边缘的距离,主要用来控制核心内容的展示边界,所以是禁止放置任何内容的(部分浮窗、返回顶部按钮、右侧吸附边栏除外)。边距值的大小会直接影响到栅格区域空间,这点大家自行理解即可。5. 栅格总宽(Container)栅格总宽(Container)是指所有列加所有水槽再加上两侧边距的总和,即整个栅格系统的总宽度。6. 容器盒子(Col-n)容器盒子(Col-n)是指布局信息的版面区域,通常设计师在设定好基础栅格后,会根据实际情况去定义一块内容需占用几个列的宽度并形成容器,后续在设计过程中,会将文字、图片、按钮等元素约束在限定的容器宽度以内形成复用组件,最终组合拼装成完整的设计方案。三、栅格系统制作流程1. 设计栅格宽度在设计 Web 端界面时设计师需要先根据实际使用场景确定好布局后,再来设定栅格区域,如下列布局:屏幕宽度并不等于栅格的宽度,大多数情况下,我们会基于 1920、1440 这两个尺寸来定义设计稿的宽度,但真正放置信息内容的区域并非设计稿尺寸,需要做到多平台、多尺寸显示器的适配,通常会将栅格宽度定义在 1024px~1400px 之间。例如:常见的 1024px、1200px、1280px、1400px 等,可满足绝大多数主流显示器,如果栅格宽度超过 1400px,在很多笔记本电脑上浏览页面时,会出现左右滚动条,体验非常不友好。2. 选择栅格列数① 12 栅格12 列栅格很常见,一些业务信息分组较少的商业网站、门户网站等使用的就是 12 栅格,它能够被 2、3、4、6 整除,很容易满足信息较为复杂的等分布局场景。另外,针对不对称布局的容器组合也能将信息体现的很和谐,如双栏布局使用 4+8、3+9 栅格,三栏布局使用 2+8+2、3+3+6 栅格等,变化较为灵活。② 24 栅格24 列栅格适合信息量大、分组多且多样复杂的使用场景,很多视觉区域较大、需要精细化布局的 B 端 Web 设计采用的就是 24 栅格,相比 12 栅格,有更多的区域划分空间,其布局的灵活性也更强。需要注意的是,24 栅格因列的数量比较多,很多时候列宽无法被精准整除,不过相差的像素数值极小,往往无法被用户肉眼觉察,无伤大雅。栅格本身的目的就是为了保持视觉效果的协调与统一,并非为了死磕某个像素,特殊情况区别对待即可。③ 5 栅格5 列栅格一般用在移动端设计中,因设备屏幕的横向空间有限,所以很少使用,例如:针对“金刚区”的 5 图标(一行)、10 图标(两行)的规范化排版。如果想进一步追求后续的灵活性、避免奇数的不便,也可将 5 列栅格拆分成 10 列,布局、视觉效果基本能保持一致。其实在实际设计中,设计师们大多会使用间距来规范界面的排版与布局,相比 5 列栅格会更灵活、更便捷。3. 定义水槽与边距水槽就是列的间隔,其定义方式可以延用间距系统的制定标准,以 8px 为最小单位进行推导,如 S=8px、M=16px、L=24px、XL=32px、XXL=40px、...等,这样更容易保持视觉的一致性,最终到底使用哪个值没有绝对的要求,这还需要根据产品的调性及设计风格来决定,水槽的数值越大,页面的留白间隙就越多。当我们确定好内容区宽度、水槽宽度及数量后,计算出列宽(上述有提到不一定整除)并将整体进行居中显示,两侧即自动形成边距。四、栅格与响应式的结合1. 自适应与响应式① 自适应自适应布局是为了让网页内容根据不同终端来自行适配布局,设计师需要制定好同一设计稿的变化规则,程序员在开发时创建多个布局,对不同的终端分别提供一套独立的前端代码,系统就能自行判断当前访问的是 PC 端、平板还是手机。我们可以做一个测试,对自适应网页窗口的宽度进行调整,就会发现每经过一个断点时,页面的元素位置就会发生改变,呈现出不同的布局效果。需要明确的是,当窗口宽度未达到下一个断点之前,元素不会随着窗口的调整而变化。自适应效果因需要前端为每个终端提供独立的代码,固开发成本较高,在设计时,元素的大小、位置变化不必太过复杂,只需保留必要的功能入口即可。② 响应式响应式没有自适应那么多的控制,前端只需通过一套代码即可无缝衔接电脑端、平板和手机,可多端同步生效,其开发成本及设计成本都相对较低,适应性更强。响应式布局最典型的就是当页面窗口宽度发生变化时,元素的大小随时都在发生变化,特别是图片的伸缩、整行文字的长短变化尤为明显。2. 栅格行为变化① 固定栅格将自适应关联到栅格上,简单来说,就是页面宽度在变化过程中未达到下一个断点时,栅格的列与水槽宽度不变,页面布局不会产生变化。当达到预设断点,栅格的列数与水槽会相应增加或减少,页面右侧的内容也会随之增减,但元素之间的尺寸与间距依然是固定的。固定栅格的适配规则简单,实现成本也相对较低,但是因为在拉伸过程中边距的不固定性,局限了其适用范围,一般只适合用在内容居中、上下结构布局类型的产品中。需要注意的是,在过大或过小尺寸的屏幕上,比例可能会显的不够协调。② 流动栅格流动栅格的边距、水槽宽度是固定不变的,在达到下一个断点前,列的数量也不会增加,列宽会跟随页面宽度左右伸缩,变化规则不一定是最小单位(8px)倍数,内容元素也会随着页面宽度的变化而变化,以保持页面内容始终充满屏幕的可用空间。我们可以将流动栅格的视觉呈现方式称之为响应式弹性布局,这种布局的兼容性很高,能很好的适应多端设备及不同的屏幕分辨率。对于不同尺寸的卡片混排也能平滑过渡,不会显得突兀,例如:图像、视频、类容编辑器、数据可视化等,除断点变化外,内容元素的缩放不会改变页面的排版布局。③ 混和栅格绝大多数的网站使用的都是流动栅格,但一些后台管理系统及工具型界面设计为了使布局既有固定的宽度、也有流动的宽度,就会采用混合栅格的形式。混合栅格的灵活性很高,特别是内容较为复杂的产品会显的更加友好,在不同分辨率的屏幕上都能达到理想的视觉效果。不过对于开发来说,规则相对复杂,实现成本较高。五、部分问题及处理方式1. 水槽中不要留下元素这里所说的并非水槽中不能存在内容,而是不要将单个元素或元素的边缘置于水槽内,否则就会参差不齐,违背了栅格的目的。如果你的元素过大,就让他跨越栅格,到达下一个列的右侧边缘。2. 栅格不一定整除虽说设计师对于每一个像素的的追求都很执着,但大部分情况下栅格都是无法整除的,而相差的像素也无法被用户以肉眼觉察。我们需要理解的是,栅格的目的是为了保持视觉的协调与统一,而非像素级的精确。举个例子,以 1920px 的宽度、12 栅格为例,内容区宽度可以是 1000px、1200px、1400px、1600px...,每一次内容区宽度的变化都要将栅格的列宽重新调整,永远无法将栅格每次整除,即便偶尔也是例外。3. 栅格区域外的内容栅格是为了规范内容,并不是所有的内容都需要栅格。大多数情况下我们只需要将主要内容区域遵循栅格系统即可,其他部分如固定导航、侧边悬浮栏、右下角弹窗...等不一定要跟随屏幕尺寸或内容的变化而变化。4. 合理的打破栅格对齐对齐在栅格系统中的地位可谓是举足轻重,不过在一些特殊场景中不必为了对齐而对齐,在不影响视觉效果的前提下,可以根据实际情况合理的打破对齐。如下图中的照片墙,利用极小的间距将一些宽度不同的照片排列在一起,虽然没有同栅格的列宽对齐,但我们第一眼很容易将这些照片联想成一个整体,同时又能轻松的单独区分开来,也不会影响整体布局。5. 子父级模块对齐父级在部分场景中,当我们以卡片的形式将多个内容形成一个信息组,这时可以忽略子级元素的对齐方式,父级卡片遵守栅格对齐即可。六、结语栅格系统能为设计提供便捷,有助于设计效率的提升,很多设计师都会去关注栅格为什么重要,却容易忽略栅格在实际项目中的使用原则,同时还要伴随一些限制条件,所以并没有平常想象的那么简单。本篇文章提供了栅格系统的基础知识,希望能够抛砖引玉,帮助大家解决在使用过程中遇到的常见问题,让栅格更好的服务于设计,若有不足之处,欢迎补充。万字干货!从4个方面完整解析栅格设计关于界面栅格的攻略,延展到适配方式。阅读文章 > 欢迎关注作者微信公众号:「能量眼球」本篇来源:优设网原文地址:https://www.uisdc.com/grid-design
表格 单元格 宽度 又到了 B 端干货分享的环节了,今天我们来分享的是 B 端项目复杂组件中出现频率最高(没有之一)的——表格组件。往期回顾:超详细!总监出品的B端设计规范指南(一):布局在 C 端设计中,不管是给车载客户端、手机客户端、电脑客户端设计界面,都有比较具体的规范需要我们学习和遵守。阅读文章 > 超详细!总监出品的B端设计规范指南(二):字体[link https://www.uisdc.com/b-side-design-specification]第二篇,我们就要回到 UI 整个类目里最麻烦,也是最重要的规范类型——字体。阅读文章 > 超详细!总监出品的B端设计规范指南(三):配色B 端设计也是 UI 设计的一种,它的输出环境只存在于电子屏幕中,所以统一使用 RGB 色彩显示模式即可。阅读文章 > 超详细!总监出品的B端设计规范指南(四):控件第四篇我们全面认识一下B端的控件设计。阅读文章 > 超详细!总监出品的B端设计规范指南(五):控件下面,就回到我们之前停摆的控件讲解,继续认识控件有关设计的内容。阅读文章 > B 端设计指南(六):数据图表怎么设计?基本的控件单元完成后,下面就要开始介绍 B 端设计的另一座大山,图表的设计了。阅读文章 > 掌握表格的设计,就掌握 B 端设计的半壁江山,我们赶紧开始吧!1. 表格是什么,为什么重要?表格已经是现代电子计算机系统中重要的组成部分之一,从小学开始,我们就已经在电脑课上学习如何使用 Office Excel 来制作电子表格。那么我们为什么需要使用表格呢?因为我们有记录和查询数据的需求。在任何商业活动中,都会产生大量的数据信息,虽然我们发明了 SQL、Mysql 等数据库语言记录数据,但最原始的数据记录是没有可读性的。所以,为了让数据可以更好的展示,我们就必须借助可视性更强的图形工具,即电子表格。通过 X、Y 轴构建的网格系统,将数据有序、清晰地罗列出来。表格的重要性就体现在企业日常工作中对这些数据进行管理的需求和频次上。例如为电商 APP 开发了一套管理系统,那么电商运营每天的工作,都要绕着其中销售、物流、流水等重要模块的数据打转,也就是围绕着表格展开工作。对于多数管理系统而言,数据查询、管理都是非常重要且高频使用的功能,所以常规项目中会包含大量的表格页面。甚至,有的中小型项目的所有导航一级页面,只有表格,而不存在其它页面形式。所以,表格的优劣对用户工作效率和平台体验可以产生决定性的影响。而优秀的 B 端项目表格又不能只像 Excel 一样可以使用固定的模版,不同项目、页面、模块对表格的可视需求天差地别,需要根据具体情况具体分析。所以,这也是 B 端设计师的价值之一。一个优秀的 B 端设计师势必投入大量精力来提升对表格的认识和表格设计能力。2. 表格的主要构成模块表格虽然细节设计上千差万别,但在表现形式和阅读顺序上却是基本一致的。常规的表格必然包含表头栏、列表、翻页器三个部分,根据需求的不同,可能还会增加搜索栏、多选栏、操作栏等常见模块。第 1,搜索栏,主要是用来进行简单的数据搜索和筛选的,当搜索项较少的时候,就可以将搜索结合到表格组件内。而搜索项较多时,则会把它们独立成一个筛选模块到表格组件的上方。第 2,表头栏,每个表头代表一个对象的属性,决定了下方每行对象要显示的数据类型数量。通常,表头的设计会和下方列表设计有一定的区分,标头文字有一定的标题属性,所以会通过背景色、分割线、文字加粗来做区分。第 3,列表,则是纵向排列数据对象的模块。每个数据对象占一行,行的高度根据内容来制定。横向列表高度和纵向表头宽度重叠的区域称为单元格,每个单元格展示表头对应的数据明细。常规 B 端项目表格都会限制单页列表的行数,极少使用无限滚动加载的模式。因为很多列表的数据有成千上万条,加载带来的系统性能消耗较大,且无法有效根据序列精准定位指定数据对象。第 4,多选和操作栏,如果数据对象支持多选和批量操作,则我们会在第一列中添加选框,并将选中后的操作选项放进操作栏中。第 5,翻页器,则是切换列表页数的控件。通常大数据量的列表包含上千页,所以翻页器只会显示开头几页和最后一页,省略中间的,并增加适合快速跳转的功能。除了表头和列表内容外,其它模块内容都根据实际需求应用。任何表格设计的第一步都是制定大框架,即包含的模块和对应分布位置,再展开后续的细节设计。B 端项目支持响应式是今天行业的普遍需求,也就是页面内容随着浏览器视图宽度变更而变更。不同页面类型的响应式逻辑各不相同,而表格是其中逻辑最复杂,也最难理解的一种。表格响应式规则通常在确定好框架以后制定,优于视觉、交互设计,因为它对视觉和交互产生的影响非常大,是前置条件而不是通过设计稿逆推出来的。表格的响应式规则比较细碎,我根据下面的顺序展开解释:表格的总宽响应表格的最小宽度单元格的响应逻辑内容的响应逻辑1. 表格的总宽响应表格的响应主要是宽度上的响应,整个表格的宽度区域随父集元素的放大而放大。比如父级元素左右内边距为 20px,则表格整体宽度保持和父级 20px 的左右间距。2. 表格的最小宽度在上方逻辑下,表格可以无限延长。但是,反之它却不能无限的缩短,你不可能做一个只有 10px,20px 的表格。过窄的表格不仅支持不了内容的正常显示,也毫无任何使用体验,所以我们要为表格确定一个最小的宽度。最小的宽度可以结合前端栅格系统使用的 Breakpoint (断点)来制定,如 SM:576px,或 MD:768px。如果不了解栅格的段落规则,也可以 “凭感觉” 定,最小表格宽度通常在 560-640px,当然,不管怎么定,一定要提前和前端沟通,确定尺寸方案。当表格内容少的时候,最小宽度只是相对较大宽度窄了一点而已。而当表格内容过多,最小宽度无论如何也不够放的情况,那么就会使用横向滚动的交互形式来隐藏超出内容。3. 单元格的响应逻辑单元格响应这是整个表格最复杂的一环,横向内容会超出最小宽度的情况,就是由单元格规则决定的。首先,单元格本身也有最小宽度,原因和前面一样,1px、10px 宽的单元格没有存在的意义。所以可以根据需要,制定多个等级的最小单元格宽度,应用在不同的数据类型中。假设表格中包含了 20 个表头,分别使用了 10 个最小 24px 和 10 个最小 80 px 的,那么单元格的总宽最小就是 240+800 = 1040px。所以当父级整个表格视图小于 1040px 的时候,内容就会不够显示从而触发左右滚动的条件。当上级表格宽度大于单元格最小总和时,那么单元格也就会随之变宽。最简单的响应逻辑,就是为单元格宽设置百分比。比如 5 个单元格分别是父级宽度的 10%、10%、10%、20%、30%、20% ,那么在父级 1000px 的时候它们分别是 100px、100px、100px、200px、300px、200px。只要确保百分比的总和是 100%,不管你单元格是比例均分(5 个单元格每个 20%宽),还是独立制定(上面案例),单元格宽都是等比缩放的状态。虽然好理解,但这种初级的做法带来的问题也很多,那就是部分单元格没有被 ”放大“ 的需求。比如常出现在第一列的多选框,或者部分标签单元格、固定操作按钮单元格。于是,为了预留给有需要的单元格更多的空间,提升体验,就会对这些单元格实施定宽的方式,剩下的单元格继续使用等比,只是计算的方法要减去定宽元素。比如还是一个占比 20% 的单元格,在包含 2 个 48px 定宽单元格的 1000px 表格中,实际宽为:(1000px – 2*48) * 20% = 180px4. 内容的响应逻辑作为单元格的子级,内容也可以独立定义响应的规则。主要包含 3 种情况:无响应隐藏多余换行显示无响应就是显示的内容是固定的,比如多选框、缩略图、单按钮等单元格内容,它们没有大小变动的必要。隐藏多余,则是主要应用在文本内容上,当单元格宽度小于当前文本所需宽度时,就会把多余的文字进行省略,这种做法适合应用在一些原本就不是太重要的信息上。比如原本是 ”上海徐家汇南丹路天主教堂一楼“ 变成 ”上海徐家汇南丹路天…“,之后再通过鼠标悬浮弹出文字气泡框的方式显示所有文本。而换行显示,则是文本或多标签状态下,一行不够显示就换行的做法。除非一开始单行行高预留了多行显示的高度,否则多行内容就会撑高单元格。表格的响应式也就先解释到这里,制定表格的响应逻辑需要从底层认识它们的层级和响应规则,然后再和开发沟通如何制定合理的方案。随着经验的积累,实战经验丰富的 B 端设计师,就会在前期的规范环节制定出完整的表格响应逻辑,应用到前端框架开发和后续的设计,而不是做到哪定到哪。今天的分享就到这里结束,响应式解释还是太繁琐了,我也只能写到这个分上了,能理解多少要看大家的造化了!目前想做一篇响应式规则的浓缩短视频,大家要想看,记得在下面留言~下篇再贱!如何设计B端表格?这篇近5000字的干货帮你完全掌握!表格浅谈,多多指教数据查看让我们先来回顾一下表格的基本构成,最上面的为表头,横为行,纵为列,内容区每一组展示数据区域为单元格。阅读文章 > 欢迎关注作者的微信公众号:「超人的电话亭」本篇来源:优设网原文地址:https://www.uisdc.com/b-end-form-design-application