|
以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 XSL/XSLT/XSL-FO/CSS 』 (http://bbs.xml.org.cn/list.asp?boardid=8) ---- 技巧:组合和替换 xml-stylesheet 处理指令(转) (http://bbs.xml.org.cn/dispbbs.asp?boardid=8&rootid=&id=21411) |
|
-- 作者:菜籽 -- 发布时间:8/23/2005 8:09:00 PM -- 技巧:组合和替换 xml-stylesheet 处理指令(转) 在文档序言中插入多个 xml-stylesheet 处理指令,为不同用户提供不同的视图。本文还将说明如何包括伪属性来调整表示。 把内容与表示分离是 XML 的一个主要目标,XML 完美地实现了这一目标。一个文档并不限于只使用一个样式表,可以针对不同读者和环境提供多个样式表。本文将说明如何在 XML 文档序言中包含多个 xml-stylesheet 处理指令,这些指令分别指向用于不同上下文的不同样式表。 xml-stylesheet 处理指令 多数 XML 开发人员都非常熟悉 xml-stylesheet 处理指令: <?xml-stylesheet type="text/css" href="mystyles.css"?> 但不那么众所周知的是,并不限定您只使用一个样式表。序言中可以包括多个 xml-stylesheet 处理指令。如果其中有多个指令指向 CSS,那么可以将每个样式表中的规则组合在一起。这种行为非常适合模块化。比如,可以导入一个样式表来处理文档中数学方面的样式,并导入另一个样式表来设置文档中的文本样式: <?xml-stylesheet type="text/css" href="mathstyles.css"?> 使用指向不同 XSLT 样式表或者同时包含指向 XSLT 样式表和 CSS 样式表的 xml-stylesheet 处理指令也是可能的。但是,我不建议这样做。浏览器是不一致的,甚至无法预测会选择哪一个样式表,虽然通常不会优先选择 XSLT 样式表。
伪属性 之所以称为伪属性,是因为处理指令不是元素,只有元素才能有属性。 比如,下面两个处理指令规定了默认表示和大字体的替代表示: <?xml-stylesheet type="text/css" href="regular.css"?> <?xml-stylesheet type="text/css" title="Regular fonts"
xml-stylesheet 处理指令还可以使用 media 伪属性,表明样式表适用的环境。比如,可以用一个样式表格式化文档,在一般的桌面或膝上监视器上显示文档,并用另一个样式表在纸上打印该文档,第三个样式表则将文档投影到面对听众的墙上。下面的文档序言提供了所有这三种样式选择: <xml version="1.0"?> media 伪属性定义了 8 个值: screen —— 最常见,现代桌面或膝上计算机的显示器。 <xml-stylesheet type="text/css" media="handheld, screen" 最后,还可以为这个伪属性定义新的、自定义的值。比如,可使用 three-d 这样的值来引用一个用于显示器的样式表,该显示器使用两个嵌套 LCD 面板来表示三维图像。但是,不是所有浏览器都能识别这个值。这一功能吸引的主要是浏览器厂商,他们可以定义自定义的值来识别自己使用的扩展,对单个 Web 开发人员来说,这一功能没有多少用处。
结束语 XML 的最初目标之一是将内容与表示分离。它允许对同一文档应用多个样式表,从而为不同的用户提供不同的视图。在文档中添加多个 xml-stylesheet 处理指令是实现该任务的一种方法。
|
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
5,535.156ms |