前端无法解析\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
属性值,其他浏览器版本则都支持。