:: Estilizando um Menu de Salto (JumpMenu) ::
O menu de salto
Um menu de salto é obtido com objetos de formulário. Uma tag select com várias tag's option.
Abaixo um menu de salto já estilizado e que servirá de base para este tutorial. Clique na setinha para abrir o menu.
A estrutura do menu
Ao abrir o menu mostrado acima você pode verificar a sua estrutura assim constituida:
- um título: Meu Menu de Salto;
- uma linha de separação: ------------;
- um subtítulo para links: TUTORIAIS CSS;
- cinco links para tutoriais CSS;
- uma linha de separação: ------------;
- um subtítulo para links: TUTORIAIS CSS;
- cinco links para tutoriais css;
- uma linha de separação: ------------;
- um subtítulo para links: TUTORIAIS HTML;
- seis links para tutoriais html;
- uma linha de separação: ------------;
- um subtítulo para links: TUTORIAIS JAVASCRIPT;
- cinco links para tutoriais javascript;
Nota: Se você contar o número de itens mostrados acima, na estrutura do menu vai chegar a um total de 23 (vinte e três) itens.
Cada um dos itens é definido por uma tag HTML <option></option>, em consequência, são 23 tags <option></option>
O HTML do menu
Observe com atenção o HTML que constrói a estrutura do menu de salto, com as 23 tags<option></option>:
<form>
<select>
<option>Meu Menu de Salto</option><!--Título do Menu-->
<option>-----------------</option><!--Separador-->
<option>TUTORIAIS CSS</option><!--Subtítulo-->
<option value="#">Sintaxe </option><!--Link-->
<option value="#">Fontes</option><!--Link-->
<option value="#">Bordas</option><!--Link-->
<option value="#">Fundos</option><!--Link-->
<option value="#">Menus</option><!--Link-->
<option>------------------</option><!--Separador-->
<option>TUTORIAIS HTML</option><!--Subtítulo-->
<option value="#">
Estrutura do documento</option><!--Link-->
<option value="#">As metatags</option><!--Link-->
<option value="#">O uso da tag <title></option><!--Link-->
<option value="#">Entendendo <acronym></option><!--Link-->
<option value="#">O que é XHTML</option><!--Link-->
<option value="#">Normas HTML 4</option><!--Link-->
<option>-----------------</option><!--Separador-->
<option>TUTORIAIS JAVASCRIPT</option><!--Subtítulo-->
<option value="#">Relógio</option><!--Link-->
<option value="#">Barra de status</option><!--Link-->
<option value="#">Efeito neve</option><!--Link-->
<option value="#">Handlers de evento</option><!--Link-->
<option value="#">Janela pop up</option><!--Link-->
</select>
</form>
A estilização
AS CORES DE FUNDO
Foram usadas quatro cores de fundo para estilizar o menu:
- branca para fundo dos separadores;
- tom escuro para os Subtítulos
- tom médio para links ímpares (1°, 3° e 5° links)
- tom claro para links pares (2°, 4° e 6° links)
AS CLASSES DE ESTILOS
Vamos então criar 04 (quatro) classes de estilização para estes fundos:
- classe .sep para os separadores;
- classe .stit para os Subtítulos
- classe .impar para os links ímpares (1°, 3° e 5° links)
- classe .par para os links pares (2°, 4° e 6° links)
AS LETRAS E TAMANHOS
E, para completar a estilização do nosso menu falta apenas definir o tamanho e cor das letras, bem como a largura total da janela.
Estes parâmetros são válidos para todo o menu e podemos defini-los na tag <select> criando para isso uma id a ser aplicada naquela tag
Chamaremos esta id de #meuselectA folha de estilos
<style type="text/css">
#meuselect {
width:135px; /* Largura da janela do menu */
background:#F0FFF0; /* Cor do fundo do menu
em repouso */
font:11px arial, helvetica,
sans-serif; /* Tamanho e tipo das letras */
color:#36648B; /* Cor das letras do Título do menu */
}
#meuselect option.stit {
width:135px; /* Largura da janela do menu para NN */
background-color:#C1CDCD; /* Cor do fundo dos
Subtítulos */
color:#003366; /* Cor das letras dos Subtítulos */
}
#meuselect option.sep {
width:135px; /* Largura da janela do menu para NN */
background-color:#FFFFFF; /* Cor do fundo dos
separadores */
color:#000000; /* Cor dos traços dos separadores */
}
#meuselect option.impar {
width:135px; /* Largura da janela do menu para NN */
background-color:#E0EEE0; /* Cor do fundo dos
links impares */
color:#00008B; /* Cor das letras dos links impares */
}
#meuselect option.par {
width:135px; /* Largura da janela do menu para NN */
background-color:#F0FFF0; /* Cor do fundo dos
links pares */
color:#009ACD; /* Cor das letras dos links pares */
}
</style>
O código HTML completo
Abaixo o código HTML da página que contém o menu de salto estilizado conforme mostrado neste tutorial, para você copiar para seu HD, estudar e fazer as adaptações para seu caso.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<html>
<head>
<title>Estilizar Menu de Salto</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<style type="text/css">
#meuselect {
width:135px;
background:#F0FFF0;
font:11px arial, helvetica, sans-serif;
color:#36648B;
}
#meuselect option.stit {
width:135px;
background-color:#C1CDCD;
color:#003366;
}
#meuselect option.sep {
width:135px;
background-color:#FFFFFF;
color:#000000;
}
#meuselect option.impar {
width:135px;
background-color:#E0EEE0;
color:#00008B;
}
#meuselect option.par {
width:135px;
background-color:#F0FFF0;
color:#009ACD;
}
</style>
<script language="JavaScript"
type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.
selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?")
)>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document;
n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<
d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++)
x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n);
return x;
}
function MM_jumpMenuGo(selName,targ,restore){ //v3.0
var selObj = MM_findObj(selName);
if (selObj) MM_jumpMenu(targ,selObj,restore);
}
//-->
</script>
</head>
<body>
<form name="form">
<select name="menu" id="meuselect"
"onChange="MM_jumpMenu('parent',this,0)">
<option>Meu Menu de Salto</option>
<option class="sep">
-----------------
</option>
<option class="stit">
TUTORIAIS CSS
</option>
<option value="#" class="impar">
Sintaxe
</option>
<option value="#" class="par">
Fontes
</option>
<option value="#" class="impar">
Bordas
</option>
<option value="#" class="par">
Fundos
</option>
<option value="#" class="impar">
Menus
</option>
<option class="sep">
------------------
</option>
<option class="stit">
TUTORIAIS HTML
</option>
<option value="#" class="impar">
Estrutura do documento
</option>
<option value="#" class="par">
As metatags
</option>
<option value="#" class="impar">
O uso da tag
<title>
</option>
<option value="#" class="par">
Entendendo
<acronym>
</option>
<option value="#" class="impar">
O que é XHTML
</option>
<option value="#" class="par">
Normas HTML 4
</option>
<option class="sep">
-----------------
</option>
<option class="stit">
TUTORIAIS JAVASCRIPT
</option>
<option value="#" class="impar">
Relógio
</option>
<option value="#" class="par">
Barra de status
</option>
<option value="#" class="impar">
Efeito neve
</option>
<option value="#" class="par">
Handlers de evento
</option>
<option value="#" class="impar">
Janela pop up
</option>
</select>
</form>
</body>
</html>
Notar no código acima o javascript necessário para fazer o menu funcionar.
Nota: A estilização de cores de fundo para Subtítulos e Links conforme mostrada neste tutorial não é visializada no navegador Opera. :-(
Se você copiar-colar este código, elimine no seu editor os espaços em branco nas linhas do código, introduzidos aqui por quebras de linha devido a largura total da janela onde está o texto do tutorial.
Dica final
Neste tutorial ensinei como estilizar o grupo data-hora usando folha de estilo "inline".
Com este tipo de folha de estilo você perde flexibilidade para no futuro alterar a estilização, pois terá que alterá-la dentro de cada tag estilizada. Caso você esteja usando arquivos CSS separados (folhas de estilo externas) ou pretenda ter maior controle sobre a estilização, crie classes para aplicar nas tags e defina os estilos nas CSS externas.
Última modificação: 2006/08/30 09:25:45 GMT
Criado em: 2004-04-25
Atualizado em: 2005-03-12







