|
|
|
前页 后页 目录 元素 特性 风格页目录
风格页是网页设计者如何工作中的一个主要的突破, 它扩展了他们改良他们页面的能 力。Web 被构想于科技的环境中, 用户关心的是它的文档的内容然后是它的展现。自 从人们在宽广的人生道路上发现了Web, HTML的限制成为电脑继续受到挫折的根源。这 些作者曾经对于纸上谈兵(译者: 本来是指在纸介质上)有充分的控制权。他们学习如 何在HTML 体裁的限制上打擦边球。这个意图是好的- 为了提高网页的展现效果-但对于如此做的技术却不容乐观。这些技术在一部分人, 一部分时间面前工作, 但始终没有为所有的人, 所有的时间, 它们包括:
风格页把我们从网页的展示, 以及在过去的几年中对加到 HTML 的展现结构上过分地给予范围限制的状态带回到了一个易控状态。风格页使得在文本 行中指定加入空白的数量, 使用文字颜色及背景色, 控制字体尺寸和风格, 以及主管其它的细节都变得容易起来。 HTML 4.0 提供下列功能的支持:
注意: 在这份文档的发行和新媒体格式
章节中包含了关于风格页的更细节化信息..
把风格加到 HTMLHTML 文档可以直接包含风格页法则也可以调入风格页。HTML可以使用任何风格页语言。一 个简单的风格页语言已经足够满足大多数用户的需求, 但多种语言可以更好的适应高 级的特殊需要。HTML 不依赖于某一种指定的风格页语言。然而, 根据这份文档的目的, 我们将将提出一些 Cascading 风格页的举例说明([CSS1]), 缩写为 CSS (Cascading Style Sheets).设定缺省的风格页语言风格法则的语法是属于风格页的, 而不是HTML 的。由于提供风格页的用户代理器必 须剖析这些法则, 用户必须声明哪个风格页语言被使用。使用 META 元素来为一篇文档指定缺省的风格页语言。例如为了设置CSS为缺省, 可以在你的文档 的HEAD 中加入下列的声明: <META http-equiv="Content-Style-Type" content="text/css">缺省的风格页语言也可以被HTTP引导头设定。上面的META声明等价于HTTP引导头: Content-Style-Type: text/css如果两个或更多的META 声明或HTTP引导头指定了缺省的风格页语言, 最后一个占有优先权。在此计划中HTTP 引导头在文档HEAD 之前出现并被考虑。如果不存在明显的声明, 缺省风格页语言被设置为CSS。我们建议 编写工具提供一个显示的声明。 一致性HTML剖析必须能够区别HTML页面风格法则。HTML元素和特性在风格页数据的 开始部分定义。 风格页数据的结尾由开口结束标记包含(</) 然后紧跟一个SGML 名称开始字符([a-zA-Z])。 所有的风格页数据必须提供用户代理器可用的风格页处 理。 内层风格信息特性定义
style 特性指定一个单纯元素的 风格信息。风格信息通过使用缺省风格页语言
来指定。
这个例程指定了一个特殊段落的文字的颜色和字体大小信息。
<P type="text/css" style="font-size: 12pt; color: fuschia">Aren't
style sheets wonderful?
注意 CSS 的声明语法: name : value. 属性定义由分号分列。
style 特性在你打算为一个单独HTML 元素提一个特定的风格时是适当的。 如果这个风格将被数个元素重复使用, 你应该考虑使用STYLE
元素。 根据其基本的灵活性, 可以把风格放在一个单独的风格页中。
引导风格信息:STYLE 元素<!ELEMENT STYLE - - CDATA?-- style info --> <!ATTLIST STYLE ?%i18n; -- lang, dir, for use with title -- ?type?CDATA?#REQUIRED -- Internet content type ?for style language -- ?media CDATA?#IMPLIED?-- designed for use with these media -- ?title CDATA?#IMPLIED?-- advisory title -- ?>开始标记: 需要, 结束标记: 需 要 特性定义
在 它 处 定 义 的 特 性
STYLE
元 素 允 许 作 者 在 文 档 引 导 中 放 置 风 格 页 法 则. HTML 允 许 任
何 在 文 档 的 HEAD
部 分 中 有 任 意 数 量 的 STYLE
元 素.
不 提 供 风 格 页 的 用 户 代 理 器, 或 不 提 供 由 STYLE 元 素 指 定 的 风 格 页 的 用 户 代 理 器 必 须 隐 藏 STYLE 元 素 的 内 容. 把 其 中 的 内 容 作 为 文 档 文 本 来 渲 染 是 错 误 的. 某 些 非 一 致 性 用 户 代 理 器 风 格 页 语 言 提 供 隐藏内容 的 语 法. 一 些 风 格 页 的 履 行 可 以 允 许 在 STYLE 元 素 中 有 style 特 性 中 更 多 样 的 变 化. 例 如, 在 CSS 中, 可 以 在 STYLE 元 素 中 声 明 的 法 则 为:
<HEAD>
?lt;STYLE type="text/css">
H1 {border-width: 1; border: solid; text-align: center}
?lt;/STYLE>
</HEAD>
为 了 指 定 这 个 风 格 信 息 只 提 供 给 某 个 特 殊 类 的 H1
元 素, 我 们 如 下 修 整:
<HEAD>
?lt;STYLE type="text/css">
H1.myclass {border-width: 1; border: solid; text-align: center}
?lt;/STYLE>
</HEAD>
<BODY>
?lt;H1 class="myclass"> This H1 is affected by our style </H1>
?lt;H1> This one is not affected by our style </H1>
</BODY>
最 后, 为 了 限 制 风 格 信 息 只 用 于 单 个 的 H1
实 例, 设 定id 特
性:
<HEAD>
?lt;STYLE type="text/css">
H1.myid {border-width: 1; border: solid; text-align: center}
?lt;/STYLE>
</HEAD>
<BODY>
?lt;H1 class="myclass"> This H1 is not affected </H1>
?lt;H1 id="myid"> This H1 is affected by style </H1>
?lt;H1> This H1 is not affected </H1>
</BODY>
虽 然 风 格 页 信 息 可 设 定 给 几 乎 所 有 的 HTML
元 素, 有 两 个 元 素 有 其 特 殊 的 用 处 因 为 它 们 没 有 任 何 预 定
的 的 陈 述. 因 为 DIV
和 SPAN 元 素 只 定
义 结 构, 当 它 和 风 格 页 绑 定 的 时 候, 允 许 用 户 无 限 地 扩 展
HTML.
有 下 面 的 例 程 中, 我 们 使 用 SPAN
元 素 来 设 定 一 个 段 落 的 前 几 个 字 为 small caps 字 体.
<HEAD>
?lt;STYLE type="text/css">
?SPAN.sc-ex { font-variant: small-caps }
?lt;/STYLE>
</HEAD>
<BODY>
?<P><SPAN id="sc-ex">The first</SPAN> few words of
?this paragraph are in small-caps.
</BODY>
在 下 面 的 例 程 中, 我 们 使 用 DIV
和 class 特 性 来
设 定 一 系 列 段 落 的 文 字 的 对 齐 方 式 来 作 为 一 篇?科 技 论 文
的 摘 要 章 节. 这 个 风 格 信 息 可 以 在 文 档 的 任 何 地 方 通 过 设
置 class 特 性 而
重 复 使 用.
<HEAD>
?lt;STYLE type="text/css">
DIV.Abstract { text-align: justify }
?lt;/STYLE>
</HEAD>
<BODY>
?lt;DIV class="Abstract">
<P>The Chieftain product range is our market winner for
the coming year. This report sets out how to position
Chieftain against competing products.
<P>Chieftain replaces the Commander range, which will
remain on the price list until further notice.
?lt;/DIV>
</BODY>
媒体格式HTML 允 许 作 者 设 计 不 依 赖 作 何 指 定 展 示 媒 体 的 文 档. 因 此, 用 户 可 以 在 广 泛 的 不 同 的 用 户 代 理 器 上 浏 览 Web: 个 人 电 脑 及 工 作 站 的 图 像 显 示 器, 电 视 的 转 换 盒 (set-top boxes), 特 殊 的 可 移 动 电 话 和 个 人 输 入 设 备, 语 音 浏 临 器 以 及 盲 人 的 点 阵 感 知 设 备.? media
特 性 指 定 了 希 望 的 风 格 法 则 的 输 出 途 径. 通 过 设 定 media,
作 者 可 以 让 用 户 代 理 器 避 免 从 网 络 上 取 得 不 提 供 设 备 的
风 格 页.
下 面 的 例 程 声 明 了 提 供 给 所 有 的 H1
元 素. 当 在 计 算 机 屏 幕 显 示 的 时 候, 所 有 的 实 例 都 将 居 中
并 且 是 蓝 色 的. 在 打 印 时, 所 有 的 实 例 都 居 中. 我 们 同 时 为
语 音 系 统 定 义 一 个 不 一 样 的 风 格.
<HEAD>
?lt;STYLE type="text/css" media="screen">
?H1 { color: blue}
?lt;/STYLE>
?lt;STYLE type="text/css" media="screen, print">
H1 { text-align: center }
?lt;/STYLE>
?lt;STYLE type="text/acss" media="speech">
H1 { cue-before: url(bell.aiff); cue-after: url(dong.wav)}
?lt;/STYLE>
</HEAD>
当 媒 体 控 制 提 供 给 外 部 风 格 页 是 时 是 有
趣 的, 因 为 用 户 代 理 器 只 在 这 些 风 格 页 提 供 给 当 前 设 备 的
情 况 下 从 网 格 上 取 得 这 些 风 格 页.
查 看 下 面 的 章 节 来 获 知 更 多 的 关 于 外 部 风 格 页 的 信 息.
先 前 的 例 程 可 以 通 过 media 特 性 的
连 接 来 写 成 指 定 外 部 风 格 页 (用 STYLE
元 素 来 代 替): 只 有 当 这 些 风 格 页 与 目 标 媒 体 相 宜 时 才 取
得.
<HEAD> <LINK href="doc1-screen.css" rel="stylesheet"? type="text/css" media="screen"> <LINK href="doc1-print.css" rel="stylesheet"? type="text/css" media="print"> <LINK href="doc1-speech.css" rel="stylesheet" type="text/css" media="speech">? </HEAD> 外部风格页风 格 页 可 与 HTML 文 档 单 独 定 义. 这 是 提 供 这 个 能 力 的 好 处:
当 风 格 页 允 许 使 用 时, 用 户 可 以 得 到 风 格
的 选 择. 每 种 风 格 都 有 可 能 级 联 于 数 个 数 格 页. 某 些 风 格
页 (被 称 作?dfn>固 有?/dfn>) 的 提 供 不 依 赖 于 用 户 的 选 择 (它 尽
量 指 向 正 确 的 媒 体 格 式), 而 另 一 些 (被 称 作?dfn>轮 替)
只 提 供 于 特 殊 的 选 择. 一 个?dfn>缺 省 风 格 页 是 一 个 当
页 面 被?调 入 时 提 供 的 风 格 页, 但 用 户 可 以 乐 意 使 用?dfn>轮
替 风 格 页 的 话 可 以 禁 止 它.
?
使 用 LINK 元 素 来 设 定 一 个 外 部 风 格 页. 你 必 须 设 定 下 列 的 特 性:
在 此 例 中, 我 们 首 先 指 定 一 个 在 文 件 mystyle.css
中 的 外 部 风 格 页.
<LINK href="mystyle.css" rel="stylesheet">
设 定 title 特 性 把 风 格 页 从 固 有 转 变 成 缺 省, 用 户 代 理 器 应 当 提 供 用 户 提 供 有 名 风 格 页 的 可 能 性, 根 据 title 特 性. <LINK href="mystyle.css" title="Compact" rel="stylesheet"> 把 关 键 词 "alternate" 加 到 rel 特 性 使 之 成 为 一 个 轮 替 风 格 页. <LINK href="mystyle.css" title="Medium" rel="alternate stylesheet"> 所 有 的 轮 替 风 格 页 共 享 同 一 个 当 用 户 (通
过 用 户 代 理 器) 激 活 那 个 风 格 时 提 供 的 标 题. 具 有 不 同 标
题 的 风 格 页 将 不 在 这 种 情 况 下 被 提 供. 然 而, 没 有 title?
特 性 的风 格 页 将 一 直 提 供 (除 非 用 户 同 时 关 闭 了 风 格 页).
用 户 代 理 器 应 当 提 供 用 户 一 个 查 看 和 拣 选 轮 替 风 格 的 途 径. 我 们 建 议 使 用 title 特 性 值 来 命 名 每 种 选 择. Cascading 风 格 页 语 言 如 CSS 允 许 风 格 页 信 息 来 自 于 数 个 被 混 合 在 一 起 的 源. 然 而 并 非 所 有 的 风 格 页 语 言 提 供 cascading. 为 了 定 义 一 个 级 联 你 可 以 简 单 地 提 供 一 个?LINK 和/或 STYLE 元 素 的 次 序. 风 格 信 息 以 出 现 于 HEAD 的 元 素 次 序 级 联. 一 个 级 联 可 以 包 含 适 宜 不 同 媒 体 格 式 的 风 格 页. 用 户 代 理 器 有 责 任 来 过 滤 这 些 风 格 页 哪 些 是 当 前 情 况 下 不 适 合 的. 在 下 面 的 例 程 中 我 们 定 义 了 两 个 轮 替 风
格 页 并 命 名 为 "compact". 如 果 用 户 选 择?"compact" 风 格, 两 个 风
格 页 均 被 提 供, 就 如 同 "common.css" 风 格 页, (因 为 它 的 title
特 性 没 有 设 定 所 以 一 直 有 用 ). 如 果 用 户 选 择 "big print" 风
格, 文 件"bigprint.css" 和 "common.css" 将 被 用 户 代 理 器 应 用 而 "compact"
风 格 页 则 否.
<LINK rel="alternate stylesheet" title="compact" href="small-base.css">
<LINK rel="alternate stylesheet" title="compact" href="small-extras.css"> <LINK rel="alternate stylesheet" title="big print" href="bigprint.css"> <LINK rel=stylesheet href="common.css"> 这 里 是 一 个 有 LINK
和 STYLE 元 素 的 例?程.
?<LINK REL=stylesheet HREF="corporate.css">
?<LINK REL=stylesheet HREF="techreport.css">
?<STYLE TYPE="text/css">
?p.special { color: rgb(230, 100, 180) }
?</STYLE>
设定缺省有名风格使 用 META 元 素 来 设 定 文 档 的 缺 省 有 名 风 格. 例 如, 为 了 在 一 份 文 档 中 设 定 缺 省 有 名 风 格 为 "compact" (参 见 先 前 的 例 程), 可 以 在 HEAD 中 包 含 如 下 的 行:<META http-equiv="Default-Style" content="compact"> Default-Style: "compact" 继承和cascading当 用 户 代 理 器 打 算 渲 染 一 篇 文 档 的 时 候, 它 需 要 找 到 风 格 属 性 的 值, 例 如 字 体 名 称, 字 体 风 格, 尺 寸, 行 高, 文 本 颜 色 等 等. 完 整 的 结 构 取 决 于 风 格 页 语 言, 但 下 面 的 描 述 是 通 常 适 宜 的:cascading 结 构 在 大 量 的 风 格 法 则 均 直 接 提 供 给 一 个 元 素 的 时 候 被 使 用. 这 个 结 构 允 许 用 户 代 理 器 通 过 指 定 来 排 定 法 则 并 判 断 应 用 哪 个 法 则. 如 果 没 有 法 则 被 找 到, 下 一 步 取 决 于 这 个 风 格 属 性 否 可 以 继 承. 对 于 这 些 属 性 风 格 页 语 言 提 供 了 缺 省 值 以 备 在 特 定 的 元 素 没 有 明 确 的 法 则 时 之 用. 如 果 性 性 可 被 继 承, 用 户 代 理 器 立 刻 检 查 相 关 元 素 是 否 有 法 则 可 以 应 用. 这 个 处 理 直 到 找 到 相 宜 的 法 则. 这 个 结 构 允 许 风 格 页 紧 密 地 指 定. 例 如, 你 可 以 在 BODY 中 通 过 简 单 的 应 用 于 BODY 元 素 的 法 则 为 所 有 的 元 素 指 定 字 体. 在非一致性用户代理器中隐藏风格元素内容某 些 风 格 页 语 言 特 意 提 供 一 种 让 作 者 在
非 一 致 性 用 户 代 理 器 中 隐 藏 STYLE
元 素 内 容 的 语 法.
这 个 CSS 例 程 举 例 说 明 如 果 把 老 的 非 一 致
性 用 户 代 理 器 注 释 掉 STYLE
元 素 的 内 容 而 不 被 作 为 文 本 渲 染.
<STYLE type="text/css">
<!--
H1 { color: red }
P?{ color: blue}
-->
</STYLE>
通过 HTTP 引导头指定风格有 时 为 一 个 Web 服 务 器 设 置 一 个 可 被 节 点 上 成 组 的 页 面 使 用 的 风 格 页 是 适 当 的. HTTP?Link 引 导 头 与 LINK 元 素 有 相 同 的 效 果, 相 同 的 特 值?和 值. 多 个 Link 引 导 头 相 当 于 多 个 LINK 元 素 出 现 于 相 同 的 次 序. 因 此Link: REL=stylesheet HREF="corporate.css"相 当 于: <LINK rel="stylesheet" href="corporate.css">你 可 以 使 用 多 个 Link 引 导 头 来 指 定 多 个 轮 替 风 格,? 然 后 使 用 rel 特 性 来 判 断 缺 省 风 格. 在 下 面 的 例 程 中, "compact" 被 缺 省 运 用 因
为 在 rel 特 性 中 省
略 了 "alternate" 关 键 词.
这 在 HTML 文 档 通 过 电 子 邮 件 传 送 的 时 候 同 样 有 用. 某 些 邮
件 代 理 器 会 改 变 [RFC822]
引 导 头 的 次 序. 为 了 保 护?在 链 接 引 导 头 中 的 风 格 页 级 联 次
序 不 受 影 响, 你 可 以 在 同 一 个 引 导 域 中 合 并 数 个 实 例. 引
号 只 有 在 特 性 值 包 包 括 空 格 的 时 候 需 要. 使 用 SGML 作 为 字
符 参 照 是 HTTP 头 或 邮 件 头 不 被 允 许 及 在 传 输 可 能 受 到 影
响 时 的 另 种 办 法.
Link: rel="stylesheet" title="compact" href="compact.css" Link: rel="alternate stylesheet" title="big print" href="bigprint.css" 由 HTTP 头 暗 示 的 LINK 和 META 元 素 被 定 义 为 出 现 于 任 何 处 于 文 档 HEAD 的 显 式 LINK 和 META 之 前. |