it-swarm.dev

마스터 페이지에 CSS를 포함시키는 방법?

내 asp.net 웹 사이트의 특정 페이지에만 CSS 참조를 포함 시키려면 어떻게합니까? 마스터 페이지에 참조를 포함 시키면 웹 사이트의 모든 페이지가 CSS 참조를 공유합니다.

23
Zo Has

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>
38
Marko

내 상황에서 솔루션의 다른 위치에서 동일한 마스터 페이지를 사용했습니다. 그리고 내 CSS 파일에 대한 참조에 ~ (Tilde) 접두사이므로 reference에 response.write를 추가했습니다.

<%= ResolveUrl("~/css/myStyle.css") %>
6

사이트에서 둘 이상의 마스터 페이지를 사용할 수 있습니다.

중첩 된 마스터 페이지를 사용할 수도 있습니다. 최상위 레벨에는 일반 사이트 구조가 있고 각기 다른 영역마다 하나의 마스터 중첩 마스터 페이지가있을 수 있습니다.

프로젝트를 마우스 오른쪽 단추로 클릭하고 추가를 선택하면 WebForm 대신 WebContentForm 옵션을 선택하십시오. 그런 다음 적절한 마스터 페이지를 선택할 수 있습니다.

중첩 된 마스터 페이지에서 MasterPageFile을 최상위 마스터 페이지와 동일하게 설정하십시오.

Edit @Marko의 접근 방식과 결합하면 다음을 가질 수 있습니다 ...

여기서 장점은 모든 재정의를 한 번만 작성하면된다는 것입니다.

최상위 마스터 페이지 :

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

재정의없이 중첩 된 MasterPage

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

Override.css가 포함 된 중첩 된 MasterPage One

<%@ 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>

그런 다음 웹 양식에 적절한 마스터 페이지를 설정하십시오.

6
Daniel Dyson