Xwen的叹息

挣扎于设计和需求之间
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

应用MasterPage的页面引用外部CSS文件的方法

Posted on 2007-07-21 19:08  Xwen  阅读(4205)  评论(9编辑  收藏  举报
    首先,如果在应用了MasterPage的页面<asp:Content〉标签外部添加<link>标签引用CSS文件,会造成编译错误。如果在<asp:Content〉标签内引用CSS文件,会造成解释错误.在MasterPage的<head>标签中引用CSS文件,会导致所有应用了该MasterPage的页面全部引用了该CSS文件,同时会造成一些微妙的引用路径问题。那么如果想让应用了MasterPage的页面引用自己的CSS文件,有这样一种解决方案——使用一个自定义控件,负责向<head>标签写入引用CSS文件的<link>标签,具体可以看一下木野狐的一篇文章ASP.NET 2.0 中配合 Master Page 使用的优化 CSS 模型。

    另外,相对于这种方法,还有一种简单的Hack,首先在MasterPage中添加<link>标签,但是herf属性为空
<head runat="server">
    
<link id="cssStyleSheet1" rel="stylesheet" type="text/css" runat="server" />
    
<link id="cssStyleSheet2" rel="stylesheet" type="text/css" runat="server" />
    
<link id="cssStyleSheet3" rel="stylesheet" type="text/css" runat="server" />
</head>
    数量只能寒一个了……如果不知道用多少,还是多放几个好了。然后在应用了MasterPage的页面里动态修改<link>标签的herf属性
protected void Page_Init(object sender, EventArgs e) {
        
if (!IsPostBack) {
           HtmlLink csslink 
= (HtmlLink)Master.FindControl("cssStyleSheet1");
           csslink.Attributes.Add(
"href","Cart.css");
        }
}
    目前我发现的办法就只有这两种了,如果各位还有什么好的办法,恳请告诉小弟,目前正在弄一个涉及这个问题的应用

    PS.园子是不是有个bug?突然发现,到首页了……似乎发到别的分类的,再编辑默认分类就变首页了……-_-bb