代码之家  ›  专栏  ›  技术社区  ›  Zo Has

如何在母版页中包含CSS?

  •  23
  • Zo Has  · 技术社区  · 14 年前

    如何将CSS引用仅包含在我的asp.net网站的某些页面中?如果我在母版页中包含引用,则网站的所有页面都将共享CSS引用。

    3 回复  |  直到 14 年前
        1
  •  38
  •   Marko    14 年前

    只需添加一个CSS ContentPlaceHolder,其中包含一个默认值。

    <asp:Content /> 来自子页的标记。

    <head>
        <asp:ContentPlaceHolder ID="Stylesheets" runat="server">
            <link rel="stylesheet" href="/css/master.css" type="text/css" />
        </asp:ContentPlaceHolder>
    </head>
    

    然后,从使用该母版页的任何页面中,您只需使用不同的样式表覆盖它。

    关于(示例)AboutUs.aspx

    <asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
        <link rel="stylesheet" href="/css/form.css" type="text/css" />
    </asp:Content>
    
        2
  •  6
  •   Daniel Dyson    14 年前

    您可以在网站上使用多个母版页。

    右键单击项目并选择“添加”时,将选择“WebContentForm”选项,而不是“WebForm”。然后您可以选择适当的母版页。

    在嵌套的母版页中,将母版页文件设置为顶级母版页。

    编辑 结合@Marko的方法,你可以有以下几点。。。

    顶级母版页:

    <head>
        <asp:ContentPlaceHolder ID="Stylesheets" runat="server">
            <link rel="stylesheet" href="/css/default.css" type="text/css" />
        </asp:ContentPlaceHolder>
    </head>
    

    无覆盖的嵌套母版页

    <%@ Page Language="C#" MasterPageFile="~/Site.master"%>
    //don't reference the Stylesheets ContentPlaceHolder and the default is rendered
    

    带override.css的嵌套母版页1

    <%@ Page Language="C#" MasterPageFile="~/Site.master"%>
    <asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
        <link rel="stylesheet" href="/css/override.css" type="text/css" />
    </asp:Content>
    

    带secondOverride.css的嵌套母版页2

    <%@ Page Language="C#" MasterPageFile="~/Site.master"%>
    <asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
        <link rel="stylesheet" href="/css/secondOverride.css" type="text/css" />
    </asp:Content>
    

    然后,只需在任何web表单上设置适当的母版页。

        3
  •  6
  •   theodor.johannesen    10 年前

    <%= ResolveUrl("~/css/myStyle.css") %>
    
    推荐文章