TextBox之后创建的虚假空间

时间:2013-08-07 08:06:41

标签: c# html asp.net css

我在代码隐藏中的ASP.Net页面上创建了一些TextBox控件,我发现在结果中的控件之后出现了虚假空间。 ASP.Net看起来像这样: -

<asp:Table runat="server" id="ControlsTable" BackColor="Orange"></asp:Table>

(我已经将颜色设置为花哨的东西以更清楚地显示结果。)创建它们的代码如下: -

TableRow  table_row  = new TableRow();
TableCell table_cell = new TableCell();
Label     new_label  = new Label(); 
new_label.Text       = //Some text
table_cell.Controls.Add(new_label);
table_row.Controls.Add(table_cell);
table_cell           = new TableCell();
TextBox text_box     = new TextBox();
text_box.ID          = //Give it an ID
text_box.CssClass    = "textInput";
text_box.MaxLength   = 10;
text_box.Attributes.Add("onkeyup", "validate_everything()");
text_box.Attributes.Add("autocomplete", "off");
text_box.BackColor   = OK_COLOUR;
table_cell.Controls.Add(text_box);
table_row.Controls.Add(table_cell);
ControlsTable.Controls.Add(table_row);

迭代了很多次。此文本控件的CSS类如下所示: -

.textInput
{
    font-family:Times New Roman;
    font-size:medium;
    max-width:100px;
}

结果显示屏显示文本框右侧添加了大约半英寸的新鲜空气: -

Table with space on the right of textboxes

创建的HTML如下所示: -

<table id="ControlsTable" style="background-color:Orange;">
  <tr><td>
    <span>AlSol</span>
  </td><td>
    <input name="Text_AlSol"
           type="text"
           value="0"
           maxlength="10"
           id="Created_ID"
           class="textInput"
           onkeyup="validate_everything()"
           autocomplete="off"
           style="background-color:White;" />
  </td></tr>

有谁知道造成这种情况的原因,以及我能做些什么呢?我发现在CSS中摆弄文本框的宽度允许我加宽和缩小文本框,但是橙色位的宽度保持不变(文本框不能比这更宽)。

编辑这是在Windows XP上运行的Internet Explorer 8。

1 个答案:

答案 0 :(得分:1)

IE8似乎与max-width上的<input>存在问题。

如果您将其更改为width,则额外的间距会消失。

.textInput {
    font-family: "Times New Roman";
    font-size: medium;
    width: 100px;
}

对我来说看起来像IE8的怪癖。 http://jsfiddle.net/nRrsA/6/show