本着更改呈现而不是更改内容的精神,以下CSS 使每个换行符的行为类似于
:
white-space: pre;
white-space: pre-line;
为什么有两个规则:pre-line仅影响换行符(感谢线索,@ KevinPauli)。IE6-7和其他旧的浏览器回落到更极端的状态pre,其中还包括nowrap并呈现多个空格。有关这些设置和其他设置(pre-wrap)的详细信息,请参见mozilla和css-tricks(感谢@Sablefoste)。
尽管我通常不赞成SO偏向于猜测问题而不是回答问题,但在这种情况下,用
标记替换换行符可能会增加用户未经洗刷的输入攻击的脆弱性。每当您发现自己要更改字面意义所暗示的.text()呼叫时,就会越过一条红线.html()。(感谢@AlexS强调了这一点。)即使您当时排除了安全风险,将来的更改也可能会无意间引入它。相反,此CSS允许您使用safer获得硬换行而无需标记.text()。