【发布时间】:2015-10-09 21:53:49
【问题描述】:
我有母版页和一些内容页。
我想为每个内容页面分配不同的 css 文件。
(不使用主题)
我该怎么做?
【问题讨论】:
标签: asp.net
我有母版页和一些内容页。
我想为每个内容页面分配不同的 css 文件。
(不使用主题)
我该怎么做?
【问题讨论】:
标签: asp.net
我通过在母版页中添加标题占位符并在内容页中明确指定 css 来做到这一点。
在大师中:
<head runat="server">
<title></title>
<link href="~/css/common.css" rel="stylesheet" type="text/css" />
<!-- loads of other stuff / -->
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
在内容中:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<link href="../css/SomeContent.css" rel="stylesheet" type="text/css" />
<script src="../js/SomeJsToo.js" type="text/javascript"></script>
</asp:Content>
【讨论】:
如果您使用的是 Visual Studio 2008,那么您将度过一段非常轻松的时光。首先制作一个这样的母版页:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</form>
</body>
</html>
现在根据这个母版页制作一个内容页:
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
</asp:Content>
现在,您只需在 Content1 占位符中放置您希望应用于该页面的样式表。
就是这样。希望这对你有用。
【讨论】:
为所有页面使用外部主 CSS 文件:
<link rel="stylesheet" type="text/css" href="master.css" />
然后您可以使用样式标签在各个内容页面上使用嵌入式 CSS,例如:
<style type="text/css">
h1 {color:red}
p {color:blue}
</style>
【讨论】:
我已经尝试了上述许多方法,但仍然出现错误。最后我在页面加载时使用了以下代码,它工作正常:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim css1 As New HtmlLink
css1.Href = ResolveUrl("report.css")
css1.Attributes("rel") = "stylesheet"
css1.Attributes("type") = "text/css"
css1.Attributes("media") = "all"
Me.Page.Header.Controls.Add(css1)
End Sub
【讨论】: