Как включить CSS в мастер-страницы?
Как включить ссылку CSS только на определенные страницы на моем asp.net сайт? Если я включаю ссылку на главную страницу, все страницы веб-сайта используют ссылку CSS.
3 ответов
просто добавьте CSS ContentPlaceHolder со значением по умолчанию в нем.
В основном, файл CSS, который вы указываете по умолчанию, будет включен, если вы не переопределите этот заполнитель с <asp:Content />
тег с дочерней страницы.
ваша главная страница должна выглядеть примерно так.
<head>
<asp:ContentPlaceHolder ID="Stylesheets" runat="server">
<link rel="stylesheet" href="/css/master.css" type="text/css" />
</asp:ContentPlaceHolder>
</head>
затем с любых страниц, использующих эту главную страницу, вы можете просто переопределить ее с помощью другой таблицы стилей.
On (пример) Об этом.аспн
<asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server">
<link rel="stylesheet" href="/css/form.css" type="text/css" />
</asp:Content>
вы можете использовать более одной главной страницы на вашем сайте.
вы также можете использовать вложенные главные страницы. Верхний уровень может иметь общую структуру сайта, а затем одну главную вложенную главную страницу для каждой из ваших областей.
при щелчке правой кнопкой мыши проекта и выберите Добавить, выберите параметр WebContentForm вместо WebForm. Затем вы можете выбрать подходящее masterpage.
во вложенных мастер-страницах вы устанавливаете MasterPageFile равным ваш верхний уровень masterpage.
редактировать в сочетании с подходом @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
вложенная страница MasterPage One с переопределением.в 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 два с 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>
затем просто установите соответствующую главную страницу на любой из ваших веб-форм.
в моей ситуации я использовал одну и ту же страницу из разных мест в решении. И так как префикс ~ (Tilde) в ссылке на мои css-файлы, я добавил ответ.напишите на ссылку так:
<%= ResolveUrl("~/css/myStyle.css") %>