动态更改CSS

时间:2009-10-01 02:16:08

标签: c# asp.net css

我需要确定哪些 CSS 应该应用于某些特定页面。我有一个包含子项的母版页, default.aspx services.aspx 是母版页的子项之一。我想要的是当用户导航 Default.aspx Services.aspx 时,系统应该应用 DefaultCSS 文件,否则我想应用一些普通的css 文件。

我怎么能这样做,对于这个问题,哪种做法会更好。

提前致谢。

4 个答案:

答案 0 :(得分:9)

我想我找到了我要找的东西:

protected void Page_Init(object sender, EventArgs e)
    {
        HtmlLink css = new HtmlLink();
        css.Href = "css/fancyforms.css";
        css.Attributes["rel"] = "stylesheet";
        css.Attributes["type"] = "text/css";
        css.Attributes["media"] = "all";
        Page.Header.Controls.Add(css);
    }

MSDN也在描述如何实现这一目标:HtmlLink Class

答案 1 :(得分:8)

这样做更容易,更灵活:

<强>母版

<head>
    <asp:ContentPlaceHolder ID="head" runat="server">
    </asp:ContentPlaceHolder>
</head>

儿童 - 第1页:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="css/fancyforms.css" rel="stylesheet" type="text/css" />
</asp:Content>

儿童 - 第2页:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
    <link href="css/NOTfancyforms.css" rel="stylesheet" type="text/css" />
</asp:Content>

答案 2 :(得分:2)

您可能也想调查使用主题。

http://msdn.microsoft.com/en-us/library/ykzx33wh.aspx

答案 3 :(得分:1)

您可以声明性地包含CSS文件,即在*.aspx文件中:例如参见this answer