随着业务的不断推进,现在我们的后台项目越来越多。但是由于前端和后台之间联调复杂导致项目经常会推迟。为了能优化项目流程,提高开发效率。交互和前端决定一起做一套DPL,做一系列的规范出来。这样可以减少交互,前端,后台互相的沟通成本,同时能够沉淀下这段时间大家的收获。
交互参与的DPL中我们主要是做栅格体系,控件体系,视觉体系,下面我来和大家分享下DPL中的栅格体系设计
栅格
研究网页栅格系统前,来看一组数据:
网站 | 首页页面宽度 px |
---|---|
Yahoo! | 950 |
淘宝 | 950 |
MySpace | 960 |
新浪 | 950 |
网易 | 960 |
Live Search | 958 |
搜狐 | 950 |
优酷 | 960 |
AOL | 960 |
上面列举的都是Alexa全球排名前100的站点,它们的首页宽度为950px/960px. 除了微软的Live Search, 这些站点有个共同特点:页面结构较复杂,都可以认为是门户型网站。
再来看看Google, YouTube, Facebook, Flickr!, eBay等知名站点,它们的首页宽度没什么固定规律,共同的特点是:功能专一,页面结构相对简单。
根据上面的简单分析可以认为:当搭建页面结构复杂的门户型网站时,开发工程师们不约而同地都选择将页面宽度定为950px/960px。
这是一件很有趣的事情,为什么要选择这个宽度呢?这个宽度值究竟有什么魔力?
上面的"自然"出现,细究自然是不让人信服的。设计者们在没有喝醉酒的情况下选择了960,而不是其它什么1000之类的整数,自然另有奥妙。
那么如何设计一个栅格系统?接下来我们将通过实例,详细的介绍一下网页栅格系统的原理与应用:
在网页设计中,我们把宽度为"W"的页面分割成n个网格单元"a",每个单元与单元之间的间隙设为"i",此时我们把"a+i"定义"A"。他们之间的关系如下:
W =(a×n)+(n-1)i
由于a+i=A,
可得:(A×n) – i = W
注:960是加上最后一个i(i=10)的长度,950是没加上i的长度
为了减少1.0版本的改动,我们保持了i=10xp
我们的N是多少,A是多少?W是多少?
n的特点:是3倍数,我们需要有一行三列的情况,同时不希望有重要信息在最后面(我们的系统在内页才有栅格,所以1280下能展示全,但是1024不一定能全部展示),所以最好是整个栅格能平均分成3列
A的特点:是5的倍数,在设计控件等都是很方便的
W的特点:最好符合大众化的
得:3x*5y-10=W 其中x,y为整数
15x*y-10=w
上面列举的都是Alexa全球排名前100的站点,它们的首页宽度为950px/960px. 除了微软的Live Search, 这些站点有个共同特点:页面结构较复杂,都可以认为是门户型网站。
列举下现在网站的栅格
网站 |
首页页面宽度(xp) |
a*b(xp) |
Yahoo! |
950 |
64 |
淘宝 |
950 |
64 |
网易 |
950 |
64 |
Live Search |
958 |
64.5222 |
良无限系统 |
1000 |
66.1333 |
结论,现有网站在n和A的特点下,x*y是整数的只有64.
很多成熟网站都是12或24栅格。
当栅格为12(即3x=12)时:
4y=64
y=16即A=80
当栅格为24(即3x=24)时:
8y=64
y=8即A=40
考虑到1.0的控件改动尽量少,后台系统布局结构比较统一。我们采用24栅格
即:
我们的栅格是:
(80×12)- 10 = 950
基线
栅格设定好之后只是控制了纵向的整齐,横向的需要用基线来控制。
在描述基线之前,我们先要了解下前端对于输入框的结构吧
如果我们设置一个12号字的输入框,那么前端会对这个输入框设定结构。text area(蓝色部分)他是个基础,pading(内白色部分)他是text area和框描边的空隙,border(黄色部分)是框的描边宽度,margin(黄色外虚线框范围)他是鼠标划过的hover状态的延伸区域。我们的 12号字是在text area里面的。比如图中,我们的text area设置的行高是18像素,字高12像素,居中的,上下各有3像素的间距。
根据这点,我们把表单里面的输入框元素和栅格元素一起考虑,设置了每个控件在栅格里面的效果:
(其中蓝色部分就是text area的内容)
很多人会奇怪,为什么标题部分都是三个位置,有的还是前面空一格呢?我们的系统在早期定义了这样的效果,因为业务方的字段都是长短不一的。如果做成了左对齐,户很难看(我们一排可能出现三列),所以在表单页面和查询页面我们都统一冒号对齐,这样就能保证输出框是比较整齐的。方便用户浏览。
下面来讲我们的重点:基线。先看图
反馈和输入框是捆绑的,我们在用户填完内容之后会给他第一时间的反馈,这时候如果位置放在后面,则会导致第二列的内容不好放,我们就把反馈都放在输入框的下面,而且反馈只会是出错的反馈,以免用户浏览困难。 我们把基线间距设定为20像素,text area与之下对齐,这样,两个输入框之间正好是18像素,正好放一个text area。
按照这个逻辑,我们做出了所有控件搭成的页面。
注:动作按钮是冒号对齐,保证操作的连贯性
等到和前端沟通,方案通过之后,我们在开始制作详情页和查询页
栅格规范做好之后,就为颜色规范和控件规范的打下了一个很好的基础。
当然,当然制作栅格系统还有很多方法。作为设计师,特别是网页设计师/交互设计师,我们不应当单纯地凭借感觉,应当专注到像素级别,严谨设计,同时保持和前端的沟通,虚心接受他们的指导。其实,前期我们没有想到栅格系统要做的这么复杂,都是前端攻城师们在设计的时候发现我们的交付物不够严谨,不断的提出挑战,才慢慢晚上的。所以我在文章的最后,想送给大家两个词:"严谨,沟通"。
文章来源:lpued.com