1.修改css中white-space属性为“pre-warp”
在css中white-space属性用来控制容器的文本中带有空白符、制表符、换行符等的显示,取值有:
- normal:默认,忽略文本中所有的空白、换行符;只有文本存在 <br> 或文本达到框的约束时,文本才会换行
- nowrap:和normal类似,忽略文本中所有的空白、换行符;遇到框的宽度约束时不会自动换行,文本只有在有 br 时才会换行
- pre:保留文本中的空白、换行符;遇到框的宽度约束时不会自动换行,文本存在 <br> 或文本中有换行符时,文本才会换行
- pre-wrap:和pre类似,保留文本中的空白、换行符;文本存在 <br> 或文本中有换行符时,或者遇到框的宽度约束时,文本都才会换行
- pre-line:会略文本中的空白符;文本存在 <br> 或文本中有换行符时,或者遇到框的宽度约束时,文本都才会换行
参考:https://blog.csdn.net/liuxiao723846/article/details/118994673
2. 换行
提交前先正则过滤: (此处content为textarea输入值)
var content = this.content.replace(/\r\n/g, '<br/>').replace(/\n/g, '<br/>').replace(/\s/g, ' ');
展示的时候用 v-html 渲染就可以:(此处content为从后端获取的值)
<p v-html="content"></p>
用textarea标签+v-html命令,有时候只能识别空格,无法识别<br/>, 用富文本编辑器可以解决这个问题(实现类似textarea标签可修改的效果也能识别<br/>)。富文本编辑有很多种,用vue的一个插件:vue-quill-editor
3.空格
- replace(/ /g, '  ')