垂直栅格与渐进式行距(下)

作者:宗羲 来源:Taobao UED 时间:2009-07-09 16:52:00 

阅读上一篇:垂直栅格与渐进式行距(上) 

新问题

来也匆匆,去也“冲冲”。距上次发布垂直栅格与渐进式行距(上)发布,已经不知不觉过去了两个多月了。反过来,看看上次的成果。诶?怎么感觉边注有点奇怪呢?

(demo-6.html)

还是参考我的这篇关于排版的文章:我们知道

  • 中文互联网上最常用的行距是1.5左右

  • 行长越长,需要的越大的行距. (行距太小,读者阅读换行时容易串行. 行距太大,读者阅读行时会感觉到文字不连续.)


看 来,对于边注的12px字体大小的,24px的行高显然过大了。但是,根据上一篇文章的方法,垂直韵律需要边注的行距和正文的行距应当一致。那么为了保持 垂直韵律,我们只能同时减少左右两边的行距——总结:不靠谱。那么,我们该如何调整边注行距,却又能够让我们建立的垂直韵律生效呢?这就需要我们引入渐进式行距

渐进式行距

总得说来,渐进式行距是对死板的垂直韵律的一个补充。垂直韵律是要求边注和正文的每一行都对 齐。相比之下,渐进式行距让边注和正文也对齐——但不是每一行——而是每几行对齐一次。一般是每4行或者每5行对齐一次。我们回顾一下上一篇文章,知道, 本文开始的那张例子,“配置”如下:

  • 正文:字体大小14px,行距24px,段后距24px

  • h1:字体大小24px,行距24px,段前距24px,段后距24px

  • h2:字体大小:18px,行距24px,段前距12px,段后距12px

  • 边注正文:字体大小12px,行距24px,段后距24px

  • 边注边框:边框粗1px,内补白11px——别忘了还要把它上移12px

我们修改边注的行距和段后距都为18px。那么情况就会像这样:


(demo-9.html)


不知道各位看官发现了没有,为什么第一行基线没对齐呢?这是因为流布局会将文字块按照行高做顶端对齐。如下图:


所以,在这里,为了使首行基线对齐,我们还要将边注下降一定的像素。可恨的是,需要下降的像素是多少——这个很复杂的问题,至少经过不才好几次的尝试都没有看出个规律来,而只得出以下三个结论:

  • 设正文行高是h px,边注行高是h’ px,需要下降的值为d px,那么,这个值将介于 1/2(h-h’) < d < (h-h’) . ①

  • 如果该行引入了西文字符(半角数字或者字母),该行的基线有时会比没有西文字符偏移一个像素。

  • 不同的字体渲染引擎可能行为不一致。


这 个结论并不能有成型的公式来确定需要下降的具体像素值。那么,我们就根据结论①一个一个像素试验吧(3 < d < 6),反正不会太多。在本例中经试验可得,下降4px是能够让首行对齐的。对齐后,各位可以看到正文每隔4行,边注每隔5行,他们的基线会对齐一次。




(demo-10.html)


很有趣,是吧?

标签:垂直,栅格,布局
0
投稿

猜你喜欢

  • CSS的另类拼图___减少HTTP请求

    2009-05-28 19:05:00
  • FSO组件之文件操作(中)

    2010-05-03 11:05:00
  • 关于Javascript的内存泄漏问题

    2008-04-15 07:46:00
  • asp如何写入超长的字符串?

    2010-06-09 18:53:00
  • MySQL 数据库语句优化的原则

    2010-01-20 10:11:00
  • MySQL 定时器EVENT学习

    2010-10-14 13:55:00
  • CSS像素图制作攻略

    2009-05-19 19:32:00
  • ASP脚本循环语句

    2009-02-19 13:34:00
  • 触手生春【4.13】CSS中的伪元素选择符

    2008-11-11 13:10:00
  • asp+ajax版四级联动菜单(数据库)

    2009-07-03 15:40:00
  • asp如何用组件实现自动发送电子邮件?

    2010-06-16 09:56:00
  • XML的语法、结构以及相关的一些技术

    2007-10-23 07:27:00
  • Sql Server在安装时提示挂起的解决方法

    2009-01-13 13:55:00
  • 交互设计实用指南系列(3)—“有效性”之“适时帮助”

    2009-12-25 14:29:00
  • 网页设计五原则

    2007-11-03 13:50:00
  • oracle下加密存储过程的方法

    2009-02-28 10:50:00
  • 讲解SQL Server海量数据导入的最快方法

    2008-12-05 16:21:00
  • on error goto (Vbscript)和try catch

    2008-08-04 13:22:00
  • JavaScript创始人Brendan Eich访谈录

    2008-09-16 12:01:00
  • 关于获取HTML元素的CSS属性值函数

    2008-09-01 13:20:00
  • asp之家 网络编程 m.aspxhome.com