Answers:
您想使用white-space:pre
适用于适当的CSS<td>
。为此,请对所有表单元格执行此操作,例如:
td { white-space:pre }
另外,如果您可以更改标记,则可以<pre>
在内容周围使用标签。默认情况下,Web浏览器使用其用户代理样式表将相同white-space:pre
规则应用于此元素。
PRE元素告诉可视用户代理所包含的文本是“预格式化”的。处理预格式化的文本时,可视用户代理:
- 可能会保留空白。
- 可能以固定间距字体呈现文本。
- 可能会禁用自动自动换行。
- 不得禁用双向处理。
white-space: pre;
在<td>
标签中应用该代码时会被忽略。使用<pre></pre>
包装我们的内容可以很好地工作,但是由于使用了此表(导出到excel),大的列和行数使导出文件的大小膨胀,导致excel在读取文件时崩溃。(奇怪,我知道)。有没有其他人看到这个或有解决方案的主意?
style="white-space:pre-wrap; word-wrap:break-word"
这将解决换行问题。pre标签会添加比所需的其他CSS。
<pre>
标签除了允许使用换行符外,还可以执行所有其他操作,但是这些样式设置只能解决出现的问题。
解决此问题的两个建议:
解决方案1:<div style="white-space:pre;">{database text}</div>
或<pre>{database text}</pre>
如果您的文本没有html标记或CSS属性,则这是一个很好的解决方案。例如,还允许维护选项卡。
解决方案2:替换\n
为<p></p> or <br/>
如果您只想添加折线而不丢失其他文本属性或格式,则这是一种解决方案。PHP中的一个例子是$text = str_replace("\n","<br />",$database_text);
您也可以使用<p></p>
或<div></div>
,但这需要更多的文本解析。
我在每一行之后使用html代码标签(见下文),它对我有用。
George Benson </br>
123 Main Street </br>
New York, Ny 12344 </br>
下面的代码对我来说就像魔术一样>>
td { white-space:pre-line }
white-space
是受到广泛支持的CSS 2.1属性。在IE8上测试,效果很好。