代码之家  ›  专栏  ›  技术社区  ›  Ben Hoffman

为什么相同宽度的asp:dropdownlist和asp:textbox显示不同

  •  9
  • Ben Hoffman  · 技术社区  · 15 年前

    我在表中使用以下代码:

    <tr>
        <td>User Language:</td>
        <td>
            <asp:DropDownList ID="Language" runat="server" Width="200px">
                <asp:ListItem Selected="True">English</asp:ListItem>
            </asp:DropDownList>
        </td>
    </tr>
    <tr>
        <td><span class="important">*</span>Company:</td>
        <td><asp:TextBox ID="Company" runat="server" width="200px" /></td>
    </tr>
    

    当代码出现在站点上时 <asp:Textbox> 控制是205px <asp:DropDownList> 宽200像素。是什么导致的?它们的宽度都设置为200像素。

    4 回复  |  直到 15 年前
        1
  •  18
  •   Pent Ploompuu    15 年前

    因为文本框有2倍的边框和1倍的边距。

        2
  •  1
  •   anthares    15 年前

    下拉列表将根据您在其中提供的选项的大小调整大小。所以,如果你有更长的选择,你会得到更长的下拉。另外,右角的箭头会占据更多的位置。

        3
  •  1
  •   Jason Kester    15 年前

    不太相关,但这里有一个快速的提示,可以让你在旅途中免去很多头痛:

    从不使用asp:textbox或asp:dropdownlist

    <textbox runat=server>和<select runat=server>将在您可能需要的每一种情况下都能正常工作,并且它们不会添加任何令人困惑的属性,如“width”,这些属性工作不太正常。

    在css类中使用真正的html标记来完成您所做的所有工作,并且只将runat=server添加到您实际打算从后端处理的类中。

        4
  •  0
  •   Nelson Miranda    15 年前

    当您在dropdownlist中插入数据时,如果不设置width属性,它将调整大小,但如果设置width,它将不调整大小。