如何在c#中为动态创建的div添加css?

时间:2013-12-19 17:49:45

标签: c# asp.net css

我正在使用css使用它的id来配置这个div的属性,但它不起作用,也许是因为我在后面的代码中用c#创建它,我该如何解决? C#

StringBuilder sb = new StringBuilder();
sb.Append(@"<div id=""img1"" runat=""server"">Vidal</div>");
Label1.Text = sb.ToString();

的CSS

#img1{
position: absolute;
top: 20px;
left: 20px;
width: 253px;height: 190px;

}

4 个答案:

答案 0 :(得分:3)

我会使用一个类而不是一个ID。此外,您不需要将其设为div,因为您的Label将呈现为跨度。您只需设置CssClassText属性。


C#

Label1.CssClass = "someClass";
Label1.Text = "Vidal";



CSS

.someClass
{
    position: absolute;
    top: 20px;  
    left: 20px;
    width: 253px;
    height: 190px;
}

答案 1 :(得分:1)

您不能使用标签控件来显示html内容,使用文字控件或面板如下

Panel div = new Panel();
div.ID = "img1";   
div.Controls.Add(new Literal{Text = "Vidal"});    
this.Controls.Add(div);

答案 2 :(得分:1)

我认为,出于您的目的,使用asp:文字控制可能会更好:

StringBuilder sb = new StringBuilder();
sb.Append("<div class=\"image-css-selector">Vidal</div>");
Literal1.Text = sb.ToString();

标签控件将拥有自己的标记,这可能会影响您的HTML代码

答案 3 :(得分:0)

如果您使用的是单个网络表单,请确保您没有多个ID。如果您正在使用母版页,并且您确实需要div的runat="server属性,那么您需要更改这样的css:

#ContentPlaceHolder_img1{
position: absolute;
top: 20px;
left: 20px;
width: 253px;height: 190px;

其中ContentPlaceHolder是您为内容占位符提供的ID的名称。例如:

    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
     </asp:ContentPlaceHolder>

在您的母版页中。