前端无法解析\n换行

一般我们通过前端提交换行的内容到后端存储时,换行会解析为\n,然而,默认情况下html是渲染不了\n的,会把我们的换行内容直接显示为一行。

在以前,我们会才用又笨又实用的方式,将\n批量替换为html<br>标签来实现换行。其实在CSS2.1的时候就为我们提供了white-space属性来解决这个问题,只是我们还知道而已。在我们需要解析\n的DOM节点上加上white-space: pre-line这个样式便可使\n生效,它还可以还原空格、回车、tab样式。我们在看一下white-space的属性值说明,顺便加深一下印象。

描述
normal 默认。空白会被浏览器忽略。
pre 空白会被浏览器保留。其行为方式类似 HTML 中的 <pre> 标签。
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 <br> 标签为止。
pre-wrap 保留空白符序列,但是正常地进行换行。
pre-line 合并空白符序列,但是保留换行符。
inherit 规定应该从父元素继承 white-space 属性的值。

这里需要注意是,该属性的pre-line支持IE8+,而且IE都不支持inherit属性值,其他浏览器版本则都支持。

作者

eyiadmin

发布于

2022-10-12

更新于

2024-05-31

许可协议

评论