是否可以将css与生成ClientID而非常规ID的控件一起使用?
我现在可以使用cssClass,但我想知道是否可以使用id:
#DivParrentId #LAbelControlId
{
padding:100px;
color:Red;
}
答案 0 :(得分:8)
没有一个好方法可以做到这一点。许多开发人员使用这样的东西:
<style>
#<%= MyControl.ClientID %>
{
padding:100px;
}
</style>
但坦率地说,我不是它的忠实粉丝。它非常标记 - 浓郁而脆弱。从ASP.NET 4.0开始,您将能够在代码中控制元素的ClientID,因此您可以为使用CSS或JS定位的元素指定ID。
与此同时,我建议使用课程。在我工作的系统中,我们需要类和禁用任何客户端代码(CSS或JS)的ID,因为它不值得额外的开销。类可以作为ID工作得很好 - 没有什么能阻止你拥有许多独特的(一次性使用)类,并且从可维护性的角度来看,这样做并没有真正的问题。
答案 1 :(得分:0)
有可能在几个方面,其中没有一个是优雅的。
您可以预测生成的ID:
#ctl$00_mycontainer_idofmylabel
{
padding: 100px;
}
您可以动态创建css类名称
cssLiteral.Text = "#" + myLabel.ClientID + @"{ padding: 100px; }";
您可以覆盖标签的ClientID
myCustomLabel.ClientID = "myHandCraftedId" // where myCustomLabel is an instance of some CustomLabel class that extends Label and overrides ClientID property.