Menus horizontais

Menu horizontal simples

Para definirmos um menu horizontal criamos uma lista não ordenada <ul> a que podemos associar uma classe.

<ul class="menuhorizontal">
<li class="btnesquerdo"><a href="../posicionamento/p3.html">Posic. 3</a></li>
<li><a href="../posicionamento/p4.html">Posic. 4</a></li>
<li><a href="../posicionamento/p5.html">Posic. 5</a></li>
<li><a href="../posicionamento/p6.html">Posic. 6</a></li>
<li><a href="../posicionamento/p7.html">Posic. 7</a></li>
</ul>

A lista não ordenada <ul><li> </li></ul> é então formatada com css.

.menuhorizontal{
margin: 0;
padding: 0;
width: auto;
height: 30px;
}

/*definições gerais do menu*/

.menuhorizontal ul{
list-style: none;
}

/*retirar o estilo das listas*/

.menuhorizontal li{
display: inline;
float: left;
padding:0px;
margin: 0;
width: 80px;
border-left: #666666 thin solid;
}

/*formatar a lista. Definir o tamanho do botão, o seu posicionamento e display: inline por ser um menu horzontal*/

.menuhorizontal a{
display: block;
text-decoration: none;
padding: 6px;
background-color: #CCCCCC;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 14px;
font-weight: bold;
}

/* formatação da âncora e área clicável*/

.menuhorizontal :hover{
background-color: #EEEEEE;
text-decoration: none;
color: #FFFFFF;
}

/*formatação do estado :hover*/

.menuhorizontal li.btnesquerdo{
border: none;}

Menu com mais do que um nível

A estrutura

<ul class="menuhorizontal2">
<li class="btnesquerdo"><a href="../posicionamento/p3.html">Posic. 3</a></li>
<li><a href="#">Posic. 4</a>
<ul>
<li><a href="#">Verde</a></li>
<li><a href="#">Azul</a></li>
<li><a href="#">Vermelho</a></li>
</ul>
</li>
<li><a href="#">Posic. 5</a>
<ul>
<li><a href="#">Barco</a></li>
<li><a href="#">Casa</a></li>
<li><a href="#">Casota</a></li>
</ul>
</li>
<li><a href="../posicionamento/p6.html">Posic. 6</a></li>
<li><a href="../posicionamento/p7.html">Posic. 7</a></li>
</ul>

A formatação

.menuhorizontal2{
margin: 0;
padding: 0;
width: auto;
height: 30px;
}
.menuhorizontal2 ul{
list-style: none;
}
.menuhorizontal2 li{
width: 80px;
padding:0px;
margin: 0;
position: relative;
display: inline;
float: left;
border-left: #999999 thin solid;
}
.menuhorizontal2 li ul{
display: none;
padding: 0;
margin: 0;
position: absolute;
top: 35px;
left: 0;
}

/*nível inferior do menu com display: none*/

.menuhorizontal2 a{
display: block;
text-decoration: none;
padding: 7px;
background-color: #CCCCCC;
font-family:Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-weight: 400;
}

/* formatação da âncora e área clicável*/

.menuhorizontal2 li:hover ul, li.over ul{
display: block;
}

/*mostra nível inferior ao passar o cursor*/

.menuhorizontal2 li.btnesquerdo{
border: none;
}

Menu de vários níveis

Exemplo do site Dynamic Drive



Este menu usa dois ficheiros de javascript linkados na head do documento.

<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript" src="jqueryslidemenu.js"></script>

Estrutura do menu

<div id="myslidemenu" class="jqueryslidemenu">
<ul>
<li><a href="#">Item 1</a></li>
<li><a href="#">Folder 1</a>
<ul>
<li><a href="#">Sub Item 1.1</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
</ul>
</li>
<li><a href="#">Folder 2</a>
<ul>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Folder 2.1</a>
<ul>
<li><a href="#">Sub Item 2.1.1</a></li>
<li><a href="#">Sub Item 2.1.2</a></li>
</ul>
</li>
</ul>
<li><a href="#">Item 4</a></li>
</ul>
</li>
</ul>
</div>

Formatação do menu

.jqueryslidemenu{
font: bold 12px Verdana;
background: #414141;
width: auto;
}
.jqueryslidemenu ul{
margin: 0;
padding: 0;
list-style-type: none;
}

/*Top level list items*/
.jqueryslidemenu ul li{
position: relative;
display: inline;
float: left;
width: 160px;
}

/*Top level menu link items style*/
.jqueryslidemenu ul li a{
display: block;
background: #414141; /*background of tabs (default state)*/
color: white;
padding: 10px 10px;
border-right: 1px solid #778;
color: #2d2b2b;
text-decoration: none;
}

* html .jqueryslidemenu ul li a{ /*IE6 hack to get sub menu links to behave correctly*/
display: inline-block;
}

.jqueryslidemenu ul li a:link, .jqueryslidemenu ul li a:visited{
color: white;
}

.jqueryslidemenu ul li a:hover{
background: black; /*tab link background during hover state*/
color: white;
}


/*1st sub level menu*/
.jqueryslidemenu ul li ul{
position: absolute;
left: 0;
display: block;
visibility: hidden;
}

/*Sub level menu list items (undo style from Top level List Items)*/
.jqueryslidemenu ul li ul li{
display: list-item;
float: none;
}

/*All subsequent sub menu levels vertical offset after 1st level sub menu */
.jqueryslidemenu ul li ul li ul{
top: 0;
}

/* Sub level menu links style */
.jqueryslidemenu ul li ul li a{
font: normal 13px Verdana;
width: 149px; /*width of sub menus*/
padding: 5px;
margin: 0;
border-top-width: 0;
border-bottom: 1px solid gray;
}

.jqueryslidemenuz ul li ul li a:hover{ /*sub menus hover style*/
background: #eff9ff;
color: black;
}

/* ######### CSS classes applied to down and right arrow images ######### */

.downarrowclass{
position: absolute;
top: 12px;
right: 7px;
}

.rightarrowclass{
position: absolute;
top: 6px;
right: 5px;
}

Menus no site de Stu Nicholls (CSSplay)