如何在表格中显示来自文本区域的换行?

8
在一个表单中,我有一个文本区域,显然输入了文本。当输入完成后,内容会被提交到服务器并存储在数据库中...
当我在表格中显示用户输入时,换行符不可见。当我检查源代码时,换行符是存在的,但在表格中,换行符不起作用...
有没有可能在该表格中显示换行符?我知道这可能是一个非常愚蠢的问题,但是当涉及到像html和css这样的东西时,我并不是专业人士...
非常感谢您的任何帮助!
5个回答

14

将您的CSS设置在表格单元格中

white-space:pre-wrap;

1
它可以工作了,现在你可以保留/n而不用替换成<br>。感谢vsync!附言:主页很棒 - 做得好! - Ilia
这应该是被选中的答案。如此简单! - Rishi Jasapara
是的,这是最好的方式。 - 72GM
1
这是最好的答案。在我的情况下,white-space: pre-line;效果更好。谢谢。 - Sincere

3

\n在HTML中不会被渲染成为新的一行。您需要使用<br/>来实现这个效果。

使用字符串替换将所有的 '\n' 字符替换为 '<br/>'

如果您正在使用像C#这样的服务器端语言,可以这样做

private string PutLineBreaks(string strData)
{
    string strReplaced = string.Empty;

    Regex r = new Regex("/\n/g");

    strReplaced = r.Replace(strData, "<br/>");

    return strReplaced;
}

实际上,我更愿意使用一小段JavaScript代码来完成这个任务!不管怎样,谢谢你提供的信息! - Gnark
1
\n<pre>标签内被渲染为新行,或者在任何带有不同设置的块中(例如“pre”,“pre-line”)的 white-space CSS 属性中。请参见 http://www.w3schools.com/cssref/pr_text_white-space.asp - Brian M. Hunt

2

将您的css设置在表格单元格中

white-space:pre-line;

即使您的数据存在尾随空格,也会被删除并使数据完美。

2
您想将所有的\n替换为<br/>

0

如果我们谈论一些文本和新段落,使用<p></p>会更好(语义更好的解决方案)。

如果只是需要换行,则使用<br />即可。


我不确定用 <p></p> 替换 \n 在语义上是否正确。<br /> 在语义上是一个换行符,就像 \n 一样。然而,\n\n 在语义上应该是一个段落。 - Deniz Dogan
1
你需要用 '<p>' 开始整个文本块,并用 '</p>' 结束整个文本块。然后,你可以将每个 '\n' 替换为 '</p><p>',这将关闭一个段落并开始另一个段落。 - Jarrett Meyer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接