【问题标题】:how to set the controls side by side in the panel如何在面板中并排设置控件
【发布时间】:2018-05-02 15:02:01
【问题描述】:

我有这样的事情:

但我需要像这样将控件设置为彼此相邻:

我的 Panel.aspx

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" 
Runat="Server">
<asp:Panel ID="pnlProducts" runat="server"></asp:Panel>
<div style="clear: both"></div>
</asp:Content>

我的 Panel.aspx.cs

    foreach (DataRow row in dt.Rows)
    {
        int id = row;

        byte[] bytes = (byte[])row["image"];
        string base64String = Convert.ToBase64String(bytes, 0, bytes.Length);
        Panel productPanel = new Panel();
            ImageButton imageButton = new ImageButton
            {
               ImageUrl = "data:image/png;base64," + base64String,
               CssClass = "productImage",
               PostBackUrl = string.Format("Product1.aspx?id={0}", row)
            };
            Label lblName = new Label
            {
                Text = row["nazwa"].ToString(),
                CssClass = "productName"
            };
            Label lblPrice = new Label
           {
               Text = row["cena"].ToString() + " zl",
               CssClass = "productPrice"
            };

            productPanel.Controls.Add(imageButton);
            productPanel.Controls.Add(new Literal { Text = "<br/>" });
            productPanel.Controls.Add(lblName);
            productPanel.Controls.Add(new Literal { Text = "<br/>" });
            productPanel.Controls.Add(lblPrice);
            pnlProducts.Controls.Add(productPanel);
    }
}

我的css代码

/*Webshop */
   #ContentPlaceHolder1_pnlProducts div {
   float: left;
   width: 250px;
   height: 250px;
   text-align: center;
  }

.productName {
font-weight: bold;
font-size: 18px;

 }

    .productPrice {
    font-family: arial,helvetica,sans-serif;
    color: #FFB600;
    }

  .productImage {
    width: 150px;
    height: 150px;
    vertical-align: central;
    padding: 10px;
   -moz-border-radius: 50px;
   -webkit-border-radius: 50px;
   border-radius: 50px;
 }

我不知道我必须在哪里使用 float:Left 或类似的东西如何在面板中并排设置控件。

【问题讨论】:

  • float: left 在这里完全没有必要。元素默认为display: block,这“鼓励”它们尽可能多地占据水平空间。为了解决这个问题,给每个 productPanel display: inlinedisplay: table-cell 属性

标签: c# html css asp.net


【解决方案1】:

你应该使用 Flex-box 这很容易

在你的父母身上:

display: flex;
flex-wrap: wrap;

关于孩子:

flex: 1 1 20%;

【讨论】:

  • 不幸的是:“flew-wrap”不是已知的 CSS 属性名称。
  • @Tprogramer1 它是flex-wrap
  • #ContentPlaceHolder1_pnlProducts div { ....... display: flex;弹性包装:换行; } .productName { 弹性:1 1 20%; } .productPrice { 弹性:1 1 20%; } .productImage { 弹性:1 1 20%; } 还是不行。
  • @Tprogramer1 你在用IE7吗?
  • 你的孩子有余裕吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-09
  • 1970-01-01
  • 1970-01-01
  • 2017-05-09
  • 1970-01-01
  • 2011-08-04
  • 1970-01-01
相关资源
最近更新 更多