2010-09-15 86 views
2

如果我将一个特定的css类分配给控件,它会创建类,但是如果我同时将皮肤标识赋予相同的控件,那么此皮肤标识将覆盖CSS类。 这是为什么发生?皮肤主题和CSS类

现在,如果我在css样式表中使用!important,那么css类属性将由控件继承。 .lblUserName1 { width:400px; line-height:32px; 颜色:红!重要; font-weight:bold; background-color:#669999; } 请帮我...它制造混乱的堆..

回答

1

皮肤可能使用内联CSS在你的控制风格属性这种方式由于CSS herarchy你在皮肤主题定义将覆盖您已经定义了什么在存放外部.css文件的类中。

调试CSS和HTML的最佳方法是查看代码本身。

+0

你没有对!重要哪些当im使用在控件的相应属性的CSS类,然后尽管采取皮肤ID属性它需要CSS类属性.. – Srivastava 2010-09-15 07:22:08

+0

@Srivastava,我不知道你到底用的是什么!重要的标签。 !重要的是会覆盖同一层次级别上的css属性,如果您在不同级别上设置这些属性,结果可能会有所不同。尽量避免使用!特别是当你不知道ASP.NET中的皮肤如何设置css属性时。 – eugeneK 2010-09-15 10:41:40

2

你应该避免使用!important;你可以。基本上建议您只有在重写某些您无法改变的预加载样式时才使用它。

ID基本上比上课好。检查在这里标记为正确的答案:CSS class priorities

0

还有另一种解决方案 - 使用StyelSheetTheme属性。当在web.config或(page)文件中将主题应用为主题属性时:

<pages Theme="myTheme"> 

任何本地cssClass控件都将被覆盖。

然而:

<pages StyleSheetTheme="myTheme"> 

将是控制将保持它的分配的CssClass属性第二含义。

所以,不幸的是你不能兼得(它本来不错),但你至少可以使主题的二次选择,而不必为主题覆盖本地的CssClass设置。

+0

它需要的“s” – 2014-08-27 21:24:55

+0

@ matthew_360不对,不是根据 https://msdn.microsoft.com/en-us/library/system.web.ui.page为“样式表里”开始用小写。 stylesheettheme(v = vs.110).aspx 它似乎不区分大小写。 – JPH 2015-06-10 08:46:18