Theme下要解释的,主要是CSS样式加载顺序和Skin文件和其加载顺序.
其实CSS样式一样还是根据后出现的覆盖先出现的样式.出现这个顺序是因为Theme设置StylesheetTheme设置的加载位置不同,在<head runat="Server"></header>里面,Theme设置总出现在</head>之前,StylesheetTheme设置总出现在<head runat="Server">之后,而页面级别的Style则在中间.如下:<head id="ctl00_Head1">
<link href="App_Themes/default/default.css" type="text/css" rel="stylesheet" /><!--StylesheetTheme设置-->
<style type="text/css"><!--页面级别Style-->
.test
{
width:100%;
}
</style>
<link href="App_Themes/default2/default.css" type="text/css" rel="stylesheet" /><!--Theme设置-->
</head>
Code
<asp:Label runat="server" width="100"></asp:Label>
<asp:Label runat="server" SkinId="lbl" width="200"></asp:Label>
1.第一行定义会应用到所有Label
2.第二行定义会应用到标明skinId是lbl的Label
(加载顺序:如果用Theme设置,skin文件设置会覆盖本地控件设置,如果用StylesheetTheme设置,则本地控件设置覆盖StylesheetTheme设置)
另外还得说说的就是EnableTheming 属性,它指示是否为指定控件启用主题,默认为 true。大部分控件均具有此属性。值得注意的是:当使用 StylesheetTheme 来引用主题时,EnableTheming 的设置并不会禁用主题.
在 web.config 配置文件中可以为所有网页指定默认的主题文件<configuration> - <system.web> - <pages styleSheetTheme="default">.当然也可以设置Theme.个人建议采用styleSheetTheme设置,这样加载顺序合乎习惯.页面自由度比较大.当然,看情况需要咯.