[出自]http://lifesinger.org/blog/2008/10/grid-system-3/

研究(2)中讨论了栅格系统的基础知识。这一篇将集中探讨栅格系统的粒度问题。(注:如非特别指明,栅格系统均指24列960栅格系统)

淘宝的首页(截图)目前尚未严格遵守栅格系统,如果重构的话,宽度方向可以考虑采用下面的栅格布局(只考虑页面主体部分,忽略高度的比例):

(图1)

纷乱的高度世界

我们来看下图1左上角。左上角部分目前的宽度为256px, 重构的话可以将宽度缩小到230px以符合栅格(不可避免的要调整内容,比如人气宝贝中将只能放下3张图片)。来仔细看下高度方向:

(图2)
高度方向的布局是:90 : 117 : 100, 第一个间隔是8, 总高度为325. 很明显,高度方向没有任何栅格化的迹象。实际上,

即便是严格遵守栅格系统的Yahoo!首页,高度方向上也没有严格栅格化。

这究竟是为何?

一切皆有可能

我们缩小关注点:

(图3)
上图中,图像的大小是70 x 70, 刚好是24列960栅格系统两列的宽度。对于右边的文字,采取了如下样式:

font-size: 12px;
line-height: 150%; /* 12 x 150% = 18px */

中文字体是宋体,line-height的计算值是18px. 注意图3中文字部分可视区域的高度为65, 上下各有4px和1px的间隙。为什么会产生这么奇怪的间隙呢?我们来看下图:

(图4)
从上图中我们可以得知,12px的宋体中文字,实际高度只有11px. line-height减去11多出来的高度,则“均匀”分布在上下间隙中(如果多出来的高度为偶数,则上下均分;为奇数时,上面比下面多1px)。这样,对于70px的高度来说,要布局4行文字时,假设行高多出来的上半部分为x, 下半部分为y, 在最理想的情况下,应该满足以下公式:

11 * 4 + 4 * x + 3 * y = 70
x = y 或 x = y + 1

不难推出,x最理想的整数解为4. 从而line-height为 4 + 11 + 3 = 18. 因此:

对于24列960栅格系统来说,如果要在高度方向上实现栅格,font-size为12px时,line-height的最佳取值是18px(150%).

追求完美点话,还可以将文字部分margin-top: -1px, 使得65上下的间隙为3和2.

至此,我们可以初步判断:

高度方向上是有可能严格栅格化的。一切皆有可能!

然而,现实总那么残酷


(图5)
上图中的标题高度为22, 这在24列960栅格系统中是无法对齐的。而且总高度为100, 在24列960栅格系统中也不存在(110才可以)。或许高度方向上我们可以细化行宽为20, 但依旧没法解决上面两个问题(22是明显不能解决的,而对于100px的高度,也无法通过细化行宽来解决。可选高度永远是10的奇数倍,如果进一步细化,小于10后,会变得非常繁琐,没什么实际应用价值)

宽度世界里会好些吗


(图6)
上面是Yahoo!首页上的两个小模块,我都不想去标注模块里面的布局宽度了(因为一点都不符合24列960栅格系统)。宽度世界里,和高度世界一样充满希望但现实却残酷无比。

银弹是不存在的

栅格系统是美好的。但如果我们一味地追求将所有设计都栅格化(必须承认我曾有这个幻想),则立刻会陷入地狱一般的黑暗中。这篇文章中的艰难尝试(我分析了20多个小模块),让我突然醒悟到一个粒度问题:任何设计都有适用范围,超出最佳适用范围,强行使用只会带来无尽的烦恼。对于栅格系统(这里指所有栅格系统,包括多种栅格系统混合使用的情景)来说,我觉得以下场景非常适合:

  1. 页面的总体宽度布局,比如两栏、三栏等布局
  2. 一些固定区块的尺寸,比如广告图片的尺寸
  3. 区块之间的间距,可以参考栅格系统的槽宽(Gutter)
  4. 一些可以栅格化的小区域,比如图3中的例子,暗合栅格往往能简化布局上的考虑

除了上面这些应用场景,强行使用栅格系统,往往会束手束脚,适得其反。这篇文章的目的,就是尝试用最啰嗦最费神貌似很科学实际很无聊的分析来指出栅格系统应用时的粒度问题。在粒度问题上达成一致后,下一篇中我们将讨论栅格系统的技术实现,最后一篇则讨论栅格系统的压轴好戏:模块化开发。

转载于:https://www.cnblogs.com/yjmyzz/archive/2009/08/20/1550890.html

[转载]网页栅格系统研究(3):粒度问题相关推荐

  1. [转]网页栅格系统研究(2):蛋糕的切法

    [出自]http://lifesinger.org/blog/2008/10/grid-system-2/ 首先澄清一个应用场景问题.研究(1)中指出,对于结构复杂的网站,不少设计师们喜欢采用960固 ...

  2. 学习网页栅格系统的几篇好文

    1.[蓝色理想]网页的栅格系统设计[1] http://www.blueidea.com/design/doc/2008/6171.asp 2.[蓝色理想]网页的栅格系统设计[2] http://ww ...

  3. Bootstrap栅格系统研究

    转载地址:http://www.see-source.com/blog/300000033/273 上一篇文章中已经对网页的栅格系统做了大概的说明,有了这个铺垫在来看Bootstrap的栅格系统就比较 ...

  4. HTML5 网页栅格布局

    栅格布局:也称为网格系统,运用固定的格子设计版面布局. Demo <!DOCTYPE HTML> <html><head><meta charset=&quo ...

  5. blast mysql 基因序列_转载-网页方式下利用BLAST 程序进行基因/蛋白质序列比对...

    美国国家生物技术信息中心(National Center of Biotechology Information ,NCBI) 充分利用Internet ,为用户提供了丰富的生物信息资源.NCBI 的 ...

  6. html中图片连续滚动代码,[转载]网页设计中的图片连续滚动效果——代码

    style="overflow:hidden;width:500px;"> border="0"> id="butong_net_left ...

  7. html插入swf自动播放,[转载]网页中插入FLASH(swf文件)的html代码

    一.简单插入flash图像 width="300" height="220"> 二.调整插入flash图像 align="right" ...

  8. html页面中加skype,[转载]网页中添加调用qq或者msn,skype聊天窗口与客服进行互

    调用qq的方法: href="tencent://message/?uin=20989163&Site=博客园&Menu=yes" _fcksavedurl=&qu ...

  9. 网格(UED所谓栅格化)方案生成器

    本文转载于:http://www.twinsenliang.net/skill/20081109.html 首先这是一篇让你知其所以然的文章,如果你不了解栅格化你应该看看,如果你很了解栅格化你更加应该 ...

最新文章

  1. BZOJ 4555 [Tjoi2016Heoi2016]求和
  2. JavaScript 易错知识点整理
  3. linux python3.8源码安装_linux 下从源码安装 Python——小白踩坑记
  4. [SCM]源码管理 - perforce快速入门
  5. 火热报名 |【 6月26日上海站】VCEC沙龙第5期:智能化技术在质量场景落地和实践...
  6. C++ win32控制台显示月历
  7. 日常问题解决记录一:远程桌面进程如果关闭了怎么呼出?
  8. python学习笔记-递归函数
  9. Windows Server定时执行bat
  10. 无线发射机中的正交上变频技术--USRP X410软件无线电平台开发
  11. Tomcat角色说明及配置
  12. CentOS在ssh远程重装系统的步骤
  13. 1.13正版服务器,我的世界Minecraft梦幻世界服务器(1.7-1.13版本)
  14. 3分钟了解阿里云自营建站服务。
  15. 电子招投标系统EBD
  16. c语言二叉树族谱管理系统,数据结构课程设计报告(用二叉树实现家谱管理系统).doc...
  17. HJY-1A18D电压继电器 导轨安装
  18. 回归问题-逐步回归(Stepwise Regression)
  19. FPGA IP核 串口实验 signaltap
  20. Facebook React完全解析

热门文章

  1. 谷歌大脑联手Hinton提出SimCLR新框架,疯狂提升自监督学习性能
  2. csv文件转换成html,jQuery 把CSV文件数据转换为HTML表格(Bootstrap Table)
  3. mysql重做日志与binlog日志区别_【135期】谈谈MySQL中的重做日志,回滚日志,以及二进制日志的区别及各自作用...
  4. linux如何添加默认路由表_linux 添加静态路由
  5. php msi安装教程,如何判断msi安装包程序是否安装及安装路径
  6. 祝贺!港中文助理教授周博磊宣布加入UCLA
  7. 田渊栋团队新作:为什么非对比自监督学习效果好?
  8. 李飞飞组开源大型室内场景的模拟环境iGibson
  9. linux ruby作用域,细说Ruby细化
  10. RGB-D dataset