Asp.net 带有CSS的Control.ClientID

Asp.net 带有CSS的Control.ClientID,asp.net,css,Asp.net,Css,是否可以将css与生成ClientID而不是常规ID的控件一起使用 我现在可以使用cssClass,但我想知道是否有可能使用id: #DivParrentId #LAbelControlId { padding:100px; color:Red; } 这不是一个好办法。许多开发人员使用类似的方法: <style> #<%= MyControl.ClientID %> { padding:100px; } </style> # {

是否可以将css与生成ClientID而不是常规ID的控件一起使用

我现在可以使用cssClass,但我想知道是否有可能使用id:

#DivParrentId #LAbelControlId
{

    padding:100px;
    color:Red;
}

这不是一个好办法。许多开发人员使用类似的方法:

<style>
#<%= MyControl.ClientID %>
{
    padding:100px;
}
</style>

#
{
填充:100px;
}
但坦率地说,我不是它的超级粉丝。它很酸而且易碎。从ASP.NET 4.0开始,您将能够控制代码中元素的ClientID,因此您可以为您知道需要以CSS或JS为目标的元素指定ID


同时,我建议使用类。在我工作的系统中,我们需要类并禁止任何客户端代码(CSS或JS)使用ID,因为这不值得额外的开销。类可以像ID一样正常工作-没有什么可以阻止您拥有许多独特的(一次性)类,从可维护性的角度来看,以这种方式工作并没有什么真正的问题。

这可能有几种方式,但没有一种是优雅的

您可以预测生成的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.

在另一页中,它告诉我:
,所以我不确定是否应该使用
=
。@SiKni8这是正确的。有关更多详细信息,请参见: