white-space 处理 textarea 文本内容的换行 空格

2023-12-26 09:48

本文主要是介绍white-space 处理 textarea 文本内容的换行 空格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

前端开发可能会遇到这样的场景,用户通过 <textarea> 文本域输入文本,前端拿到数据后需要对文本内容进行空白符处理,进行换行等。
如果直接就将字符串显示在界面中,得到的可能不是我们所期待的效果。
接下来记录通过 css 的 white-spaceword-break 实现文本处理空白格,文本换行。

二、默认情况下,文本空白符的处理

空白符,指的是空格、换行、制表符。

如下图,通过 <textarea> 输入几种测试格式的文本。
在这里插入图片描述

<style>.str {width: 300px;border: 1px solid #333;margin: 30px auto;padding: 10px;}
</style>
<div id="str" class="str"></div>
<script>// 从 textarea 拿到的数据const str = '哈哈哈\n嘎嘎嘎 哈哈哈\n嘎嘎嘎   哈哈哈哈\nProgress is the activity of today and the assurance of tomorrow . incomprehensibilitieeeeeeeeeeeeeeeeeeeeee\n哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇哇\n\n换两行'document.getElementById('str').textContent = str
</script>

将上面的代码运行结果进行截图:
在这里插入图片描述

从上图可以看到文本的显示并不是我们想要的效果,本来在文本域中换行的地方,实际上都没换行,而是一个空格。
这是因为默认情况下,所有空格、换行、制表符合并成一个空格,遇到边界文本自动换行。

三、word-break 实现处理空白符 实现换行

我们可以通过 css 的 word-break 来处理空白符。

1.nowrap

word-break: nowrap; 所有的空格、换行、制表符合并成一个空格,遇到边界,文本不换行,除非遇到 <br /> 标签。

在这里插入图片描述

如上图的效果(文字太长不好截图,中间的英文被我删除了一部分),连续出现的换行、空白、制表符会合并成一个,并且文本不会进行换行。

2.pre

pre,会保留所有的空白符(空格、换行、制表符),文本遇到边界不自动换行,类似 HTML 中的 <pre> 标签。

在这里插入图片描述

如上图效果,连续多个空白多都可以正常的出现,但是文本过长不会自动换行。

3.pre-line

word-break: pre-line; 会保留空格、换行、制表符,将连续出现的多个空白符合并为一个,文本遇到边界自动换行。

在这里插入图片描述

如上图效果,第三行本来有连续出现两个空格符,被合并成一个。连续出现的换行符正常显示,并且文本自动换行。(英文单词太长,没有自动换行导致溢出的问题后面再处理)

4.pre-wrap

word-break: pre-wrap; 会保留所有的空白符(空格、换行、制表符),文本遇到边界自动换行。

在这里插入图片描述

如上图效果,全部空白格都会正常显示,第三行本来有连续出现两个空格符也正常出现了。

四、英文长句没有自动换行导致溢出

浏览器默认情况下,遇到长单词且一行放不下时,就会将长单词进行换行处理。
在这里插入图片描述

如上图,incomprehensibilitieeeeeeeeeeeeeeeeeeeeee 单词过长,无法在 …tomorrow 后面继续显示下去,所以会换到下一行显示。
但是 incomprehensibilitieeeeeeeeeeeeeeeeeeeeee 单词本身太长,一行依旧容不下,这时就会出现溢出现象。

1.word-wrap: break-word 进行单词断句

注:word-wrap 属性原本属于微软的一个私有属性,在 CSS3 现在的文本规范草案中已经被重名为 overflow-wrap 。 word-wrap 现在被当作 overflow-wrap 的 “别名”。

在这里插入图片描述

如上图效果,长单词 incomprehensibilitieeeeeeeeeeeeeeeeeeeeee 会换行,并且一行显示不下会再换行显示。

2.word-break: break-all 进行单词断句

在这里插入图片描述
如上图效果,长单词会被直接断句,而不是换到下一行,可以防止长单词前边留下大片空白,但是单词被直接截断,对阅读不太友好。

3.word-break: break-word 进行单词断句

在这里插入图片描述
效果等同 word-wrap: break-word;

这篇关于white-space 处理 textarea 文本内容的换行 空格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/538956

相关文章

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Python动态处理文件编码的完整指南

《Python动态处理文件编码的完整指南》在Python文件处理的高级应用中,我们经常会遇到需要动态处理文件编码的场景,本文将深入探讨Python中动态处理文件编码的技术,有需要的小伙伴可以了解下... 目录引言一、理解python的文件编码体系1.1 Python的IO层次结构1.2 编码问题的常见场景二

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

springboot集成easypoi导出word换行处理过程

《springboot集成easypoi导出word换行处理过程》SpringBoot集成Easypoi导出Word时,换行符n失效显示为空格,解决方法包括生成段落或替换模板中n为回车,同时需确... 目录项目场景问题描述解决方案第一种:生成段落的方式第二种:替换模板的情况,换行符替换成回车总结项目场景s