【问题标题】:<td> formatting<td> 格式化
【发布时间】:2012-06-11 05:49:05
【问题描述】:

我有一个包含 10 列的列表视图,我希望每一行的大小完全相同。

问题在于,虽然 9 列由 1-2 个单词组成,但 1 列可以由未知数量的单词组成,这意味着每行的格式会有所不同,因此会破坏视图。

我尝试格式化奇数列的 &lt;td&gt; 像 width="200" height="50" style="overflow:scroll" 但仍然显示滚动条(包括不需要它的单元格)和它实际上仍在扩展高度以容纳所有文本(滚动条可见但不可用)

如何将该单元格格式化为每一行都相同?

【问题讨论】:

    标签: c# html asp.net listview html-table


    【解决方案1】:

    overflow:auto 只会在需要时显示滚动条

    table-layout:fixed 将停止调整单元格的大小

    还有overflow-y:scroll;overflow-x:hidden for CSS3 取决于支持。我知道它适用于 IE8 和 firefox、chrome 等。但这些只允许您指定垂直滚动

    【讨论】:

    • 这就是它应该需要的东西,因为我已经设置了每个 TD 的 height=50 并且它仍然将高度扩展到容纳所有文本所需的任何东西。如何在 200x50 的 TD 中实际显示文本并具有垂直滚动条?
    【解决方案2】:

    如果您正在寻找包装文本,您可以使用 CSS 来实现。将 CSS 类应用到您的 .

    让长词能够分断并换行到下一行:

    .wrapText {word-wrap:break-word;} 
    

    .wrapText {word-wrap:normal;} 
    

    normal - 仅在允许的断点处断字 break-word - 允许破坏不可破坏的单词

    例如。

    <td class="wrapText"></td>
    

    <td style="word-wrap:break-word;"></td>
    

    【讨论】:

      【解决方案3】:

      首先设置你的table

       table
       {
        width: 0px;
        table-layout: fixed;
       }
      

      0 像素宽度将被忽略,因为我们将为单元格指定宽度,但它是使固定布局工作所必需的(作为替代,您可以使用正确的宽度)。然后你必须对单元格应用一些格式:

       table td
       {
        width: 200px;
        height: 100px;
       }
      
       table td div
       {
        width: 200px;
        height: 100px;
        overflow: auto;
       }
      

      你的单元格必须是这样的:

      <tr>
          <td></td>
          <td><div>Here the long content</div></td>
      </tr>
      

      【讨论】:

      • 问题是我没有“表”,它是一个列表视图 Text 那么它是怎么做到的使用它?
      • @sd_dracula ListView 不会将其内容包含在任何内容中。如果您将 ItemTemplate 设置为使用 tr,那么您也必须设置 LayoutTemplate !!! (那里有你的桌子)。看看这里的例子:stackoverflow.com/questions/2877898/…
      • 一定是这样。我只在 ItemTemplate 和 ALternatingItemTemplate 中更改了它们。马上试试
      • 呃,现在越来越令人沮丧了。已将 table-layout:fixed 添加到 LayoutTemplate 和 style="height:50px; width: 100px;overflow:hidden;border-collapse:collapse;" 中的表格到 TD,但它仍然不会添加滚动条,只是将单元格扩展到最大高度以显示所有文本。
      • 来自答案:溢出:隐藏;空白:nowrap;这不会添加滚动条(到单元格),但会将其内容截断为一行。哪里需要滚动条?在细胞上?在桌子上?
      【解决方案4】:

      设置溢出:隐藏以在溢出实际高度时截断文本

      【讨论】:

      • 我也试过
      【解决方案5】:

      试试这个

      ​<table border="1" style="height:50px;width:200px;table-layout:fixed">
      <tr>
          <td style="height:50px; width: 100px;">
              Test
          </td>
          <td style="height:50px; width: 100px;overflow:hidden;border-collapse:collapse;" nowrap>
              <nobr>  This is a long tex to show how the cell trancate a text, can you see it ?</nobr>
          </td>
      
      </tr>
      </table>​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
      

      【讨论】:

      • 好的,现在如何让文本垂直滚动? overflow:scroll 只会让它水平滚动。这也适用于非固定表吗?由于表格是从 listView 动态创建的,并且没有固定大小?
      • 你可以试试overflow-y:scroll。并且您应该能够在创建表时设置属性?
      • 我已将表格布局设置为固定创建表格的位置。并在 TD 中放置了 overflow-y:scroll,它确实显示了垂直滚动条,但它也扩展了单元格,这意味着你不能滚动。
      【解决方案6】:

      似乎最简单的解决方法是 asp:TextBox,刚刚创建它看起来像一个标签。 上面的所有答案都适用于单独创建的表格,但我对 listView 格式不太熟悉,可能没有正确设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-02
        • 2019-05-10
        • 2013-01-16
        • 1970-01-01
        • 2022-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多