una pagina page net masterpage maestra diseño create crear content como aspx asp agregar asp.net master-pages asp.net-2.0

asp.net - pagina - ¿Cómo incluir CSS en las páginas maestras?



login master page aspx (3)

¿Cómo incluyo referencias de CSS solo en ciertas páginas de mi sitio web asp.net? Si incluyo la referencia en mi página maestra, todas las páginas del sitio web comparten la referencia de CSS.


En mi situación, usé la misma página maestra desde diferentes ubicaciones en la solución. Y dado que el prefijo ~ (Tilde) en la referencia a mis archivos css, agregué un response.write a la referencia de esta manera:

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


Puede utilizar más de una página maestra en su sitio.

También puede utilizar páginas maestras anidadas. El nivel superior puede tener la estructura general del sitio, y luego una página maestra maestra anidada para cada una de sus diferentes áreas.

Cuando hace clic con el botón derecho en su proyecto y selecciona Agregar, elige la opción WebContentForm, en lugar de WebForm. A continuación, puede seleccionar la página maestra adecuada.

En sus páginas maestras anidadas, establece el MasterPageFile igual a su página maestra de nivel superior.

Editar Cuando se combina con el enfoque de @Marko, podría tener lo siguiente ...

La ventaja aquí es que todas sus modificaciones solo tienen que ser escritas una vez.

MasterPage de nivel superior:

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

MasterPage anidado sin anular

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

MasterPage uno anidado con 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 anidado dos con 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>

Luego, simplemente configure la página maestra apropiada en cualquiera de sus formularios web.


Solo agregue un CSS ContentPlaceHolder con un valor predeterminado en él.

Básicamente, el archivo CSS que especifique como predeterminado se incluirá a menos que anule ese marcador de posición con una etiqueta <asp:Content /> de una página secundaria.

Tu página maestra debería verse algo como esto.

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

Luego, desde cualquier página que use esa Página maestra, simplemente puede anularla con una hoja de estilo diferente.

En (ejemplo) AboutUs.aspx

<asp:Content ID="Content1" ContentPlaceHolderID="Stylesheets" runat="server"> <link rel="stylesheet" href="/css/form.css" type="text/css" /> </asp:Content>