使用 pre 时出现奇怪的缩进

问题描述

在 C# 中,我用字符串填充一个字段。每个字符串都以“\r\n”结尾。然后我使用 Razor 用这些数据填充一个网站:

<td style="max-width:130px; overflow-wrap:break-word; white-space:pre;"
     align="left">
     @item.Data
</td>

网站输出

          - first line     (about 13 additional empty spaces)
- second line
- third line
- fourth line and so on

所需的输出

- first line
- second line
- third line
- fourth line and so on

我应该提供更多代码吗?

编辑:

HTML:

<td style="max-width:130px; overflow-wrap:break-word; white-space:pre;"
    align="left">
    firstline&#xD;&#xA;secondline
</td>

解决办法: 实际上,我在 Visual Studio 中的代码管家扩展在

之后添加了空格(此处有很多空格)

2 个答案:

答案 0 :(得分:1)

white-space:pre; 中的文本/代码应从行首开始(无制表符或空格)。我在下面举了一个例子。

<td style="max-width:130px; overflow-wrap:break-word; white-space:pre;"
    align="left">
firstline&#xD;&#xA;secondline
</td>

答案 1 :(得分:1)

空格是由“格式化”的 html 源代码生成的。 您还需要“丑化”html 代码

之前:

<tr>
    <td style="max-width:130px; overflow-wrap:break-word; white-space:pre;" align="left">
        firstline&#xD;&#xA;secondline
    </td>
</td>

之后:

<tr>
    <td style="max-width:130px; overflow-wrap:break-word; white-space:pre;" align="left">firstline&#xD;&#xA;secondline</td>
</tr>

解决方法

white-space:pre; 中的文本/代码应从行首开始(无制表符或空格)。我在下面举了一个例子。

<td style="max-width:130px; overflow-wrap:break-word; white-space:pre;"
    align="left">
firstline&#xD;&#xA;secondline
</td>

,

空格是由“格式化”的 html 源代码生成的。 您还需要“丑化”html 代码。

之前:

<tr>
    <td style="max-width:130px; overflow-wrap:break-word; white-space:pre;" align="left">
        firstline&#xD;&#xA;secondline
    </td>
</td>

之后:

<tr>
    <td style="max-width:130px; overflow-wrap:break-word; white-space:pre;" align="left">firstline&#xD;&#xA;secondline</td>
</tr>