【问题标题】:prevent multiline textbox stretching when text is added添加文本时防止多行文本框拉伸
【发布时间】:2012-06-29 20:49:33
【问题描述】:

下面是我的HTML

<table width="100%" >
  <tr>
    <td>
      <asp:TextBox ID="tbNewNote" TextMode="MultiLine" runat="server" CssClass="width:100% "/>
    </td>                                
  </tr>
</table>

textbox 被文本填充时,它会扩大到超出屏幕边缘。

我怎样才能摆脱这种行为?

提前致谢。

【问题讨论】:

    标签: asp.net html css


    【解决方案1】:
    <asp:TextBox runat="server" TextMode="MultiLine" Rows="5" Columns="20" style="resize:none;" ></asp:TextBox>
    

    【讨论】:

    • 如果您以编程方式将文本添加到文本框,直到下一次回发,这将不起作用。
    • @shiggity 你能否进一步解释一下,如果可能的话,我会尝试以任何其他方式提供帮助......
    • @BarbaraLaird 让我尝试解释一下:在 asp TexMode Multiline 是 Html 中“TextArea”的替代品,行 5 分钟高度将达到 5 行,之后滚动条将出现,列一行 20 分钟它将接受 20 个字符,之后它将变成一个新行,最后样式:“resize:none”是禁用垂直和水平输入字段的手动调整大小,希望它有所帮助。
    • @shiggity 您可以创建一个脚本并从代码中调用它,顺便说一句,为什么需要从代码中调用它?有什么具体原因吗?
    • @Shubham 呃,就像您需要动态设置文本,从数据库中检索文本等时一样。
    【解决方案2】:

    在你的 css 中创建以下类,并在你想要修复其宽度的文本框中使用它:

    .CSSclass{
    
    resize:none;
    }
    

    如果您希望所有带有多行文本模式的文本框都相同,您可以在您的 css 中编写以下内容:

    .textarea{
    resize:none;
    }
    

    【讨论】:

    • 这应该是官方的答案,但对于 Firefox 或 Chrome 仍然没有解决。仍然有一个右下角的“抓取器”,你可以把盒子拉出来。如何避免这种情况?
    【解决方案3】:

    对您的代码进行以下更改,删除 CssClass="width:100%",您在此处提供类而不是 css 属性。其次,我为您的 TextBox 添加了固定宽度,现在它不会扩展。

     <table width="100%" >
          <tr>
           <td>
            <asp:TextBox ID="tbNewNote" TextMode="MultiLine" runat="server" Width="200px"/>
           </td>                                
          </tr>
        </table>
    

    【讨论】:

    • 仅供参考:这个问题的更好答案如下,由 Shubham 回答。要防止对多行文本框进行任何大小调整,请在文本框的样式中添加以下内容:“resize:none;”
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    • 2019-11-04
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 2013-09-18
    相关资源
    最近更新 更多