CSS的长度单位(em)

CSS支持多种长度单位。它们可被分成两大类: 绝对长度单位(以不依赖于显示设备的绝对尺寸来定义长度); 相对长度(相对其它为浏览器所知的单位来定义长度)。

  绝对长度度量可使用五种单位:英寸(in)、厘米(cm)、毫米(mm)、磅(point,写作pt)、字高(pica,写作pc)。磅和字高通常被用作印刷单位,其中1pica=12pt。CSS把1pica定义为1/72in,也就是说,72pica=1in。这也是高品质打印机常用的 Adobe postscript 语言所采用的定义。
  CSS还支持以象素表示的“绝对”长度——象素(pixels)即为计算机显示屏上的一点。然而,由于象素密度和用户对显示器分辨率选择(同一显示屏幕可支持640*480的分辨率,也可支持1024*768的分辨率)的不同,象素的绝对大小会在不同显示器上有很大差异。这样,以象素表示的长度实际上与显示器有关。以象素作为计算机显示单位的优点在于象素是严格定义的单位。但是,当打印网络文档时,象素单位会带来问题。
  象英寸和厘米这样的绝对长度单位用在打印排版时非常有用,因为它们能提供在固定大小的纸面上布局文档时所需要的绝对定位。也正因为这个原因,绝对长度不宜在电子显示文档中使用,这是因为在6inches*4inches和21inches对角显示屏之中的显示将有所不同,并无法保证在给定的显示屏上浏览器能用固定的窗口区域(用户可选择窗口的大小)来显示文档。考虑到这样的差异,使用能随显示区大小或文本字体大小而自动调整的单位是再恰当不过了。所幸的是,有三种CSS长度单位能实现这一行为。

  相对长度度量可以有三种形式:em单位,ex单位和percentage(百分比)。em和ex单位相对于字体的大小来定义长度。em单位相对于实际字体的磅值来定义长度:这样,如果现在的字体大小为12pt,那么1.5em=18pt。相反,ex单位则是相对于字体的x高度来定义长度:即相对于当前字体中字母“x”的高度。这样,一个单位的ex大小既取决于字体的大小,也取决于字体族类型,因为在给定的磅值下,实际的x高度将随字体族不同而不同。
  目前来看,em单位比ex单位更为可靠:为了在不同浏览器之间获得最好的兼容性,最好还是使用em单位。但要注意的是,em单位和ex单位都会导致打印问题。
  百分比单位为第三种相对单位。这一单位把长度定义为相关长度的百分比值。按照CSS规范,相关长度既可是父单元字体的大小,也可是父类格式单元的宽度——各种情况依问题中特性的不同而不同。有一个极其重要的警告:现有的浏览器并不是相对于单元宽度来计算百分比值,因而也就不能正确地实现百分比长度。相反,所有的浏览器都把和字体无关的百分比长度计算为整个浏览器窗口宽度的百分比值。

  长度值的格式由一个符号('+'或'-',缺省时为'+')紧跟一个数字再跟一个单位标示符(一个两个字符的缩写)。有两种长度单位形式:相对和绝对单位。样式表用相对单位更容易控制从一个媒介到另一个的缩放比例(如从电脑到激光打印机)。百分比单位和关键值(如 'x-large')也有同样的优点。如下:

H1 { margin: 0.5em }元素字体高度
H1 { margin: 1ex }字母 'x' 的高度

  像素单位是相对于屏幕的图形分辨率。如果输出设备的像素密度与标准的计算机屏幕相差很多,用户将重新调整像素值。推荐的像素值是离读者一手臂长的距离用90dpi的像素密度。子元素继承计算结果值,而不是相对值,如:

BODY {
font-size: 12pt;
text-indent: 3em;
}
H1 { font-size: 15pt }

在上例中,'H1' 的 'text-indent' 值是 36pt,而不是 45pt 。

  • 0
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值