ASP
.NET - Criando Master Pages usando definições CSS
Usando Master Pages podemos compartilhar conteúdo dentre diversas páginas;podemos também usar as Master Pages para criar um leiaute comum. Dessa forma nosso website fica mais fácil de manter , estender e modificar.
A figura abaixo representa o processo que ocorre durante a execução da página que usa uma master page: as duas páginas são mescladas para exibir o conteúdo.
![]() |
| fonte: http://www.asp.net/web-forms/tutorials/master-pages/creating-a-site-wide-layout-using-master-pages-cs |
Neste artigo veremos como combinar leiautes CSS e Master Page para definir leiautes de páginas em um website.
Vou usar o Visual Web Developer 2010 Express Edition nos exemplos mostrado neste artigo.
Abra o Visual Web Developer 2010 Express Edition e crie um novo projeto do tipo ASP .NET Web Application com o nome MasterPage_CSS;
![]() |
Ao clicar no botão OK será criado um projeto ASP .NET contendo uma estrutura já pronto para ser utilizada conforme mostrada na janela Solution Explorer:
![]() |
Na estrutura criada vemos
uma pasta chamada Styles e no seu
interior o arquivo Site.css que é o
arquivo de estilos usado; Este arquivo irá aplicar estilos nas páginas do site; Vemos também o arquivo Site.Master, onde a extensão .Master indica que este arquivo é uma master page. O arquivo de estilo Site.css esta sendo usado pela Master Page para definir o leiaute da página.
|
Se abrirmos o arquivo Site.Master iremos notar que existe uma referência ao arquivo Site.css que esta na pasta definida entre as tags <head> conforme abaixo:
![]() |
Além de referenciar o arquivo de estilo conforme mostrada acima podemos também definir os estilos diretamente na Master Page, o que não é muito recomendado, mas é possível de ser feito.
Se executarmos o projeto veremos na figura abaixo o leiaute atual definido pela Master Page e pelo arquivo de estilo Site.css:
![]() |
Vamos alterar o leiaute da página de apresentação definindo outro arquivo de estilo e alterando a nossa master page.
Para nos ajudar a criar um arquivo de estilo podemos usar os recursos do próprio Visual Web Developer (e do Visual Studio). Clicando duas vezes sobre o arquivo Site.css o mesmo será aberto no editor e através do menu Styles podemos incluir uma rega de estilo (Add Style Rule) ou criar um estilo (Build Style):
![]() |
Vamos criar um novo arquivo de estilo chamado Macoratti.css; Clique com o botão direito sobre a pasta Styles e selecione Add New Item;
A seguir escolha o template Style Sheet e informe o nome Macoratti.css e clique Add;
![]() |
A seguir defina o seguinte código no arquivo de estilo Macoratti.css:
![]() |
Observe que no arquivo de estilo definimos, além do body, 3 divs :
Vamos aproveitar e criar uma nova pasta no interior da pasta Styles com o nome Images. Clique com o botão direito do mouse sobre a pasta Styles e selecione Add New Folder informando a seguir o nome Images;
Após isso vamos incluir uma imagem na pasta Images recém criada. Clique com o botão direito do mouse sobre a pasta Images e selecione Add Existing Item e selecione uma imagem de sua preferência. Eu inclui a imagem maco10.jpg.
A seguir repita o procedimento acima e inclua uma outra imagem a seu gosto com o nome cdasp.gif
Agora criar uma nova master page chamada Mac.Master no projeto via menu Project, opção Add New Item;
Selecionando a opção Master Page, informando Mac.Master e clicando no botão Add;
![]() |
Agora que temos a nossa master page criada vamos definir o seu código da seguinte forma:
| <%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Mac.master.vb" Inherits="MasterPage_CSS.Mac" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Master Page com CSS</title> <link href="~/Styles/Macoratti.css" rel="stylesheet" type="text/css" /> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div id="headercontent"> <asp:Image ID="Image1" ImageUrl="~/Styles/Images/maco10.jpg" runat="server" /> </div> <div id="leftcontent" > <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> <div id="rightcontent"> <a href="pagina1.aspx">Pagina 1</a><br /> <a href="pagina2.aspx">Pagina 2</a><br /> <a href="pagina3.aspx">Pagina 3</a><br /> <a href="pagina4.aspx">Pagina 4</a><br /> <a href="pagina5.aspx">Pagina 5</a><br /> </div> </form> </body> </html> |
Vejamos o que temos neste código:
1- Declarações
a- A declaração <form id="form1" runat="server"> pois todas as páginas ASP.NET normalmente têm um formulário Web, e, porque a master page pode incluir controles Web que devem aparecer dentro de um formulário Web. Não se esqueça de adicionar o formulário Web à sua master page.
b- A declaração <asp:ContentPlaceHolder ID="head" runat="server"></asp:ContentPlaceHolder> - Indica um controle ContentPlaceHolder chamado head - este controle ContentPlaceHolder aparece dentro do controle de servidor <head> e pode ser usado para declarativamente adicionar conteúdo ao elemento <head>.
c-) A declaração <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> - Indica um controle ContentPlaceHolder chamado ContentPlaceHolder1 - esse controle ContentPlaceHolder aparece dentro do formulário Web e serve como a região para a interface da página de conteúdo do usuário.
2- A diretiva @Master:
A diretiva @Master é similar à diretiva @Page que aparece em páginas ASP.NET. Ela define a linguagem server-side (C#/VB) usada e as informações sobre a localização e a herança da classe code-behind master page.
3- A definição do link para o arquivo de estilo Macoratti.css presente na pasta Styles entre as tags <head> :
<link href="~/Styles/Macoratti.css" rel="stylesheet" type="text/css" />
4- A definição de 3 divs : headercontente, leftcontent e rightcontent conforme abaixo:
1- na div headercontent incluímos um controle Image e atribuímos a imagem maco10.jpg a propriedade ImageUrl:
<div
id="headercontent">
<asp:Image ID="Image1"
ImageUrl="~/Styles/Images/maco10.jpg"
runat="server" />
</div>
2- Na div leftcontent incluímos o ContentPlaceHolder :
<div
id="leftcontent" >
<asp:ContentPlaceHolder ID="ContentPlaceHolder1"
runat="server">
</asp:ContentPlaceHolder>
</div>
3- Na div rightcontent incluímos alguns links:
<div
id="rightcontent">
<a href="pagina1.aspx">Pagina 1</a><br
/>
<a href="pagina2.aspx">Pagina 2</a><br
/>
<a href="pagina3.aspx">Pagina 3</a><br
/>
<a href="pagina4.aspx">Pagina 4</a><br
/>
<a href="pagina5.aspx">Pagina 5</a><br
/>
</div>
Veja como ficou o leiaute da master page Mac.Master :
![]() |
Vamos incluir um novo web form no projeto via menu Project -> Add New Item escolhendo o template Web Form using Master Page e informando o nome Macoratti.aspx e clicando em Add;
![]() |
A seguir selecione a master page Mac.Master e clique em OK;
![]() |
Executando o projeto (clique com o botão direito sobre a página Macoratti.aspx e escolha a opção Set As Start Page no menu suspenso) iremos obter:
![]() |
Vamos agora criar uma nova master page para definir um leiaute com 3 colunas.
Inclua uma nova master page com o nome Mac1.Master no projeto e defina o seu código conforme abaixo:
| <%@ Master Language="VB" AutoEventWireup="false" CodeBehind="Mac1.master.vb" Inherits="MasterPage_CSS.Mac1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Master Page com CSS 2</title> <link href="~/Styles/Macoratti1.css" rel="stylesheet" type="text/css" /> <asp:ContentPlaceHolder ID="head" runat="server"> </asp:ContentPlaceHolder> </head> <body> <form id="form1" runat="server"> <div id="body_area"> <div id="left"> <div class="InnerText"> <div id="logo"> <asp:Image ID="Image1" ImageUrl="~/Styles/Images/maco10.jpg" runat="server" Height="26px" Width="165px" /> </div> <div class="Nav"> <ul class="Nav"> <li><a href="">Link1</a></li> <li><a href="">Link2</a></li> <li><a href="">Link3</a></li> <li><a href="">Link3</a></li> </ul> </div> </div> </div> <div id="mid"> <div id="banner"> <asp:Image ID="Image2" ImageUrl="~/Styles/Images/cdasp.gif" runat="server" /> </div> <div class="InnerText"> <asp:contentplaceholder id="Content1" runat="server"> </asp:contentplaceholder> </div> </div> <div id="right"> <div class="InnerText"> Direito </div> </div> <div id="footer"> <div class="InnerText"> Copyright © 2010 Macoratti.net - Todos os direitos reservados. </div> </div> </div> </form> </body> </html> |
Observe que no código definido para esta master page temos as seguintes divs e referências:
1- Referência ao arquivo de estilo Macoratti1.css que iremos criar a seguir
2- Declaração das seguintes divs:
Precisamos agora criar um novo arquivo de estilo chamado Macoratti1.css contendo o seguinte código:
body
{
margin:0;
padding-top:0px;
padding-right:0;
padding-bottom:0;
padding-left:0;
font-family:Arial, Helvetica, sans-serif;
background-color:#D5CDAC;
}
div, h1, h2, h3, h4, p, form, label, input, textarea, img, span{
margin:0; padding:0;
}
ul{
margin:0;
padding:0;
list-style-type:none;
font-size:12px;
line-height:150%;
}
.spacer{
clear:both;
font-size:0;
line-height:0;
}
/*-------------------body_area--------------------*/
#body_area{
width:1004px;
margin-top:10px;
margin-right:auto;
margin-bottom:0;
margin-left:auto;
font-family:Tahoma;
font-size: 12px;
font-style:normal;
line-height:normal;
font-weight:bold;
font-variant:normal;
text-transform:none;
text-decoration:none;
padding: 0px;
float: none;
}
#logo
{
width:170px;
height:100px;
}
#left {
margin: 0px;
float: left;
width: 185px;
height: 500px;
padding-top:4px;
padding-right:0px;
padding-bottom:0px;
padding-left:0px;
background-color:#EDE8D3;
margin-bottom:12px;
}
#left div.InnerText
{
padding-left:12px;
}
div.Nav
{
width:140px;
margin-right:auto;
margin-left:auto;
background-color:#E3DCBD;
padding-bottom:20px;
}
ul.Nav
{
padding: 8px 0px 0 22px;
background-color:#E3DCBD;
color:#000;
margin:0 0 0 2px;
}
ul.Nav li
{
background:url('images/nav_div2.gif') repeat-x left bottom;
font-size:0;
line-height:0
}
ul.Nav li a
{
background-position: inherit 6px;
display:block;
color:#787159;
text-decoration:none;
font-weight:bolder; font-style:normal; font-variant:normal;
line-height:17px;
font-size:11px; font-family:Arial, Helvetica, sans-serif;
padding-left:8px; padding-right:0; padding-top:0; padding-bottom:0;
background-color:inherit;
background-image: url('images/arrow.gif');
background-repeat: no-repeat;
background-attachment: inherit;
}
ul.Nav li a:hover{
color:#A73F00;
background-color:#EFECC8;
}
#banner
{
width:620px;
height:100px;
margin-left:auto;
margin-right:auto;
text-align:center ;
background-color:Gray ;
}
#mid {
margin: 0px;
padding: 0px;
float: left;
width: 628px;
color:black;
line-height:150%;
font-weight:normal ;
font-size:12px;
background-color:#E3DCBD;
padding-bottom:20px;
margin-bottom:12px;
}
#mid div.InnerText
{
margin-left:12px;
margin-right:12px;
margin-top:20px;
padding:0;
color:black;
}
#mid a
{
color:#A73F00;
text-decoration:none;
font-weight:bolder ;
}
#right{
margin: 0px;
float: right;
width: 185px;
padding-top:2px;
padding-right:0px;
padding-bottom:0px;
padding-left:0px;
margin-bottom:12px;
}
#right div.InnerText
{
padding-left:10px;
}
/*-----------------------rodapé--------------------*/
#footer
{
clear:both;
border:solid 1px black;
}
#footer div.InnerText
{
padding:10px;
}
|
Finalmente vamos criar um web form chamado Macoratti1.aspx usando o template Web Form using Master Page.
Após criar a página clique com o botão direito sobre a página Macoratti.aspx e escolha a opção Set As Start Page no menu suspenso.
Executando o projeto a página Macoratti1.aspx exibirá o seguinte leiaute:
![]() |
Vimos assim como definir o leiaute de páginas ASP .NET usando Master page e arquivos de estilo (CSS) com dois exemplos bem simples. Existem exemplos mais complexos que incluem master pages aninhadas que veremos em outro artigo.
Pegue o projeto completo
aqui:
MasterPage_CSS.zip
1Pedro 1:16
porquanto está escrito: Sereis santos, porque eu sou santo.Referências: