层叠样式表第2级 CSS2规范开发手册 - WEB前端开发 专注前端开发,关注用户体验

7 媒介类型

    目录

7.1 媒介类型简介

    样式表最重要的一个特性是它规定了在不同的媒介上文档应该如何呈现:屏幕上,纸面上,带有语音合成器,带有盲文设备等等。

    某些CSS特性是只为特定的媒介而设计(如,'cue-before'属性是为语音用户端设计的)。偶尔地,不同媒介类型的样式表可以共享一个属性,不过对于那个属性要赋予不同的值。例如,'font-size'属性用于屏幕和打印媒介。不过这两个媒介是如此地不同,因此对于共同的属性需要不同的值;在计算机屏幕上的文档一般要用比纸面上的文档大一些的字体。经验也告诉我们,屏幕上无衬线字体要容易阅读一些,而在纸面上有衬线的字体要容易阅读一些。基于这些原因,有必要声明一个样式表——或样式表的一段——适用于特定的媒介类型。

7.2 指定媒介相关的样式表

    目前有两个方法来指定样式表的媒介相关性:

    @import规则定义在层叠一章。

7.2.1 @media规则

    一个@media规则以一系列规则(以花括号分割)来指定目标媒介类型(以逗号分割)。@media结构允许不同媒介的样式表规则存在于同一样式表中:

  @media print {
    BODY { font-size: 10pt }
  }
  @media screen {
    BODY { font-size: 12pt }
  }
  @media screen, print {
    BODY { line-height: 1.2 }
  }

7.3 可识别的媒介类型

    CSS媒介类型名称是一系列CSS属性。用户端如果声明支持一个媒介类型名,它必须实现适用于那个媒介类型的所有属性。

    CSS媒介类型名称的选择反映了相关的目标设备,而对于这些设备而言相关的属性是有意义的。下面的CSS媒介类型列表中,附加的说明不是正规的。它们只是给出一个感觉,让我们知道这一媒介类型应该引用什么样的设备。

all
适用于所有的设备。
aural
应用于语音合成器。参见语音样式表以获得详细说明。
braille
应用于盲文触摸式反馈设备。
embossed
应用于盲文页面打印机。
handheld
应用于手持设备(通常有小屏幕,单色,带宽有限制)。
print
应用于不透明的页面材料,以及文档在打印预览的状态。请参见页面媒介一章,那里有专用于页面媒介格式化的信息。
projection
应用于投影演示,例如投影仪或打印到透明胶片时。请参见页面媒介一章,那里有专用于页面媒介格式化的信息。
screen
主要应用于彩色计算机屏幕。
tty
应用于使用固定字符宽栅格的媒介,如电传,终端,或显示能力有限的手提设备。作者不应该在"tty"媒介类型中使用点单位
tv
应用于电视类型的设备(低分辨率,彩色,屏幕滚动能力有限,有声音)。

    媒介类型名是大小写敏感的。

    由于科技发展迅速,CSS2并不规定一个确定的可以用作@media值的媒介类型列表。

    注意。CSS以后的版本可能扩充这一列表。作者不应该依赖于还没有被CSS规范定义的媒介类型名。

7.3.1 媒介组

    每一个CSS属性定义都指定了与CSS一致的用户端应该实现的属性所适用的媒介类型。由于属性通常可以适用于若干个媒介,每一个属性的“适用媒介”一段列出了媒介组而不是单一的媒介类型。每一个属性适用于在定义中列出的媒介组中的所有媒介类型。

    CSS2定义了如下的媒介组:

    下面的表格说明了媒介组和媒介类型的关系:

媒介组和媒介类型的关系
媒介类型媒介组
  continuous/paged visual/aural/tactile grid/bitmap interactive/static
auralcontinuousauralN/Aboth
braillecontinuoustactilegridboth
embosspagedtactilegridboth
handheldbothvisualbothboth
printpagedvisualbitmapstatic
projectionpagedvisualbitmapstatic
screencontinuousvisualbitmapboth
ttycontinuousvisualgridboth
tvbothvisual, auralbitmapboth