关于html中文字空格以及换行符的处理

在阮一峰大神的博客中发现空格原来可以有多种处理方式,过去只知道用$nbsp;真是惭愧。长路漫漫吖

1、html里面的空格

在html里面,空格和换行符都会被处理成一个空格。这样在遇到需要多个空格或者换行的时候就会出现麻烦。这里根据阮一峰大神的博客做了整理。

2、怎样原样显示空格和换行符

主要有两种方法,一种是针对html标签,另一种是通过css样式

2.1 使用pre标签

pre标签不会对空格和换行符做处理,如下:
<pre>
寒蝉凄切,对长亭晚,骤雨初歇。
都门帐饮无绪,留恋处,兰舟催发。
执手相看泪眼,竟无语凝噎。
念去去,千里烟波,暮霭沉沉楚天阔。
多情自古伤离别,更那堪 冷落清秋节!
今宵酒醒何处?杨柳岸,晓风残月。
此去经年,应是良辰好景虚设。
便纵有千种风情,更与何人说
</pre>

效果如下:
效果图
可以看出,pre标签很好的保留了换行符,另外,在更那堪冷落清秋节!之间的空格也保留了下来。

2.2 使用white-space设置样式

white-space是一个用来设置文字的样式,平常我们常用的是white-space: nowrap;来阻止文字换行,其实除了这个以外还有其余几个。white-space有如下值可以设置:

  • white-space: inherit; 继承父级样式。
  • white-space: normal; 默认值,即平常见到的那种。
  • white-space: nowrap; 强制使文字一行显示。
  • white-space: pre; 设置后效果和 pre 标签一样。容器宽度太小时文字会超出容器。
  • white-space: pre-wrap; 就是在 pre 的基础上正常地进行换行。
  • white-space: pre-line; 就是在 normal 的基础上保留了换行符。但是空格还是和normal一样的处理。

前三个没什么好说的,主要是后三个。如下:

<style>
	p {
      width: 300px;
      white-space: pre;
      background-color: pink;
    }
</style>
<p>
寒蝉凄切,对长亭晚,骤雨初歇。
都门帐饮无绪,留恋处,兰舟催发。
执手相看泪眼,竟无语凝噎。
念去去,千里烟波,暮霭沉沉楚天阔。
多情自古伤离别,更那堪 冷落清秋节!
今宵酒醒何处?杨柳岸,晓风残月。
此去经年,应是良辰好景虚设。
便纵有千种风情,更与何人说
</p>
<p>
寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处,兰舟催发。
执手相看泪眼,竟无语凝噎。
念去去,千里烟波,暮霭沉沉楚天阔。
多情自古伤离别,更那堪 冷落清秋节!
今宵酒醒何处?杨柳岸,晓风残月。
此去经年,应是良辰好景虚设。
便纵有千种风情,更与何人说
</p>

效果如下:

在这里插入图片描述
在这里插入图片描述

<style>
	p {
      width: 300px;
      white-space: pre-wrap;
      background-color: pink;
    }
</style>
<p>
寒蝉凄切,对长亭晚,骤雨初歇。都门帐饮无绪,留恋处,兰舟催发。
执手相看泪眼,竟无语凝噎。
念去去,千里烟波,暮霭沉沉楚天阔。
多情自古伤离别,更那堪 冷落清秋节!
今宵酒醒何处?杨柳岸,晓风残月。
此去经年,应是良辰好景虚设。
便纵有千种风情,更与何人说
</p>

效果如下:

在这里插入图片描述
可以看出保留了换行符且还会根据元素宽度自动换行。

<style>
	p {
      width: 300px;
      white-space: pre-line;
      background-color: pink;
    }
</style>
<p>
    寒蝉凄切,对长亭晚,           骤雨初歇。
    都门帐饮无绪,留恋处,兰舟催发。
    执手相看泪眼,竟无语凝噎。
    念去去,千里烟波,暮霭沉沉楚天阔。
    多情自古伤离别,更那堪 冷落清秋节!
    今宵酒醒何处?杨柳岸,晓风残月。
    此去经年,应是良辰好景虚设。
    便纵有千种风情,更与何人说?
  </p>

效果如下:

在这里插入图片描述
可以看出,添加了pre-line会在normal的基础上保留换行符。这就是它们两者唯一的区别。

以上。

3、参考链接

[1] 阮一峰-CSS 的空格处理

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、强大的排版功能: 1 、可以选择对文本处理时是否删除空格,包括全角和半角空格,还可以选择 是否删除源文本一行内部的空格。 2 、可以选择哪些行不进行排版。 3 、是否删除连续的重复行。 4 、是否忽略以某些特定字符串开始的行。 5 、你可以选择是否进行全角- 〉半角字符的转换。 6 、是否将连续两个以上某个字符替换为其他字符串,比如将连续两个以上的 ‘。’替换为‘……’。 7 、是否对某些特定字符串进行替换,比如将‘[’替换为‘“’。 8 、你可以选择按照什么原则对源文本进行分段,就是说,源文本怎么确定 哪些行是同一段的。是按照源文本的空行,还是按照设定的一些行末字符,例如 ‘。’、‘!’等等,或者两者同时使用。 9 、是否矫正段内的双引号和单引号的匹配。 10 、段间是否插入空行。 11 、段首空几格。 12 、是否一段就是一行。 13 、如果一段不是一行的话,每行长度是多少,每行前面是否需要空出固定 的宽度,这里还可以设定避头尾字符,以便更符合文的编排方式。 14 、文本的第一行是否需要居。 15 、排版时是否忽略全部为英文的行。如果你的文章有程序片断,而且都 是英文。那么,这个功能就有用了。一个秘诀:如果你的注释都是用'//'开头的话, 把它加到“忽略行首为以下字符串的行”,这样,可以保证排版的时候不会把程 序和注释也一起排版。 二、强大的编辑功能: 1、可以删除半个文字符,破除乱码。 2、进行快速全局替换。支持多文件操作。 3、可以对所选择行进行整行左移或者整行右移。 4、可以对选定行按设定行宽进行左对齐、居、右对齐。 5、删除所有空行、删除开头几行、删除末尾几行。支持多文件操作。 6、Shift+Ctrl+数字可以定义书签,Ctrl+数字可以跳到该书签所在位置。 7、Ctrl+Z可以撤销操作,Shift+Ctrl+Z可以重复操作。次数可以自定义。 8、打开文本大小没有限制。 三、强大的转换功能: 1、GBBig5。加强了对GBK的兼容性,对于绝大多数常用字转换没问题。还可以 自行设定对冷僻字的转换,按词汇进行转换。同时可以设置读入文本或者粘贴文本时 自动把Big5码文本转换为GB码。支持多文件操作。 2、HTML->TEXT。可以设置读入文本或者粘贴文本时自动把HTML转换为TEXT。支 持多文件操作。 3、可以进行英文大小写、数字全半角转换。 四、贴心的剪贴文本功能: 设置常用的剪贴文本,编辑文件时省去很多重复劳动。本功能参考EditPlus2 制 作,并兼容EditPlus2 的剪贴文本文件,将这些文件拷入DreamEdit 目录下ClipText 子目录,重起DreamEdit 即可。您也可以自己参照这些文件创建自己的剪贴文本文件。 如果您觉得您的文件比较通用的话,别忘了寄给我一份,我可以整合到下一版的DreamEdit 去哦!这个功能多谢网友smplayer的推荐。 五、剪贴板监视功能: 可以设置剪贴板监视,对于其他程序剪贴到剪贴板的文本,可以选择粘贴到同 一个文档还是粘贴到新文档。 六、独特的导出功能: 对于排版后的文本可以按照用户给定的模板进行导出,用正文替换模板的[TEXT]。 如果你有大量格式相同只有正文不同的文件需要处理,这个功能恰到好处。 七、支持插件(PlugIn): 用户可以开发自己的插件,对文本进行特殊处理。比如我的插件可以通过WWW 方式把文本发到BBS 上。可以进行Base64解码。可以进行英文拼写检查。甚至可以 根据空格或者制表符,对所选择的文本进行行列转换。如果你想自己控制打印的话, 那就开发一个专门用于打印的插件。 八、简单的Email功能: 可以批量的通过Email 向支持Email Post的BBS发文章。也可以把它当成一个简 单的信件群发工具。 九、整合到IE的排版功能: 选择设置菜单的“注册DreamEdit 的IE插件”,DreamEdit 会在IE自动添加排 版按钮和菜单。使用条件:DreamEdit(2.3.5以上版)已经启动,并且该页面必须有 一个名为content 的TextArea。DreamEdit 会对该文本输入框的文本进行排版。如 果您想删除DreamEdit 而不留垃圾在注册表的话,在删除整个目录前,请选择设置菜 单“删除DreamEdit 的IE插件的注册信息”。 十、其他功能: 1、字符统计:对文、数字、空格、英文字符、英文标点、不可见字符分开统 计。 2、统一改变标题:对打开文件按照一定规则改变标题。 3、替换三个以上空格为回车:可用于对从网络上拷贝的文本进行分段处理。   4、文件拆分:按照文章的卷、章、回等等特定标记进行文件拆分。 5、文件合并:对于在窗口列表所选择的文本依次合并到所选择的第一个文件, 同时关闭其他文件。 6、保存最近打开文件列表。 7、可以设定常用目录,在文件列表用右键快速切换。 8、可以直接打开Zip文件,读取其文本,但不能保存到Zip文件
Table of Contents [内容列表] Preface [序] I. Getting Started [开始] 1. What is Smarty? [什么是Smaty?] 2. Installation [安装] Requirements [安装] Basic Installation [基本安装] Extended Setup [扩展设置] II. Smarty For Template Designers [模板设计者篇] 3. Basic Syntax [基本语法] Comments [注释] Functions [函数] Attributes [属性] Embedding Vars in Double Quotes [双引号里值的嵌入] Math [数学运算] 4. Variables [变量] Variables assigned from PHP [从PHP分配的变量] Variables loaded from config files [从配置文件读取的变量] {$smarty} reserved variable [{$smarty}保留变量] 5. Variable Modifiers [变量调节器] capitalize [首字符大写] count_characters [字符计数] cat [连接字符串] count_paragraphs [计算段数] count_sentences [计算句数] count_words [计算词数] date_format [格式化日期] default [默认值] escape [编码] indent [缩进] lower [小写] nl2br [换行符替换成 <br />] regex_replace [正则替换] replace [替换] spacify [插空] string_format [字符串格式化] strip [去除(多余空格)] strip_tags [去除html标签] truncate [截取] upper [大写] wordwrap [行宽约束] 6. Combining Modifiers [组合修改器] 7. Built-in Functions [内建函数] capture config_load foreach,foreachelse include include_php insert if,elseif,else ldelim,rdelim literal php section,sectionelse strip 8. Custom Functions [自定义函数] assign counter cycle debug eval fetch html_checkboxes html_image html_options html_radios html_select_date html_select_time html_table math mailto popup_init popup textformat 9. Config Files [配置文件] 10. Debugging Console [调试控制台] III. Smarty For Programmers [程序员篇] 11. Constants [常量] SMARTY_DIR [Smarty目录] 12. Variables [变量] $template_dir [模板目录变量] $compile_dir [编译目录变量] $config_dir [配置目录变量] $plugins_dir [插件目录变量] $debugging [调试变量] $debug_tpl [调试模板] $debugging_ctrl [调试控制变量] $global_assign [全局配置变量] $undefined [未定义变量] $autoload_filters [自动加载过滤器变量] $compile_check [编译检查变量] $force_compile [强迫编译变量] $caching [缓存变量] $cache_dir [缓存目录变量] $cache_lifetime [缓存生存时间变量] $cache_handler_func [缓存处理函数变量] $cache_modified_check [缓存修改检查变量] $config_overwrite [配置覆盖变量] $config_booleanize [配置布尔化变量] $config_read_hidden [配置读取隐藏变量] $config_fix_newlines [配置固定换行符变量] $default_template_handler_func [默认模板处理函数变量] $php_handling [php处理变量] $security [安全变量] $secure_dir [安全目录变量] $security_settings [安全配置变量] $trusted_dir [信任目录变量] $left_delimiter [左结束符变量] $right_delimiter [右结束符变量] $compiler_class [编译类变量] $request_vars_order [变量顺序变量] $request_use_auto_globals [自动全局变量] $compile_id [编译id变量] $use_sub_dirs [子目录变量] $default_modifiers [默认修正器变量] $default_resource_type [默认源类型变量] 13. Methods [方法] append [添加] append_by_ref [引用添加] assign [赋值] assign_by_ref [引用赋值] clear_all_assign [清除所有赋值] clear_all_cache [清除所有缓存] clear_assign [清除赋值] clear_cache [清除缓存] clear_compiled_tpl [清除已编译模板] clear_config [清除配置] config_load [加载配置] display [显示] fetch [取得输出的内容] get_config_vars [取配置变量的值] get_registered_object [取得已注册的对象] get_template_vars [取得模板变量的值] is_cached [是否已被缓存] load_filter [加载过滤器] register_block [注册一个块] register_compiler_function [注册编译函数] register_function [注册函数] register_modifier [注册修饰器] register_object [注册对象] register_outputfilter [注册输出过滤器] register_postfilter [注册提交过滤器] register_prefilter [注册预过滤器] register_resource [注册资源] trigger_error [触发错误] template_exists [模板是否存在] unregister_block [注销一个块] unregister_compiler_function [注销编译函数] unregister_function [注销函数] unregister_modifier [注销修饰器] unregister_object [注销对象] unregister_outputfilter [注销输出过滤器] unregister_postfilter [注销提交过滤器] unregister_prefilter [注销预过滤器] unregister_resource [注销资源] 14. Caching [缓存] Setting Up Caching [建立缓存] Multiple Caches Per Page [每页多个缓存] Cache Groups [缓存集合] Controlling Cacheability of Plugins' Output [控制插件输出的缓冲能力] 15. Advanced Features [高级特点] Objects [对象] Prefilters [预过滤器] Postfilters [后过滤器] Output Filters [输出滤镜] Cache Handler Function [缓冲处理函数] Resources [资源] 16. Extending Smarty With Plugins [以插件扩展Smarty] How Plugins Work [插件如何工作] Naming Conventions [命名约定] Writing Plugins [编写插件] Template Functions [模板函数] Modifiers [修正器] Block Functions [块函数] Compiler Functions [编译函数] Prefilters/Postfilters [预滤器/后滤器] Output Filters [输出过滤器] Resources [资源] Inserts [插入] IV. Appendixes [附录] 17. Troubleshooting [疑难解答] Smarty/PHP errors [Smarty/PHP 错误] 18. Tips & Tricks [使用技巧和经验] Blank Variable Handling [空白变量处理] Default Variable Handling [默认变量处理] Passing variable title to header template [传递变量标题给头模板] Dates [日期] WAP/WML Componentized Templates [组合的模板] Obfuscating E-mail Addresses [拒绝电子邮件地址] 19. Resources [相关资源] 20. BUGS [漏洞] 21. LIST 翻译人员列表

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值