首先,如果在应用了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属性为空
另外,相对于这种方法,还有一种简单的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 " );
}
}