首先,如果在应用了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属性为空
PS.园子是不是有个bug?突然发现,到首页了……似乎发到别的分类的,再编辑默认分类就变首页了……-_-bb
另外,相对于这种方法,还有一种简单的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属性<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>
protected void Page_Init(object sender, EventArgs e) {
if (!IsPostBack) {
HtmlLink csslink = (HtmlLink)Master.FindControl("cssStyleSheet1");
csslink.Attributes.Add("href","Cart.css");
}
}
目前我发现的办法就只有这两种了,如果各位还有什么好的办法,恳请告诉小弟,目前正在弄一个涉及这个问题的应用if (!IsPostBack) {
HtmlLink csslink = (HtmlLink)Master.FindControl("cssStyleSheet1");
csslink.Attributes.Add("href","Cart.css");
}
}
PS.园子是不是有个bug?突然发现,到首页了……似乎发到别的分类的,再编辑默认分类就变首页了……-_-bb