【问题标题】:how to force asp:label inside asp:table to always have the same width?如何强制 asp:table 内的 asp:label 始终具有相同的宽度?
【发布时间】:2008-12-27 15:14:32
【问题描述】:

我并不真正感受 CSS,而且它并不总是像我想象的那样工作。

这是以下情况之一:

我有一个简单的(2 行,2 列)asp:table 动态生成。在右栏中,它包含一个组合框(cell (0, 1)) 和一个标签(cell (1,1))。当我更改组合框的选择时,标签中的文本也会更改。如果单元格太长,它会重新调整表格的大小。我希望文本成行,以便适合单元格的宽度。

我不知道是不是某个标签的属性可以做到这一点,还是我应该在标签或单元格的 CSS 样式中指定它?我尝试明确设置表格的宽度,CSS 类中单元格的宽度,但没有任何效果,我觉得自己就像迷宫中的盲人。

【问题讨论】:

    标签: asp.net css


    【解决方案1】:

    <label> 元素可以根据需要设置为display: block;,然后通过 CSS 赋予固定宽度。这可能是最适合您的解决方案。

    【讨论】:

    • 据我所知,asp:label 被渲染为“Text”,而不是“”。
    • 如果您使用 AssociatedControlID 属性,则它呈现为 html-label。否则,它会退回到 html-span,在大多数情况下,它可能只是一个简单的文字控件。
    【解决方案2】:

    除非您将 white-space 设置为 nowrap,否则您的文本应该在空格处换行。字符串牢不可破吗?

    一个带有 URL 和/或标记的最小示例可能会有所帮助....

    【讨论】:

      【解决方案3】:

      首先,我不得不说(作为经验的苦涩之声),如果你不想真正通过 CSS 并学习它来真正理解它,这只是冰山一角。您将在 Web 开发中体验到的痛苦。

      但更重要的是,一个快速而肮脏的解决方案是将标签从 asp:Label 更改为 asp:Literal。这将导致它直接输出到您的 HTML 页面。然后,您应该能够在表格中明确设置单元格的宽度,并且您在 asp:Literal 中的文本很可能会换行(当然,这取决于您使用的样式)。

      【讨论】:

        【解决方案4】:

        我发现您必须在标签上专门放置 style="white-space: normal" 才能使其工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-09-12
          • 1970-01-01
          • 2020-06-30
          • 1970-01-01
          • 2013-02-14
          • 1970-01-01
          • 1970-01-01
          • 2011-09-22
          相关资源
          最近更新 更多