如何仅在按钮之间添加填充?

时间:2018-05-23 19:54:03

标签: c# html css asp.net space-between

我有一个asp:Panel,其中包含动态添加的用户地址按钮。我要做的是将CssClass添加到2nd,3rd&第n个按钮如果有多个。我想要保持第一个按钮以及任何后续按钮来获取CssClass,只需在左侧添加少量填充,但前提是它们不是第一个按钮。

这是我正在尝试做的伪代码:

if (user.address.Count > 1)
{
    foreach (UserAddress ua in user.addresses)
    {
        // Where the buttons are not the first button
        btnAddress.CssClass += " AddressButtonSpacing";
    }
}

这是我遇到麻烦的地方,我不知道怎么写。如何编写“对于此面板中不是第一个按钮的每个按钮,添加此CssClass”?

我不想只是在所有按钮的左侧或右侧批量添加填充,因为这会甩掉第一个按钮的位置,或者让小分隔符和其他按钮混乱,我试图避免这样做

我也在使用Bootstrap,我尝试在面板上设置这些:

display: flex;
justify-content: space-between;

因为space-between正是我正在寻找的,但它不起作用(我认为因为它是一个面板而不是div?)或者space-between只适用于div和不按钮,idk。是的,我知道面板的渲染为div,但它仍然没有工作,所以我正在尝试其他的东西。

面板是一个小分隔线,后跟另一组(静态)按钮:

my address buttons

我想要的只是这些按钮之间的一个小空间。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:1)

您可以使用CSS selectors

<asp:Panel ID="Panel1" runat="server" CssClass="ButtonContainer">
    <asp:Button ID="Button1" runat="server" Text="Button" />
    <asp:Button ID="Button2" runat="server" Text="Button" />
    <asp:Button ID="Button3" runat="server" Text="Button" />
</asp:Panel>

<style>
    .ButtonContainer input:not(:first-child) {
        background-color: #ff0000;
        margin-left: 25px;
    }
</style>

如果你不介意margin-right

之后的额外空格,你可以随时做一个简单的1234 North Street