我有一个多行文本框。当用户只需键入时,文本框将包装文本,并将其保存为单行。用户也可以输入换行符,例如在输入“项目符号”列表时:
Here are some suggestions:
- fix this
- remove that
- and another thing
现在,当我尝试显示此字段的值时,会出现问题。为了保留格式,我目前将演示文稿包装在<pre>
中 - 这可以保留用户提供的中断,但是当有大量文本保存为单行时,它会将整个文本块显示为单行,导致需要水平滚动来查看所有内容。
有没有一种优雅的方式来处理这两种情况?
答案 0 :(得分:3)
处理此问题的最简单方法是将所有换行符\n
转换为<br>
换行符。例如,在PHP中,这是使用nl2br()
函数完成的。
如果你想要一些更有趣的东西 - 例如你引用的列表被转换为实际的HTML <ul>
- 你可以考虑使用SO Markdown之类的简单“语言”。它带有自然,简单的规则,如
# Heading 1
## Heading 2
### Heading 3
* Unordered List item
* Unordered List item
1. Numbered List item
2. Numbered List item
等...
答案 1 :(得分:1)
你可以使用php函数nl2br()它将换行符转换成
元素
答案 2 :(得分:1)
显式地将换行符转换为<br />
标记,并让浏览器对文本进行正常的自动换行。这样可以保留访问者输入的休息时间,而不会损害其他段落。
答案 3 :(得分:1)
您可以使用HTML换行符替换换行符。
使用"\r\n"
替换"\n"
或<br/>
(取决于浏览器和平台,请先检查更长版本)。
答案 4 :(得分:0)
我通常会将所有CR/LF
替换为LF
,然后将所有LF
替换为<br />
。然后,您可以在任何所需的HTML容器中呈现此文本,并使其自然流动。