我想将数据库中的段落展示到表格单元格中。
结果是一行很长,忽略了在数据库中的组织方式。
例如忽略换行符(新行)。
我希望按照从数据库中读取的原样显示它。
例如,如果段落是这样保存的:
hello ,
my name is x.
我希望它能像那样准确地显示,而不是:hello, myname is x.
white-space:pre
应用于适当的 <td>
。例如,要将此应用于所有表单元格,请执行以下操作:td { white-space:pre }
或者,如果您可以更改标记,则可以在内容周围使用<pre>
标签。默认情况下,Web浏览器使用其用户代理样式表将相同的white-space:pre
规则应用于此元素。
PRE元素告诉视觉用户代理封装的文本是“预格式化”的。在处理预格式化文本时,视觉用户代理:
- 可能保留空格不变。
- 可能使用等宽字体呈现文本。
- 可能禁用自动换行。
- 不能禁用双向处理。
style="white-space:pre-wrap; word-wrap:break-word"
这将解决换行的问题。 pre标签会添加比所需更多的CSS。
<pre>
标签除了允许换行字符外,还可以做很多其他事情,但这些样式设置仅解决了所提出的问题。 - moveson将内容包裹在 <pre>
(预格式化文本)标签中。
<pre>hello ,
my name is x.</pre>
解决此问题的两个建议:
解决方案1:如果您的文本中没有HTML标签或CSS属性,可以使用以下方法:<div style="white-space:pre;">{数据库文本}</div>
或 <pre>{数据库文本}</pre>
。还可以保留制表符等。
解决方案2:使用\n
替换<p></p>或<br/>
以添加换行符,而不会丢失其他文本属性或格式设置。 PHP示例代码如下:$text = str_replace("\n","<br />",$database_text);
您也可以使用<p></p>
或<div></div>
,但这需要进行更多的文本解析。
以下代码对我来说就像魔法一样 >>
td { white-space:pre-line }
嗨,我也需要做同样的事情!不要问为什么,但我正在使用Python生成HTML,并需要一种方法来遍历列表中的项目,并使每个项目在表格的单个单元格内占据一行。
我发现br标签对我很有用。例如:
<!DOCTYPE html>
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<TABLE>
<TR>
<TD>
item 1 <BR>
item 2 <BR>
item 3 <BR>
item 4 <BR>
</TD>
</TR>
</TABLE>
</BODY>
这将产生我想要的输出。
我在每行后使用html的code标签(如下所示),这对我很有效。
George Benson </br>
123 Main Street </br>
New York, Ny 12344 </br>
我只在<td>
标签内添加了<br>
标签,它能正常工作,并且换行了!
td { white-space:pre-line , word-break: break-all}
white-space
是一个广泛支持的 CSS 2.1 属性。在 IE8 上测试过,效果很好。 - leesei<td>
标签中应用white-space: pre;
时被忽略了。使用<pre></pre>
来包装我们的内容可以正常工作,但由于使用了这个表格(导出到Excel),大量的列和行会使导出文件的大小膨胀,并导致Excel在读取文件时崩溃。(很奇怪,我知道)。有人看到过这种情况或者有解决方案吗? - JoeBrockhaus