2011-06-17 50 views
0

我有一些基于HTML元素id的CSS元素。例如现在ASP.NET - 将CSS元素应用于Master的(子)页面的问题

ul#subNav div 
{ 
    /*top:45px !important;*/ 
    position: relative; 
    visibility: hidden; 
    margin: 0; 
    padding: 0; 
    background: #C6DEFF; 
    border: 1px solid #5970B2; 
    z-index:2020; 
} 

,我不能这个样式应用于基于母版页上的网页(ASP.NET Web表单),因为在渲染时,UL的ID“subnav”变为“ctl100_subnav”因此浏览器不再应用CSS。

任何想法来克服这一点?

在此先感谢。

回答

1

向SubNav div添加一个类,并将CSS应用于类而不是ID。

,或者你使用.NET 4

为了避免在控制命名冲突,ASP.NET 2.0/3.5客户端ID使用的,这使得每个控制生成的ID属性唯一到该页面。然而,这些ID的产生是漫长而不可预测的。使用JavaScript这样的脚本语言进行客户端编程的开发人员,在谈到在脚本中引用这些ClientID时会有悲伤的故事。

ASP.NET 4.0通过新的ClientIDMode属性,现在通过ASP.NET控件生成的ClientID将控件返回给开发人员。我个人认为,这是ASP.NET团队做出的一个很好的设计决策,因为许多ASP.NET开发人员正在使用客户端编程来增强其接口,并且像jQuery这样的流行JavaScript框架越来越受欢迎。

+0

同意。但万一我被迫使用ID,有什么出路吗? (我没有使用.NET 4.0,我只使用ver 2.0) – NetTechie 2011-06-17 12:03:16