Подтвердить что ты не робот

Как включить CSS в главные страницы?

Как включить ссылку CSS только в определенные страницы на моем веб-сайте asp.net? Если я включу ссылку на мою главную страницу, все страницы веб-сайта разделяют ссылку CSS.

4b9b3361

Ответ 1

Просто добавьте CSS ContentPlaceHolder со значением по умолчанию в нем.

В принципе, файл CSS, который вы укажете как значение по умолчанию, будет включен, если вы не переопределите этот placeholder с тегом <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

Вы можете использовать более одной главной страницы на своем сайте.

Вы также можете использовать вложенные мастер-страницы. На верхнем уровне может быть общая структура сайта, а затем одна мастерская вложенная главная страница для каждой из ваших разных областей.

Когда вы щелкните правой кнопкой мыши свой проект и выберите "Добавить", вы выбираете вариант WebContentForm вместо WebForm. Затем вы можете выбрать соответствующую главную страницу.

В ваших вложенных мастер-папках вы устанавливаете MasterPageFile равным главной странице верхнего уровня.

Изменить В сочетании с подходом @Marko у вас может быть следующее...

Преимущество в том, что все ваши переопределения должны быть записаны только один раз.

Верхний уровень MasterPage:

<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

Вложенная MasterPage One с override.css

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

Вложенная MasterPage Two с secondOverride.css

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

Затем просто установите соответствующую главную страницу в любой из ваших веб-форм.

Ответ 3

В моей ситуации я использовал одну и ту же главную страницу из разных мест в решении. А так как префикс ~ (Tilde) в ссылке на мои файлы css, я добавил response.write в ссылку так:

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