基于我运行的简单测试,我认为不可能将内联在控件中包含样式元素(例如块)并不是一个好主意.如果可以的话,它可能会在某些浏览器中产生影响,但它不会验证并且是不好的做法.
如果要将样式内联应用于元素,则其中任何一个都可以工作:
C#
myControl.Attributes["style"] = "color:red"; myControl.Attributes.Add("style", "color:red");
VB.NET
myControl.Attributes("style") = "color:red"; myControl.Attributes.Add("style", "color:red");
但请记住,这将替换在style属性上设置的任何现有样式.如果您尝试在代码中的多个位置设置样式,这可能是一个问题,因此需要注意.
使用CSS类会更好,因为您可以对多个样式声明进行分组并避免冗余和页面膨胀.从WebControl派生的所有控件都有一个可以使用的CssClass属性,但请注意不要覆盖已在其他地方应用的现有类.
如果使用Attributes ["style"],则每次调用时都会覆盖该样式.如果您在两个不同的代码段中进行调用,则可能会出现问题.同样,它可能是一个问题,因为框架包括基本设置的属性,如边框和颜色,也将作为内联样式应用.这是一个例子:
// wrong: first style will be overwritten myControl.Attributes["style"] = "text-align:center"; // in some other section of code myControl.Attributes["style"] = "width:100%";
为了好好玩,请设置这样的样式:
// correct: both style settings are applied myControl.Attributes.CssStyle.Add("text-align", "center"); // in some other section of code myControl.Attributes.CssStyle.Add("width", "100%");