在.Net 模板页中使用CSS样式

 

使用了.Net2.0的母版后,由于每个网页都独立在body中,无法添加CSS,把CSS的引用写到母版中又会也会引起一些相对路径的问题。后来上网查看了一下,多数的解决方式是在后台代码的Load事件中,增加一下代码:

  1. HtmlLink link = new HtmlLink();
  2. link.Href = cssPath;
  3. link.Attributes["rel"] = "stylesheet";
  4. link.Attributes["type"] = "text/css";
  5. 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文件,不会出现路径问题!

posted @ 2009-10-26 09:20  独行剑  阅读(1123)  评论(0编辑  收藏  举报