在.Net 模板页中使用CSS样式
使用了.Net2.0的母版后,由于每个网页都独立在body中,无法添加CSS,把CSS的引用写到母版中又会也会引起一些相对路径的问题。后来上网查看了一下,多数的解决方式是在后台代码的Load事件中,增加一下代码:
- HtmlLink link = new HtmlLink();
- link.Href = cssPath;
- link.Attributes["rel"] = "stylesheet";
- link.Attributes["type"] = "text/css";
- page.Header.Controls.Add(link);
例如: HtmlLink link = new HtmlLink();
link.Href = "App_Themes/Default/default.css";
link.Attributes["rel"] = "stylesheet";
link.Attributes["type"] = "text/css";
Header.Controls.Add(link);
当然这也是一种解决方法,但是这样就没有办法使用VS的页面设计器,而且导致了每个页面的Load都需要添加这样的代码,即使把它封装成类,多少也会使得代码看起来不够干净。
我们希望可以有一个更好,更标准的解决方法,那就是皮肤功能。具体步骤如下:
1、为网站添加一套皮肤,如本例名为MyTheme
2、在皮肤文件夹中添加一个CSS文件,并编写CSS代码。
3、在web.config文件中增加所有页面的默认主题
这是打开设计器,CSS的样式被应用在页面中,并且在运行时也能正确定位CSS文件,不会出现路径问题!