写在开头:关于网页栅格布局的概念已经无需再进行描述,一般来说,有经验的web ui 设计师都应该听说并运用过。但网上有些关于栅格化系统的文章讲的非常理论化,又是算法又是模块,而且和响应式布局混在一起,让新晋的网页设计师们简直无从下手,所以这里以案例来说明何时采用以及怎么最快的建立栅格化系统。在所有关于UI的文章中,我会反复强调和前端开发人员的沟通,因为他们是你设计方案的执行者,这一点非常重要。
1.把栅格化设计和栅格化布局分开
强调栅格化设计(grid-design)和栅格化布局(css grid)分开描述,是个人理解这完全属于两个不同的工作,前者针对网页设计师,而后者针对前端开发人员。栅格化设计是不需考虑页面的响应的基于栅格系统的设计,主要是为了提高网页的规范性。对于一些中规中矩的网站,或者说一般创意型的网站,栅格化设计还是非常推荐的,尤其是一些规模大周期长,后期需要不断迭代的项目,栅格化设计让网页呈现出专业可信赖感,并有助于后期的维护。而栅格化布局,特指前端攻城狮使用的css框架,来实现页面的响应式布局。
拿到一个网站的设计需求时,先确定是不是要单独开发移动版网站,因为响应式布局固然兼顾了手机端,但受加载速度、手机浏览器、自由度等等的影响,如综合电商之类页面复杂的网站如果不做单独的移动站,单纯依靠响应式布局,在手机端的表现就是个渣渣,所以,如果会开发移动版网站的话,恭喜设计师,即你需要的只是栅格化设计,也就是广义上的栅格系统,但如果希望响应式网页取代移动网页,那就需要特殊的栅格系统了。我在后面会分开来介绍。绝大多数的工作流程是设计师把方案交付给前端,前端再考虑实现方法,现在,这种工作流程需要优化一下,即在开始设计前与开发人员的一次深度沟通。提前沟通的好处在于,你了解他们的工作方式,而通过沟通,设计师需要获得的更重要的一点信息是,网站是不是需要做成响应式,这是后面建立栅格系统的关键。
响应式设计只是网页设计的一个折中方案,依赖于项目实际情况进行选择。对于设计师来说,如果没有必须的要求,可选择广义的栅格系统,并在此基础上自由发挥创意。
2.绝不万能的栅格化系统
对于是否采用栅格化设计,采用下面几个案例说明一下:
针对这三个具有代表性的案例,栅格化设计是没有必要的。理由很简单,栅格的优点也是缺点,规范意味着统一也意味着限制,在以上的案例中,无需用栅格来限制设计师的灵感,毕竟这个社会,还是需要设计感的。
但绝大多数情况下,推荐栅格化设计。尤其是图文混排、版块很多的网站,栅格化设计会让内容杂乱无章的页面呈现清爽感。
关于栅格化布局,方案非常多,来看下面几个案例,我们都称之为栅格化设计。
对于不需要考虑页面响应(换句话说,和框架无关)的网页设计,原则可以简化成一句话:“由设计师自由决定”。
3.栅格化设计的参数
网上搜索结果最热的960 gird栅格系统从2009年就开始正式推出,但至今,仍然有很多设计师在使用,除了考虑到显示设备的分辨率,还依赖于960 gird的灵活性。所以,对于新晋web ui来说,采用960 grid 仍然是最佳的方案,不会出彩但也不会出错。如果是考虑到宽屏的设计(需要舍弃一部分分辨率不高的用户),可以把栅格化系统的宽度建为980甚至以上。但没有栅格化设计经验的设计师需要注意,这里说的960是含边距部分,换句话说,在psd文档中,你的内容部分是950px,栅格化版面可以借助一些非常好用的在线工具,比如知名的Grid.Guide,这是12列栅格在内容宽度950下的三种版式规范,你也可以使用24列,灵活度更高。
从图中可以看出,这三种方案列宽column width和间距gutter不同,剩下的工作对于ui设计师来说就简单了很多,你可以把版式规范的png格式下载下来,作为你网页设计的基础版块,在此基础上进行列的划分。或者只是以这个参数为基础,重新建立参考线(我更推荐这种方式,尤其photoshop cc2017的新建参考线版面,装订线对应Gutter,列宽对应column width)。我简单的拿版式规范做了个页面设计示意图,这就是基于栅格系统设计的优点,在划分列时,有理可依,有据可循。
当然,既然是设计师,就可以感性的元素再多一些。比如,你希望更多的留白,就可以采用间距值较大的栅格版式,只要整个网站保持一个统一的版式即可。下图是当内容宽度为1200时生成的栅格系统,你还可以尝试很多方案,但Max Width的设定并不是那么随意,这个取决于网站的定位。
至于高度和垂直间距,栅格化系统并没有统一的准则,设计师可以采用一些黄金分割之类满满的都是设计感之类的值,或者垂直间距与栅格系统的间距相同或是整倍,总之,也需要一个规范指导全站设计。
栅格系统的参数根据项目的实际情况,尽量建立10的倍数或8的倍数(google material design推荐)。
4.栅格化布局的参数
其实在写这一部分,我是有些心虚的,因为自己并不是前端,只是一知半解的了解了一点相关的知识,所以有不对的地方,也欢迎提出。在前面提到过,如果网站的需求是响应式的设计,这时,设计师们一定一定先问一下前端他们准备如何实现响应式布局,而不是把设计稿完成后交给他们后YY他们能百分百给你复现你的设计稿。
关于响应式的栅格系统,首先声明一点,当前端乐意并了解CSS原理和框架的构建方式时,可以构建其他样式的网格,比如7、9、11、13等等,甚至各种异形网格,但在绝大多数情况下,更多的前端攻城狮青睐于高(tou)效(lan),而他们常用的css框架除了Bootstrap(宽480/768/992/1200,12列),还有一堆叫不出名字的轻量css框架(毕竟栅格系统只是Bootstrap的一部分,如果只是需要一个响应式的css的话,可选的非常多,比如960.gis),除此之外,有可能你那可爱的前端攻城狮用的是flexbox实现响应式弹性布局,所以在一切未知确定下来之前,请放下架子,请教一下开发人员,因为虽然不想承认,但这种情况下是前端来指导设计。值得庆幸的是,这种情况在现实中非常少的,(但不排除你接手的是一个二次开发的项目等等之类),确定他们使用哪种框架之后,设计师可以开始自己的工作了。
下面也举个例子,是960gis的。
看完你也许会明白为什么涉及到栅格化布局需要前端来确定了,960gis的css框架给出了三种方案,24列16列12列,设计师要在这个基础上进行设计。一旦需要栅格化布局,意味着设计师自由发挥的空间再次缩减,只有在这三个方案上选一种。这些方案从何而来呢?很简单,你只要向前端索取他使用的框架的psd模板即可,里面参考线都是建好的。而前端一定会非常乐意帮你这个忙,理由很简单,你按照他使用的框架规范进行设计也是在一定程度上缩减他的工作量,皆大欢喜。比如下面这张,就是目前最新的Bootstrap4的psd文件的截图。
设计师也可以自给自足,一般这些css框架库都会提供下载途径。尤其是Bootstrap,作为成熟的框架,很多模板文件可以套用。
栅格化布局以使用的css框架库为准则,让前端开发提供给设计师再好不过。