网络编程
位置:首页>> 网络编程>> 网页设计>> 内联格式化模式(line-height原理)

内联格式化模式(line-height原理)

作者:dudo 来源:dudo博客 发布时间:2008-06-29 14:37:00 

标签:line-height,效果,文字,css

重要提示:

本文并非一篇简单地介绍内联格式模型(inline formatting model)的文章。相反,它是对内联格式(inline formatting)本质规则和过程 的扼要剖析,是对CSS2中规则的总结。本文的知识点十分密集,即使错过其中一个小小的知识点也可会导致根本性地误解。本文经过了CSS工作 组(CSS Working Group)和多个CSS组织(CSS cmmounity)反复推敲和检查,但是这并是说本文已经做到至善至美了。也可能有些情况这里没 有涉及到,同时有可能文中提到的一些名词术语对于新手来说存在一定理解上的困难。但是我坚信本文得出的结论是正确无疑的。如果你确定 本文存在某方面的谬误,请把你的观点写下来发信到www-style@w3.org进行讨论。谢谢!

前言:

为了清晰地描述内联格式模型(inline formatting model)的工作原理,弄清使用到的专业术语的具体含义非常重要。首先来看几个等式,然后是对这些术语的解释。

  •      em-box = font-size = content-area

  •      content-area + (half-)leading = inline box

  •      inline box(min/max) = line-box

其中, 

  • em-box = 指定字体中定义的em-box(文本本身盒模型的大小)

  • font-size = em-box中指定用于度量字体显示大小的数值

  • content-area = 在非置换元素中,盒模型是使用元素内每个字符的font-size的整体大小来描述的;在可置换元素中,则中元素的实际高度加上margin、border、padding的值;

  • (half-)leading = 每个元素由于font-sizeline-height的不同,在content-area的上方和下方产生的差值,并且上下方的差值相等的

  • inline box = 每个元素的(half-)leading和content-area之和;对于非转换元素,一个元素的inline-box的高度恰好等于它的line-height的值;对于可转换元素,一个元素的inline box高度则正好等于其实际高度加上所有的margin、border、padding等。

  • line-box=它的上下边界分别是行内所有inline-box的最高点和最低点。

上面的描述中所未涉及到的几点:

  • content-area和块级元素的内容盒框相似

  • 内联元素的背景会同时应用在元素content-area和padding上

  • 内联元素的边框是围绕在contend-area和padding之外的

  • 内联元素及其衍生盒模型的非转换元素中在垂直方向上应用margin将不会起作用(但是水平方向可以)

  • 可转换元素的margin和border会影响元素line-box的高度,因此也会影响到所在行的line-box高度

此外,inline box是根据vertical-align来处理对齐方式的。上面的说明中没有提到这一点,但是它却CSS2:10.8中介绍的规则。

结论:

在只有一行font-sizeline-height相等的内联非置换元素情况下同,解决起来比较简单。content-area直接通过font-size来定义,line-box的高度等于line-height。(后面会有更加充分的解释)
而在同时包含有可置换和非置换内联元素的情况下(什么是可置换、非可置换元素?),它们有不同的font-sizeline-height值,问题就得使用下面的方法来解决。对于每个元素来说,content-area的高度取决于每一个非可置换元素的font-size和可置换元素的实际高度加上所有的padding、border和margin。之后再加上leading,一半位于上部,一半位于下部。得出的这个数值就是inline box中用以计算对齐方式的数值。inline-box中顶部最高位置就是line-box的顶部,inline-box中底部的最低位置就是line-box中的底部(也就前面所说的line-box的上下边界由所以inline-box的最高和最底位置来决定)。

0
投稿

猜你喜欢

  • 半透明效果有时候会给页面增加不少色彩,特别是Vista盛行之后,半透明效果更加受推崇。在诸多可用于Web浏览的图片格式中,只有PNG格式和G
  • 如何做一个自己的QQ?这不是什么新鲜的东西,看看代码:refresh.htm<HTML><HEAD><titl
  • 管理SQL Server内在的帐户和密码时,我们很容易认为这一切都相当的安全。但实际上并非如此。在这里,我们列出了一些对于SQL Serve
  • 如果不是因为总监审查严格,一定要求这个细节解决掉,也许我也不会去深究根源性的解决办法,再此感谢MTIME负责而严格的同事。首先描述一下问题:
  • Update 语句Update 语句用于修改表中的数据。语法:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值P
  • 写这个的目地,主要是系统理下目前产品设计的流程,提醒自己尽量去避免一些常见的问题,也能让大家系统的了解天极网的产品设计流程。当然,不保证任何
  • 五、XML带来的好处 (1)更有意义的搜索 数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的
  • 作为一名网站开发WEB前端工程师,对自己开发的网站项目应该尽可能地对其性能进行优化,现在互联网上搜索到的网站性能优化多是翻译转载自 Yaho
  • 1、DOMWEB标准现在可真是热门中热门,不过下面讨论的是一个不符合标准的document.all[]。DOM--DOCUMENTOBJEC
  • 首先,FSO是FileSystemObject的简称。当然也就是我们的俗称FSO组件了,该组件可以用来处理驱动器、文件夹以及文件。它可以检测
  • 一、前言:当数据库服务器建立好以后,我们首先要做的不是考虑要在这个支持数据库的服务器运行哪些受MySQL提携的程序,而是当数据库遭到破坏后,
  • 以前在网上看到的最简单的拖动对象的代码,忘记作者叫什么了。原始代码在IE下有些小问题,并且声明了文档类型为xhtml 1.0后,在FF等非I
  • 1.11 – 添加缎带修饰网页局部模块中右上角的蓝色缎带修饰是这个网站界面设计中的一个亮点,只要合理的运用CSS、PNG透明图片和绝对定位属
  • MySQL4.1以前版本服务器只能使用单一字符集,从MySQL4.1版本开始,不仅服务器能够使用多种字符集,而且在服务器、数据库、数据表、数
  • 奥运来了,三大门户网站都加上了奥运主题。加上下面代码你的网站也拥有奥运主题了:<style type="text/
  • 数据完整性是任何数据库系统要保证的重点。不管系统计划得有多好,空数据值的问题总是存在。本文探讨了在SQL Server中处理这些值时涉及的3
  • 这些小东西是我在网上看到的就把它记下来了,可能以后会有用的:      &nbs
  • 在国外一博客看到的技巧,终于解决IE的这个老大难问题。我在IE的setAttribute bug也提到其解决方法,一是innerHTML,一
  • 1998年,W3C发布HTML 4.0 Specification,里面清清楚楚的写了每个标签的用法和语义。搜索引擎的算法参考了W3C的语义
  • 举例如下,一个服务器端的form 代码自动被解释成客户端代码:服务器端代码:     &l
手机版 网络编程 asp之家 www.aspxhome.com