`
Rod_johnson
  • 浏览: 73832 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

HTML 的空白符处理规则

css 
阅读更多

HTML 中的“空白符”包括空格 (space)、制表符 (tab)、换行符 (CR/LF) 三种。

我们知道,在默认情况下,HTML 源码中的空白符均被显示为空格,并且连续的多个空白符会被视为一个,或者说,连续的多个空白符会被合并。

然而在有些时候,我们希望 HTML 源码中的多个连续空格在网页浏览器中可以真实地呈现,或者需要源码中的换行符能起到真正的换行作用。于是,我们发现了 <pre> 标签,它可以真实还原它内部文本的空白符的真实情况。

于是我们经常会把一段表示计算机代码的文本放进 <pre> 标签中,它们在浏览器中会表现出自身的空格缩进和换行效果,而不需要我们增加额外的样式和标签来控制它的缩进和换行。

随着对 CSS 的了解不断深入,我们发现,原来这一切都是 white-space 属性在安排。<pre> 元素之所以如此神奇,是因为它自身具有 {white-space: pre;} 这一默认样式。

white-space 属性

CSS 中的 white-space 属性用于设置文本空白符的处理规则,这其中包括:是否合并空白符、是否保留换行符、是否允许自动换行。各属性值的不同行为如下表所示:

white-space 属性值一览表 

 

属性值 空白符 换行符 自动换行 最早出现于
normal 合并 忽略 允许 CSS 1
nowrap 合并 忽略 不允许 CSS 1
pre 保留 保留 不允许 CSS 1
pre-wrap 保留 保留 允许 CSS 2.1
pre-line 合并 保留 允许 CSS 2.1

:在 CSS1/2 下,white-space 属性只可应用于块级元素;在 CSS 2.1 下,可应用于所有元素。)

如果我们需要某个容器元素具有类似 <pre> 元素的空白符处理行为,则为它设置 {white-space: pre;} 样式即可。

对 pre-wrap 的需求

我们先解释一下上述表格中的“自动换行”行为,它是指某元素内部的文本流按照文本方向排版,当文本流遇到限制其继续延伸的边界时,是否换行。“不允许自动换行”则意味着文本流会溢出该元素。

因此,{white-space: pre;} 样式有时候并不能满足我们的期望。比如,在某些不需要特别严谨的场合,或者排版某些对换行不敏感的代码片断(比如 HTML 或 CSS)的时候,我们不希望代码片段中的一行长代码令它的容器元素产生水平滚动条,因为那样不便阅读。我们希望在这种情况下,长代码自动换行就好。

这时,对照一下上表中各属性值的不同行为特征,我们会发现 pre-wrap 这个属性值脱颖而出——它正是我们所需要的。

分享到:
评论

相关推荐

    网页中换行符的处理

    "网页中换行符的处理" 网页中换行符的处理是指...网页中换行符的处理需要考虑到 HTML 标签的使用、WORD 文档的处理、自动换行的概念、白空格的处理等,并使用 CSS 中的 white-space 属性来设置文本空白符的处理规则。

    空格回车制表符处理,HTML代码简单处理

    总结来说,处理HTML代码中的空格、回车和制表符涉及了HTML解析规则、字符串操作、CSS样式控制、JavaScript编程和服务器端处理等多个方面。了解这些知识点对于编写整洁、有效的网页代码至关重要。而`strFormat.h`这样...

    IE6,IE7下实现white-space:pre-wrap

    HTML 的空白符处理规则 HTML 中的“空白符”包括空格 (space)、制表符 (tab)、换行符 (CR/LF) 三种。 我们知道,在默认情况下,HTML 源码中的空白符均被显示为空格,并且连续的多个空白符会被视为一个,或者说,连续...

    HTML压缩代码--用VB编写,可以把HTML文件尺寸减小

    - **删除空白字符**:通过正则表达式或其他字符串处理方式,删除HTML源码中的空格、制表符和多余的换行符。 - **压缩注释**:移除非必要的注释,保留可能对代码运行有影响的注释。 - **优化标签**:简化HTML标签...

    notepad++ 写html的最有效自动排版插件

    5. **清理注释和空白**:Tidy2还可以删除不必要的空格、制表符和换行,进一步优化代码的体积。 在Notepad++中使用Tidy2插件的方法如下: 1. **安装Tidy2**:首先,你需要下载Tidy2的DLL文件,如压缩包中的"Tidy2....

    CSS中的空白效果属性使用小结

    首先,white-space属性用于设置浏览器如何处理元素内的空白符。空白符包括空格、回车换行符(即\n)、制表符(即\t)等。white-space属性有以下几种取值: - normal:这是white-space属性的默认值,浏览器会忽略...

    Notepad++格式化HTML插件tidy2

    4. **自定义设置**:用户可以根据个人喜好或项目需求调整格式化规则,比如选择标签的关闭方式(自闭合或分开写)、缩进类型(空格或制表符)以及缩进的宽度等。 5. **批量处理**:如果你需要格式化多个HTML文件,...

    HTML压缩,压缩效率高,不错的.

    2. **处理HTML内容**:遍历每行内容,应用上述压缩规则。 3. **写入压缩后的HTML**:使用FileWriteLine函数将处理后的内容写入新文件。 4. **关闭文件**:使用FileClose函数关闭原始和压缩后的文件。 5. **提供...

    Java正则表达式面试题解析:探索复杂匹配规则与高效字符串处理

    使用`\s+`,`\s`代表任何空白字符,包括空格、制表符和换行符。 7. **匹配字符串中的非空白字符:** 使用`\S+`,`\S`是所有非空白字符的通配符。 8. **匹配字符串中的字母字符:** 使用`[a-zA-Z]+`,这将匹配...

    html dom修改代码

    5. **预处理器**:使用如Sass或Less这样的CSS预处理器,它们允许你在编译时处理空白,例如在Sass中使用`@include`指令时,可以避免换行符影响最终CSS输出。 总之,HTML DOM提供了一套强大的工具来处理HTML文档的...

    HTML5中对id属性的定义与规定

    根据HTML5标准规范,`id`属性至少需要由一个字符组成,并且不允许包含任何空白字符(如空格、制表符等)。这一规定旨在确保`id`属性值的简洁性和有效性,避免因特殊字符导致的解析错误。开发者应尽量使用有意义且...

    易语言-html格式化源码(tab符自动缩进)

    HTML格式化是指将原始的、未经整理的HTML代码通过一定的规则进行排列和美化,使其符合一定的编码规范,如适当的缩进、换行和注释。这有助于提高代码的可读性,让开发者更容易理解和维护代码。在易语言中实现HTML格式...

    正则通用规则

    2. **阻止不必要的文件类型处理**:为了避免ASP.NET对某些非HTML类型的文件进行处理,如图片、PDF等,可以在重写规则的开始处添加一条规则,停止对特定扩展名的处理。例如: ```xml ^(/.+(\.gif|\.png|\.jpg|\.ico...

    HTML-CSS.md

    - **空白折叠**: 多个连续的空格会被浏览器视为一个空格处理。 - **标签闭合**: 所有的标签都必须闭合,这是HTML文档结构完整性的关键。 #### 四、HTML结构示例 ```html &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; , ...

    易语言-易语言过滤HTML,JS,CSS,空格,换行符

    易语言提供了多种字符串处理函数,例如“字符串删除前导空白”、“字符串删除尾部空白”以及“字符串替换”,可以用来删除或替换多余的空格和换行符,使得文本更加整洁。 在实现这个功能时,一般会遵循以下步骤: 1...

    空白测试

    空白测试在IT行业中,特别是在网页开发中,是一个重要的概念,主要关注的是元素之间的空白处理,如何展示文本和元素之间的空格、换行以及制表符。这个主题与HTML紧密相关,因为HTML是网页内容的基础语言,它定义了...

    Html_Js_cssWeb基础教程.pdf

    - **HTML的空格规则**:解释HTML如何处理空格和换行,以及如何在文本中插入空格。 - **HTML中使用注释**:介绍如何在HTML文档中添加注释,以便于后期维护和调试。 - **在HTML中使用字符实体**:讲解特殊字符如版权...

    【Python网络爬虫】python爬虫用正则表达式进行数据清洗与处理.txt

    通过定义特定的规则,我们可以利用它来匹配、搜索、替换符合该模式的文本。Python内置了`re`模块来支持正则表达式的使用,该模块提供了多种方法来处理正则表达式相关的任务。 #### 使用正则表达式提取数据 在...

Global site tag (gtag.js) - Google Analytics