【发布时间】:2011-03-11 09:28:22
【问题描述】:
CSS 'white-space' 属性是否应该能够影响块元素之间的空白?
例如,在下面以“Whitespace in the DOM”为例的文档中,</h1>和<p>之间有空格:
<!-- My document -->
<html>
<head>
<title>My Document</title>
</head>
<body>
<h1>Header</h1>
<p>
Paragraph
</p>
</body>
</html>
这个空格通常会被删除;例如the XHTML spec says that a conforming user agent must meet all of the following criteria:
在 'xml:space' 的元素中 属性设置为“保留”,则 用户代理必须保留所有空格 字符完整(除了 前导和尾随空格 字符,应删除)。 否则,处理空格 根据以下规则:
- 应删除块元素周围的所有空白。
- 块元素内的前导和尾随空格必须是 删除。
- 块元素中的换行符必须转换为空格 (“xml:space”属性除外 设置为“保留”)。
- 必须将一系列空白字符缩减为一个空格 字符(“xml:space”除外 属性设置为“保留”)。
我的问题如下:
如果我在
<body>上使用CSS white-space property,这是否能够保留块元素之间的空白(例如</h1>和<p>之间)?还是总是删除块之间的空白,而 white-space 属性只影响块内的空白?XHTML 规范说
<body>cannot directly contain PCDATA(即文本)。这是否意味着作为<body>标记的直接子级的空白(作为一种文本)总是无关紧要/被忽略,并且不能通过 CSS 启用?如果是,并且上例中</h1>和<p>之间的空格被忽略,因为它是<body>的直接子代,如果在 @ 中立即有一个<div style="white-space: pre">,该空格是否仍会被忽略987654339@ 并包含所有其他元素?The 'white-space' processing model 以“任何直接包含在块元素内(而不是内联元素内)的文本都应被视为匿名内联元素”开头。关于纯空白(没有文字的空白)我应该了解什么?
是否有关于删除内联元素中的空格的规则(如果有,该规则在哪里定义)?例如在以下序列中
<p>The <strong> lazy </strong> dog.</p>是否应该删除<strong>标记之后的空格? (HTML 4 规范有 a rule about this for line breaks;我想知道这条规则是否也适用于其他非行喙空白,以及是否在任何 XHTML 或 CSS 规范中提到/定义/允许/假定了这条规则。)
【问题讨论】:
标签: html css xhtml whitespace