Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 动态更改CSS_C#_Asp.net_Css - Fatal编程技术网

C# 动态更改CSS

C# 动态更改CSS,c#,asp.net,css,C#,Asp.net,Css,我需要确定哪些CSS应用于某些特定页面。我有一个母版页,它有子项和默认值。aspx和服务。aspx是母版页的子项之一。我想要的是当用户导航Default.aspx或Services.aspx时,系统应该应用DefaultCSS文件,否则我想应用一些普通css文件 我如何才能做到这一点,对于这个问题,什么样的做法会更好 提前谢谢。我想我找到了我要找的东西: protected void Page_Init(object sender, EventArgs e) { Html

我需要确定哪些CSS应用于某些特定页面。我有一个母版页,它有子项和默认值。aspx服务。aspx是母版页的子项之一。我想要的是当用户导航Default.aspxServices.aspx时,系统应该应用DefaultCSS文件,否则我想应用一些普通css文件

我如何才能做到这一点,对于这个问题,什么样的做法会更好


提前谢谢。

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

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还描述了如何实现这一点:

您可以声明性地包括CSS文件,即在
*.aspx
文件中:例如,请参见。

这样做更容易、更灵活:

母版页:

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

子页面1:

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

子页面2:

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

您可能还需要研究使用主题


是的,你是对的,但我不知道我只是想对这一点产生兴趣,但我更喜欢你的解决方案。这种方法的好处是,如果你更改.css、.js、meta标记……不管怎样,你都不必重新编译任何东西。您还将在Visual Studio中为您的.aspx获得设计时支持。谢谢,实际上这也是一种很好的方法。