【问题标题】:How to show multiline text in a table cell如何在表格单元格中显示多行文本
【发布时间】:2012-06-11 19:50:20
【问题描述】:

我想将数据库中的一段显示到表格单元格中。

结果是大的 1 行,忽略它在数据库中的组织方式。 例如忽略“进入”(新行)

我想完全按照它在数据库中的写入方式来展示它。

例如,如果段落是这样保存的:

hello ,
my name is x.

我希望它完全像那样显示,而不是:

hello, myname is x.

【问题讨论】:

    标签: html css tablerow


    【解决方案1】:

    就我而言,我可以这样使用。

    td { white-space:pre-line , word-break: break-all}
    

    【讨论】:

      【解决方案2】:

      如果你有一个带有\n的字符串变量,你想把它放在td里面,你可以试试

      <td>
          {value
              .split('\n')
              .map((s, index) => (
                  <React.Fragment key={index}>
                      {s}
                      <br />
                  </React.Fragment>
              ))}
      </td>
      

      【讨论】:

      • 这条评论被低估了。谢谢!
      【解决方案3】:

      解决这个问题的两个建议:

      解决方案 1:&lt;div style="white-space:pre;"&gt;{database text}&lt;/div&gt;&lt;pre&gt;{database text}&lt;/pre&gt;

      如果您的文本没有 html 标签或 css 属性,这是一个很好的解决方案。例如,还允许维护选项卡。

      解决方案 2:将 \n 替换为 &lt;p&gt;&lt;/p&gt; or &lt;br/&gt;

      如果您只想添加换行符,而不会丢失其他文本属性或格式,这是一个解决方案。 php 中的一个例子是$text = str_replace("\n","&lt;br /&gt;",$database_text);

      您也可以使用&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;/div&gt;,但这需要更多的文本解析。

      【讨论】:

        【解决方案4】:

        下面的代码对我来说就像魔术一样>>

        td { white-space:pre-line }
        

        【讨论】:

          【解决方案5】:

          我只在&lt;td&gt; 中添加了&lt;br&gt;,效果很好,打破常规!

          【讨论】:

            【解决方案6】:
            style="white-space:pre-wrap; word-wrap:break-word"
            

            这将解决换行问题。 pre 标签会添加额外的 CSS。

            【讨论】:

            • 这是一个很好的、有针对性的解决方案。 &lt;pre&gt; 标签除了允许换行符之外,还可以做各种事情,但这些样式设置只能解决出现的问题。
            • 我的数据包含新行时遇到问题。其他解决方案(例如用
               替换文本)仅被视为文本。这个解决方案完美地解决了这个问题。
                              
                            
                              
                          
            • 太棒了!!这对我来说效果很好。我有一个列出多个文本的 JDataTable,我需要你的 CSS 来正确包装文本!非常感谢!
            • 这对我来说可以保留换行符,但会在每个单元格的顶部添加一个换行符......任何解决方案?
            • 我很想给你的答案投票,但它在 69...
            【解决方案7】:

            嗨,我需要做同样的事情!不要问为什么,但我正在使用 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>
            

            这将产生我想要的输出。

            【讨论】:

              【解决方案8】:

              我在每一行之后使用 html 代码标签(见下文),它对我有用。

              George Benson &lt;/br&gt; 123 Main Street &lt;/br&gt; New York, Ny 12344 &lt;/br&gt;

              【讨论】:

              • 这应该是评论而不是答案。

              • 破坏了表格的语义。使用基于文本的浏览器查看表格时,新行显示为类似于表格行。
              【解决方案9】:

              在您的服务器端代码中,将新行 (\n) 替换为 &lt;br/&gt;

              如果你使用 PHP,你可以使用nl2br()

              【讨论】:

                【解决方案10】:

                您希望将 CSS white-space:pre 应用于相应的 &lt;td&gt;。对所有表格单元格执行此操作,例如:

                td { white-space:pre }
                

                或者,如果您可以更改标记,则可以在内容周围使用&lt;pre&gt; 标记。默认情况下,Web 浏览器使用其用户代理样式表将相同的 white-space:pre 规则应用于此元素。

                PRE 元素告诉视觉用户代理,封闭的文本是“预格式化的”。处理预格式化文本时,可视化用户代理:

                • 可能会留下完整的空白。
                • 可以使用固定间距字体呈现文本。
                • 可能会禁用自动换行。
                • 不得禁用双向处理。

                【讨论】:

                • 赞一个,white-space 是一个受到广泛支持的 CSS 2.1 属性。在 IE8 上测试,效果很好。
                • 我现在处于white-space: pre;&lt;td&gt; 标签中应用时被忽略的情况。使用&lt;pre&gt;&lt;/pre&gt; 包装我们的内容可以正常工作,但由于使用此表(导出到 excel),大量的列和行会使导出文件的大小膨胀并导致 excel 在读取文件时崩溃。 (奇怪,我知道)。有没有其他人看到这个或有解决方案的想法?
                • 这个解决方案远非完美。它导致 Excel 为具有换行符的单元格生成多行。唯一正确的答案可以在这里找到:bennadel.com/blog/…
                【解决方案11】:

                将内容包装在&lt;pre&gt;(预格式化文本)标签中

                <pre>hello ,
                my name is x.</pre>
                

                【讨论】:

                • 不过,这会用等宽字体覆盖字体。
                猜你喜欢
                相关资源
                最近更新 更多
                热门标签