如何在 ASP.NET 中垂直对齐对象?

Posted

技术标签:

【中文标题】如何在 ASP.NET 中垂直对齐对象?【英文标题】:How to align objects vertically in ASP.NET? 【发布时间】:2012-01-09 07:49:02 【问题描述】:

我一直在使用 asp.net 一段时间,并且总是在将对象与同一行的不同高度对齐时遇到问题。例如,在这种情况下,我有一个搜索标签、一个文本字段,然后是一个图像按钮。让这三个项目正确对齐的“正确方法”是什么?

我现有的代码:

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
   </asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:Panel VerticalAlign="Center" runat="server">
    <asp:Label ID="Label1" runat="server" Font-Size="X-Large" Text="Search Tests:"></asp:Label>
    <asp:TextBox ID="searchTextBox" runat="server" Font-Size="X-Large" 
        Height="30px" style="margin-left: 13px; margin-top: 0px" Width="219px"></asp:TextBox>
    <asp:ImageButton ID="ImageButton2" runat="server" Height="45px" 
        ImageUrl="~/Images/SearchButton.PNG" style="margin-left: 18px; margin-top: 0px" 
        Width="95px" />
    </asp:Panel>
</asp:Content>

【问题讨论】:

ASP 和 ASP.NET 不是一回事。你应该养成正确使用这两个术语的习惯,否则你可能得不到你期望的答案。 这个问题和ASP.NET关系不大。这几乎是一个 html 问题。弄清楚如何使用纯 HTML 来做这件事,你就会得到答案。 @Abe 对不起。以后发帖时我会牢记这一点。感谢您这次为我纠正问题。 【参考方案1】:

最简单的方法是使用 CSS 或表格。我放了一个高度和垂直对齐顶部的 div。 CSS Reference

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <asp:Panel ID="Panel1" VerticalAlign="Center" runat="server">
        <div style="height: 40px; vertical-align: top">
            <div style="padding-top: 10px; float:left;">
                <asp:Label ID="Label1" runat="server" Font-Size="X-Large" Text="Search Tests:"></asp:Label>
            </div>
            <div style="padding-top: 5px; float:left;">
                <asp:TextBox ID="searchTextBox" runat="server" Font-Size="X-Large" Height="30px"
                     Style="margin-left: 13px; margin-top: 0px" Width="219px"></asp:TextBox>
            </div>
            <div style="padding-top: 5px; float:left;">
                <asp:ImageButton ID="ImageButton2" runat="server" Height="45px" ImageUrl="~/Images/SearchButton.PNG"
                     Style="margin-left: 18px; margin-top: 0px" Width="95px" />
            </div>
        </div>
    </asp:Panel>
</asp:Content>

【讨论】:

非常感谢您的回复。但是,所有三个项目仍然根据它们的垂直底部对齐。有没有办法让三个对象的中间对齐?如果我的问题中不清楚这种愿望,我深表歉意 我已经修改了代码以反映这一点:您需要将每一个放在自己的 div 标签中并调整 padding-top 以使它们对齐。唯一的问题是跨浏览器它们可能并不完全对齐,它们应该非常接近,但在每个浏览器上并不完全相同。 好的。非常感谢。这是大多数网站处理此类事情的方式吗?我觉得想要对齐这些对象将是一个常见的问题。 是的,这正是大多数人(如果不是全部)这样做的方式。 CSS 现在已经超过标准,因为它比表格更灵活。它曾经把所有东西都放在表格中,但是你会得到一个非常四四方方的布局和一些非常丑陋的代码。祝你好运。 @Robart。惊人的。感谢所有的帮助和信息。关于 css 和 HTML,我还有很多东西要学,但我很高兴能开始学习。【参考方案2】:

我有同样的问题,我认为只使用表格或 div 来对齐文本框是过度的。

我简单地解决了:

<asp:TextBox ID="TextBox2" runat="server" Width="60px"></asp:TextBox>&nbsp;
<asp:ImageButton ID="ImageButton1" runat="server" 
                 ImageUrl="~/imatges/imgNou.png"
                 CssClass="style3" ImageAlign="AbsBottom" />

并在设计视图中添加margin-top,IDE 添加:

.style3

    margin-top: 6px;

【讨论】:

以上是关于如何在 ASP.NET 中垂直对齐对象?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 网络表单字段未正确对齐

如何在引导程序中使用垂直对齐

文本如何在 div 中垂直对齐中间

如何在标签或按钮中垂直居中对齐*(星号)

在 ASP.NET 中的 DIV 内水平和垂直居中图像

如何在网格布局中垂直对齐 div? [复制]