[英]Spacing messed up
我在這里的空間如何? 當標簽包含文本時,間距很好,但隨后為空,則每個標簽之間都有空白。 標簽包含空文本時,為什么要添加額外的空間?
標簽中有文字(我希望它看起來像):
標簽中沒有文本(我不希望它看起來像):
在C#代碼后面:
// On page load
for (int i = 1; i < 10; i++)
{
string ID = i.ToString();
PopulateLastNameLabel(ID);
}
protected void PopulateLastNameLabel(string ID)
{
Label lbl = new Label();
lbl.Width = 70;
lbl.Height = 20;
lbl.Text = "";
lbl.BackColor = System.Drawing.Color.Red;
lbl.ID = "lastname_" + ID;
pnlLastNameLabel.Controls.Add(lbl);
}
在ASP.NET方面:
<asp:Table ID="tblDisplayTable" runat="server">
<asp:TableRow>
<asp:TableCell>
<asp:Panel ID="pnlPrizeNumberLabel" runat="server" Width="80px"></asp:Panel>
</asp:TableCell>
<asp:TableCell HorizontalAlign="Center" VerticalAlign="Middle">
<asp:Panel ID="pnlPrizeDropDownList" runat="server" Width="130px"></asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlNickNameLabel" runat="server" Width="70px"></asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlPrizeNicknameTextBox" runat="server" Width="125px"></asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlFirstNameLabel" runat="server" Width="70px"></asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlLastNameLabel" runat="server" Width="70px"></asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlEmailAddressLabel" runat="server" Width="140px"></asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlAddButton" runat="server" Width="40px"></asp:Panel>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
如果我正確理解您的問題,則需要以下CSS(從后面的代碼中刪除高度)。
每個控件都在自己的表格單元中的問題,因此它們將無法正確地水平對齊。 因此,您需要為每個控件顯式設置高度。
<style type="text/css">
td div { margin-right: 5px; }
td div input {border: 1px solid #828282; height: 21px; }
td div span { height: 25px; line-height: 25px; }
</style>
<asp:Table ID="tblDisplayTable" runat="server" CellPadding="0" CellSpacing="0">
<asp:TableRow>
<asp:TableCell>
<asp:Panel ID="pnlPrizeNumberLabel" runat="server" Width="80px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell HorizontalAlign="Center" VerticalAlign="Middle">
<asp:Panel ID="pnlPrizeDropDownList" runat="server" Width="130px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlNickNameLabel" runat="server" Width="70px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlPrizeNicknameTextBox" runat="server" Width="125px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlFirstNameLabel" runat="server" Width="70px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlLastNameLabel" runat="server" Width="70px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlEmailAddressLabel" runat="server" Width="140px">
</asp:Panel>
</asp:TableCell>
<asp:TableCell>
<asp:Panel ID="pnlAddButton" runat="server" Width="40px">
</asp:Panel>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
protected void Page_Load(object sender, EventArgs e)
{
for (int i = 1; i < 10; i++)
{
string ID = i.ToString();
TextBoxLabel(ID);
PopulatePrizeNicknameLabel(ID);
PopulateFirstNameLabel(ID);
PopulateLastNameLabel(ID);
}
}
protected void TextBoxLabel(string ID)
{
TextBox lbl = new TextBox();
lbl.Width = 65;
lbl.Text = "";
lbl.ID = "TextBox_" + ID;
lbl.Text = ID;
pnlNickNameLabel.Controls.Add(lbl);
}
protected void PopulatePrizeNicknameLabel(string ID)
{
Label lbl = new Label();
lbl.Width = 125;
lbl.Text = "";
lbl.BackColor = System.Drawing.Color.Green;
lbl.ID = "PrizeNickname_" + ID;
lbl.Text = ID;
pnlPrizeNicknameTextBox.Controls.Add(lbl);
}
protected void PopulateLastNameLabel(string ID)
{
Label lbl = new Label();
lbl.Width = 70;
lbl.Text = "";
lbl.BackColor = System.Drawing.Color.Red;
lbl.ID = "lastname_" + ID;
lbl.Text = ID;
pnlLastNameLabel.Controls.Add(lbl);
}
protected void PopulateFirstNameLabel(string ID)
{
Label lbl = new Label();
lbl.Width = 70;
lbl.Text = "";
lbl.BackColor = System.Drawing.Color.Blue;
lbl.ID = "firstname_" + ID;
lbl.Text = ID;
pnlFirstNameLabel.Controls.Add(lbl);
}
我更喜歡一次創建控件而不是一次創建一列,但這不是OP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.