- 浏览: 488181 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
turingbooks:
本书预计下个月左右出版。
一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》 -
superonion:
什么时候出版?
一本名副其实的 Web架构“圣经”——关于《HTTP权威指南》 -
yoyo837:
第11章是不是可以跳过不看哟...
《JavaScript高级程序设计》(第2版)上市 -
zsjg13:
对于“第二,技术要好,有开发经验,熟练掌握书中所涉及的相关技术 ...
为什么翻译类计算机图书的质量这样差 -
lzxz1234:
[b]方案五[/b]
选出您心目中理想的封面——《Spring揭秘》
几乎所有CSS书在讲到line-height
属性的时候,都会提到传统排版中的一个术语——leading。这个leading到底指什么,它在汉字排版中叫什么,它与CSS中的line-height
,也就是“行高”有什么关系?本文试图拔开历史的迷雾,把事实真相呈现在读者眼前。
从传承说起
作为网页排版语言,CSS跟其他专业或大众化的排版软件一样,同样植根于传统出版。传统出版,特别是铅活字印刷时代被称为“铅与火”的时代。而通过计算机软件排版印刷的时代,被称为“光与电”的时代。从“铅与火”到“光与电”的变迁,并非简单的取代和革命,更多的还是对人类出版实践的传承。
不用说InDesgin、QuarkXPress、Acrobat等专业的排版软件,只要用过Word、WPS等文字处理软件的人,都能说出一堆出版的术语来。可想而知,这些软件的设计和编码,一定是以传统出版实践为依据的。当然,这些排版软件都以排印以页为单位的纸质书为目的,这一点与CSS不同。CSS的目标是可以无限延长的网页。但除此之外,CSS与排版软件并没有本质区别。在CSS标准中,各种排版术语随处可见。从人工拣字到计算机排版,从纸面到网页,工具的革命、介质的更迭,并不代表可以无视过去,藐视传统。相反,了解传统排版实践,是真正理解CSS标准和相关术语的必要一环。
在《CSS设计师指南(第3版)》中,作者同样提到了leading。甚至还说,CSS中的line-height
属性对应于印刷行业常说的leading,原文截图如下。
我们都知道,line-height
是“行高”的意思。难道排版中的leading是CSS中的“行高”?要解决这个问题,首先得知道leading的确切含义。
神秘的铅空
为了弄清楚leading最初的含义,我在网上找到了以下图片:
(图片出处:http://www.normanfournier.com/capabilities/typography11.html)
(图片出处:http://www.creativepro.com/article/just-say-no-automatic-leading)
第一张图片告诉我们,两行文本之间的距离(或空白)是leading。而第二张图片更直观:两行字模之间有一条薄薄的填充材料,那就是lead。
有读者可能会问:“第二张图片中的Lead在中文活字排版中叫什么呢?”问得好!须知,了解传统出版是理解CSS的必由之路。幸好我手头有一本战士出版社1981年12月版的《出版工作手册》,这本书第二章“排字部分”有一个词条:
就此,我又请教了公司校对董秋霞师傅。董师傅跟说我,排版工在拣字拼版时,会根据版心宽度自己裁割铅条。铅条长度稍短于一行字长,以便不妨碍将来固定版面时压紧字模。铅条高度低于铅字高度,在印件上产生空白。
Slug、Em Quad是什么?
细心的读者会追问:第二张图里的Slug、1-Em Quad又是什么?Slug应该也是铅条,或者叫厚铅条。Em Quad中的Em指字体大小(英文字体以大写字母M标称点大小,em就是M的发音 :),另可参见维基百科中的相关词条:http://en.wikipedia.org/wiki/Em_(typography)),Quad就是方形空铅。
根据《出版工作手册》:“凡是印件的版面之内没有印迹的地方,都要用空铅填充。空铅的大小是以该字号全身铅字为基准,比全身铅字小的称分数空铅,如相等于五号铅字一半大小的叫五号对开空铅,三分之一或四之一大小的叫五号三分或四分空铅,如相等于五号铅字二个大小的叫五号双连空铅,三个或四个大小叫三连空铅或四连空铅(又称五号三倍空或四倍空)。以此类推。为了节约材料,有时把大空铅中间挖空,叫做空心空铅。”
对应到汉字排版,1-Em Quad就是N 点全身空铅,2-Em Quad就是N 点双连空铅。总之,都是为了在版面中创造空白,铅空主要用在行首尾,铅条主要填在行间。
相信所有人都能看得出来,leading其实就是我们常说的行间距!行间距跟行高可不是一个概念。难道《CSS设计师指南(第3版)》错了?别急,事情又有了曲折。
微妙的歧义
假如我一开始不是上网搜索图片,而是查文字资料呢?《牛津高阶英汉双解词典(第7版)》:
俗话说:“眼见为实。”(稍后你会发现,眼见也不一定为实!)看了前面的图示,再读上面词典的解释——特别是读到释义括号中的“相邻两个文本行之间的距离”时,你一定认为“行距”就是铅条的高度!应该说,这恐怕正是我们中的大多数人所理解的“行距”的概念。毕竟,行距就是加在两行之间嘛,增大行距也是增大两行之间的距离呀。换句话说,假设两行文字的字体大小是10点(point,一点为一英寸的1/72,即0.35146毫米。我国规定一点为0.35毫米),即3.5毫米高,铅条厚度2毫米,那么这两行文字的行距是2毫米,对吧?——很遗憾,不对!
虽然铅字排版时代的leading确实是指两行之间的铅条,但现代排版软件中的leading指的则是两行文本基线之间的距离。以下是维基百科中的解释(http://en.wikipedia.org/wiki/Leading):
英文看着可能不太舒服,以下是译文:
那什么是文本行的基线之间的距离呢?还是用图来说明吧。
英文字体有基线(baseline)和中线(meanline),这两条线之间就是所谓的“x-height”,即小写字母x的高度。小写字母超过中线之上的部分(如d上面的竖划)称字母的上伸部分(ascenter),超过基线之下的部分(如字母q下面的竖划)称字母的下伸部分(descenter)。英文大写字母都位于基线以上,顶部稍低于小写字母上伸部分的顶线1。
1. 这篇短文介绍了紧排(kerning)和字符间距(tracking):http://www.brightlemon.com/blog/typography-01-font-basics。
如上图所示,两行文本的基线之间的距离是现代排版软件中所说的行距(leading)。这样定义行距是有意义的,因为知道了行距和行数,就能算出版心的高度,而版心高度加上、下页边距就是页面高度。下图就是InDesign中调整行距的“字符”面板,其中的图标清楚地表明,这里行距实际上就是一行的高度。
简言之,当我们在Word、WPS,或者InDesign、QuarkXPress中调整行距时,我们设定的其实是包括字体大小在内的文本行的高度,而不仅是文本行之间的距离。当你听到别人说“行距”或“行间距”时,一定要搞清楚他说的到底是哪个距离。有人可能会说:“‘行间距’也可以理解为‘两行文本基线之间的距离’吧”……算了,这事儿不能抬杠,反正意思你懂了。
明白了就里之后,那是不是可以认为《CSS设计师指南(第3版)》说“line-height
属性对应于印刷行业常说的leading”没有问题了呢?别急,一波总要三折嘛。
CSS的定义
如果说“行距”和“行间距”尚有一字之差,可以勉强分辨,那我们对相同字形的leading就更要多加小心了。如前所述,同样是leading,可能代表两个不一样而且容易混淆的含义:一是填充在两行文字之间的铅条,二是两行文字基线之间的距离。
那么,CSS中的leading到底采用了哪个意思呢?答案是前者,即填充在两行文字间的铅条。请参考下面的示意图。
(图片出处:http://doctype.com/calculating-lineheight-from-comp)
CSS 2.1第10.8.1节(http://www.w3.org/TR/CSS21/visudet.html#leading)明确规定,leading = line-height
- font-size
(参考上图),其中一半leading加到文字上方,另一半leading加到文字下方。这一点与前面提到的排版软件对leading的实现有所不同,排版软件一般把leading加到文字上方。比如,如果字体大小是10点,而行距为18点,则多出的8点在InDesign中会被加在文字上方(为清晰起见,这里为文本加了下划线)。
而在CSS中,leading(0.8倍font-size
的计算值)被平均分成了两半,分别加到文本行上方和下方。
上图的HTML和CSS代码分别如下所示。HTML:
<h3>The way C works</h3> <div> Computers really only understand one language: machine code, <span>a binary stream of 1s and 0s</span>. You convert your C code into machine code with the aid of a compiler. </div>
CSS:
div { line-height: 1.2; /*省略其他样式*/ } span { line-height: 2; /*省略其他样式*/ }
另外,CSS 2.1还建议把line-height
属性的默认值,也就是normal
值设定为字体大小的1.0到1.2倍。这也是为什么把块级文本元素的上下外边距都去掉(margin:0;
),其元素盒子仍然比字体还高的原因。Eric Meyer著名的CSS重置样式表(http://meyerweb.com/eric/tools/css/reset/)把根元素body
的line-height
重置为1
,这相当于把所有元素行高中的leading重置为0。
综上所述,说“line-height
属性对应于印刷行业常说的leading”还是有问题的。准确的表述应该是:“line-height
属性包含了/实现了印刷行业常说的leading。”至于这个leading在《CSS设计师指南(第3版)》中被翻译成了什么,上下文还讲了些什么,请购买电子版或即将出版的纸质书看一看吧。
最后的话
当然,希望读者买书看只是开个玩笑。只要你能看完这篇文章,买不买这本书看并不重要。重要的是你已经真正理解了leading这个术语的几种含义。而更重要的是,当你看到译者因为原书中一句话表达不当,就会查几天资料,而且还能写出这么长的一篇文章来,你会明白翻译不容易,翻译准确、翻译好更不容易。
很多时候,一本书翻译得好不好,除了译者既有的知识储备和文字功底,更多的还要依赖译者求真的态度和坚韧的毅力。我不敢说《CSS设计师指南(第3版)》中没有错误,而只是想说一本好书的问世并非外界想象得那么轻而易举。但这本书(我已经翻译了一半了)的的确确是学习CSS的难得好书,我会尽力把它译好,也希望看了此文的诸君支持一下它。比如,在微博上转发一下,或者向学习CSS的朋友推荐一下。一方面为了让我的努力能让更多读者受益,另一方面也为了让真正的好书不被其他滥书埋没。相信大家的举手之劳,就能让好书惠及更多读者。谢谢!
作者:李松峰
本文原文链接地址:http://www.ituring.com.cn/article/18076
发表评论
-
《每个人都会死,但我总以为自己不会》让我直面死亡
2013-10-31 15:24 1129一般人看到的都是生活 ... -
介绍Ext JS 4.2的新特性的《深入浅出Ext JS》上市
2013-10-10 11:36 1128以用户为中心的时代,应用的界面外观变得越来越重要。然而, ... -
十一阅读攻略:和土豪做朋友,告别穷屌丝,迎接高富帅,成功逆袭!
2013-09-30 12:41 1121盼望着、盼望着,十一的脚步近了,心情好起来了,长假到了。各种 ... -
《你不可不知的50个互联网知识》之社交网站
2013-09-25 14:34 1325你不可不知的50个互联网知识 从书名看上去,这好像是一 ... -
回顾一代枭雄山内溥带领下的任天堂
2013-09-22 14:28 1338原任天堂社长山内溥 ... -
精益化设计:把敏捷方法和Lean UX相结合
2013-09-12 13:51 849敏捷方法已经成为了主流。同时,Kindle和iPhone ... -
图灵九月书讯 ——金秋时节推荐给程序员们的书
2013-09-09 16:02 850[+]查看原图 9月,收获的季节,去掉了夏日的浮躁,该静下 ... -
诺基亚远去,《惊奇UCD》带你重塑用户体验
2013-08-28 09:57 669我所说的成功的用户 ... -
一场属于HTML5守望者的盛宴——记图灵参加HTML5峰会
2013-08-16 10:44 5872013年8月,北京正是一个火热的季节。一场火热的盛会,HT ... -
《你不可不知的50个建筑学知识》之哥特式建筑
2013-08-16 09:49 766[+]查看原图 你不可不知的50个建筑学知识 一听到哥特 ... -
数据分析师们的不可不读的信息图与数据可视化图书
2013-08-13 10:52 770信息图(Infographics)和 ... -
程序员的情人节故事
2013-08-13 10:31 668七夕情人节,IT界的朋友你打算怎么过? 请看:程序员的情人 ... -
《你不可不知的50个基因秘密》之同性恋取向
2013-08-07 16:04 953[+]查看原图 你不可不知的50个基因秘密 近来,公开出 ... -
图灵八月书讯 ——技术图书嘉年华
2013-08-07 16:03 611[+]查看原图 8月,炎炎夏日@图灵教育给大家带来了很多重 ... -
详解学习C#的方法和步骤
2013-07-17 09:10 588如果你已经有较多的面向对象开发经验,跳过以下这两步: 第一 ... -
《黑客与画家》最新书评整理
2013-06-06 09:42 542很多人翻开了这本书,他们认真的写着书评 ... -
Mission Impossible——《图灵的秘密》读后感
2013-04-15 13:18 1122《图灵的秘密》是关于 ... -
蛇年,你使用Python语言编程了吗?
2013-03-27 16:32 924按照我们中国农历的说法,今年是蛇年,也可以说是python的 ... -
精益,浓缩版 (来自《精益创业实战(第2版)》译者张玳 )
2013-02-28 08:16 831每个人都知道精益,都 ... -
精益创业实战
2013-02-25 09:10 1066要想用好一套系统的方法,你必须先透彻地理解这套方法的“道”和 ...
相关推荐
在CSS的世界里,"Leading"是一个古老的排版术语,它源于传统的印刷行业,特别是在铅活字印刷时代。"Leading"这个词来源于英文,指的是在两行文本之间插入的铅条,用来增加行间的空白,从而创造出适当的行间距。在...
CSS花园英文原版,关于CSS的
书中,Lea Verou通过她的亲身经验与独到见解,为读者揭开了CSS的神秘面纱。这些见解不仅展示了CSS强大的功能,也反映了其深层的复杂性。作者并非简单地介绍CSS语言,而是将其作为解决问题的工具,提供了许多设计原则...
例如,可以使用`:hover`伪类改变鼠标悬停在刮刮乐区域时的视觉反馈,或者使用CSS3的transition和animation属性创建动态效果。 在这个实例代码中,`09_canvas_guaguale`可能是一个包含具体实现的文件,可能包括HTML...
在CSS3方面,我们可以使用样式规则来美化这个拖放区域,例如设置边框、背景色、过渡效果等,使得拖放操作更加吸引人。此外,通过监听`dragenter`, `dragover`, 和 `dragleave`事件,我们可以动态改变dropzone的样式...
《CSS权威指南》第四版是CSS领域的重要著作,作者Eric A. Meyer凭借其深厚的行业经验和智慧,对CSS的各个方面进行了详尽的探讨。 本书从基础讲起,逐步深入到CSS的核心概念与应用。CSS权威指南第四版涵盖了CSS的...
为了构建3D立方体,我们需要创建六个面,每个面都是一个独立的div元素,并应用相应的CSS样式。这些面会被定位并旋转到正确的位置,形成一个完整的立方体。CSS3的`perspective`属性用于设置观察者到3D元素的距离,这...
通过分析这些代码,你可以进一步了解和学习如何将理论知识应用到实际项目中。 总的来说,HTML5的`<progress>`元素和CSS3的样式能力为我们创建美观且实用的进度条提供了便利。结合JavaScript,我们可以创建出与用户...
### 精彩绝伦的CSS:Professional Techniques for Modern Layout #### 书籍概述 《精彩绝伦的CSS:Professional Techniques for Modern Layout》是一本由CSS领域著名专家Eric A. Meyer撰写的著作,该书深入浅出地...
《图解CSS3核心技术与案例实战》PDF,配套源代码。《图解CSS3核心技术与案例实战》将CSS3特性按模块功能分类,通过理论、图解、实战的方式向大家阐释CSS3每个特性功能。能帮助从事CSS3开发的前端工程师 系统掌握CSS3...
sheets-of-paper-a4.css:A4纸(21cm × 29.7cm) sheets-of-paper-a3.css:A3纸(29.7cm × 42cm) sheets-of-paper-usletter.css:US letter(21.6cm × 27.9cm) sheets-of-paper-uslegal.css:US legal(21.6cm × ...
其内置的CSS类使得添加样式变得简单,例如,你可以通过添加"class='btn btn-primary'"来创建一个基本的主色按钮。 为了更好地利用Bootstrap,你需要了解其基本的HTML结构,比如如何创建导航栏、如何使用栅格系统...
3D旋转木马效果相册利用了CSS3的transform属性,尤其是rotateY()和perspective属性,这两个属性结合可以创建出立体的3D旋转效果。rotateY()函数负责沿着Y轴进行旋转,而perspective属性则设置观察者到3D变换原点的...
本书将最有用的CSS技术汇总在一起,在介绍基本的CSS概念和最佳实践之后,讨论了核心的CSS技术,例如图像、链接、列表操纵、表单设计、数据表格设计以及纯CSS布局。每一章内容由浅入深,直到建立比较复杂的示例。之后...
- 动态生成CSS:在服务器端,可以通过Java生成动态CSS,根据用户需求或逻辑条件,组合不同的样式规则,然后将其输出到HTTP响应中。 - 更新CSS文件:如果需要在运行时更新CSS文件,可以先读取文件,修改内容,然后...
《CSS揭秘》是一本深入探讨CSS技术的权威书籍,它以独特的视角揭示了许多不为人知的CSS技巧和高级用法。这本书旨在帮助开发者们更好地掌握...现在,就让我们一起打开这本CSS的宝典,揭开它神秘的面纱,探索无限可能吧!
从给定的HTML和CSS代码片段中,我们可以深入解析并学习到关于CSS样式的几个关键知识点,特别是关于按钮样式的设计。下面将详细解释这些知识点,包括样式定义、颜色与渐变效果的应用、阴影效果以及边框和内边距的设置...