Webly: Tutorial - Menu com curvas e semi-transparente - Webly

Ir para

Regras para postagem

É permitido postar livremente respostas com comentários, testes e avaliações dos scripts. Postagens contendo dúvidas sobre o script, deverão ser postadas no fórum principal de Webstandards/Tableless/CSS/XML.

IMPORTANTE: Todos os tutoriais postados neste fórum irão automaticamente para o portal Webly. Contribua você também e faça parte da equipe de colaboradores que fazem a evolução da web. Obrigado.
Página 1 de 1

Tutorial - Menu com curvas e semi-transparente 1ª parte Avaliar tópico: ***** 2 Votos

#1 Membro offline   Micox Ícone

  • Comunidade de desenvolvedores
  • Ícone
  • Grupo: Administradores
  • Posts: 5511
  • Cadastrado: 03-julho 06
  • Localização:Goiânia-GO
  • Interesses:Webly e elmicox.blogspot.com

Postou 20 julho 2006 - 04:11


Olá pessoal,

Hoje resolvi postar algo muito simples e que pode ser útil a todos: Construção de um menu com bordas arredondadas e semi-transparente.
Para não perder o costume, este tutorial foi baseado em um post da marcinha. Agradecimentos a ela e ao pessoal que ajudou por lá.
Será um tutorial bem rápido e pequeno.

Bom, vamos começar mostrando uma prévia de como deve ficar nosso menu:
Imagem

Percebam que temos 2 questões a resolver:

  • Bordas arredondadas
  • Transparência

1. Bordas arredondadas
Enquanto a especificação CSS 3 não chega, nós temos que fazer algumas "gambiarras" se quisermos que um elemento tenha bordas arredondadas.
Nosso amigo Bruno Dulcetti fez o favor de listar algumas destas "gambiarras", pra quem tiver interesse.

A forma que irei utilizar neste tutorial é a seguinte:

  • usar 2 imagens, uma para fazer a curva do topo e outra pra fazer a curva da base;
  • colocar uma das imagens como background no topo do elemento alvo;
  • criar um elemento abaixo do elemento alvo pra receber a curva da base;
  • usar um elemento dentro do elemento alvo pra fazer a borda.

As imagens:
As imagens criadas deverão ser gifs e ter a cor do background pretendido para o menu (no caso deste tutorial branco) tendo sua curva transparente.

Curva do topo:Imagem

Curva da base:Imagem

O XHTML do menu:
Uma marcação padrão tableless para menus normalmente é assim:

  <ul>
	 <li><a href="#">Link 1</a></li>
	 <li><a href="#">Link 2</a></li>
	 <li><a href="#">Link 3</a></li>
	 <li><a href="#">Link 4</a></li>
   </ul>


Agora que já temos as imagens, vamos alterar o XHTML para receber as curvas.
Como a curva do topo será colocada diretamente no UL através de background, eu precisarei apenas criar 1 (um) novo elemento para receber a curva de baixo.

  <ul id="nav" >
	 <li><a href="#">Link 1</a></li>
	 <li><a href="#">Link 2</a></li>
	 <li><a href="#">Link 3</a></li>
	 <li><a href="#">Link 4</a></li>
   </ul>
   <div class="curva-base"></div>


Agora o CSS pra fazer a coisa funcionar:
Primeiramente agente colocará a curva-base. Setamos a altura para ter a mesma altura que a imagem e a colocamos como background. Temos também que colocar um overflow:hidden pra evitar problemas com o IE.

 .curva-base {
	 height:10px;
	 overflow:hidden;
	 background-image:url(curva-base.gif);
   }


Agora faremos a curva do topo colocando a imagem curva-topo como background "no-repeat top". Temos também que dar um espaçamento na altura da imagem para que o texto não fique sobre a curva (padding-top):

 #nav {
   width:190px; 
   background: url(curva-topo.gif) top no-repeat;
   padding-top:10px;
 }


Agora só falta colocar o background pra terminar o corpo do menu. Não podemos colocá-lo direto no UL pois a transparência da imagem irá revelá-lo e não ficará curvo. Temos que colocar o background em algum filho do UL. Pra isso vamos usar o LI:

 #nav li {
   background-color:#FFFFFF; 
   border-bottom:1px solid #000000;
 }


Pronto, agora já temos um menu feio com curvas. No final iremos estilizá-lo por completo.

Imagem

Percebam que eu coloquei uma classe "curva-base" para receber a imagem da curva do bottom ao invés de utilizar ID. Assim eu poderei reutilizar esta mesma classe em outros menus, economizando código.

Obs.: Existe também a propriedade -moz-border-radius implementada nos browsers Mozilla para fazer as curvas de uma forma mais fácil, porém nos queremos algo para todos os navegadores neste momento.

Ihhh este post está ficando muito grande. Já sei:

No próximo episódio teremos "A TRANSPARÊNCIA" !!!! Não percam..


//Tutorial postado originalmente no meu blog
valeus.net/mwords - Links automáticos p/ o MercadoLivre em seu texto

Ajude, responda: mesmo que não saiba exatamente a resposta, seu pitaco pode dar uma luz no problema do outro.
Não respondo dúvidas por MP / Email / MSN e afins. O fórum está aqui pra isto.

elmicox.blogspot.com
0

#2 Membro offline   TheChessMan Ícone

  • Aposentado ganha pouco! Tô de volta! :P
  • Ícone
  • Grupo: Membro Amigo
  • Posts: 696
  • Cadastrado: 04-julho 06
  • Localização:Bento Gonçalves - RS

Postou 21 julho 2006 - 05:07

Testado em:

- IE 6.0
- FF 1.5
- Opera 8.5, 9.0

Este post foi editado por TheChessMan: 21 julho 2006 - 05:07

www.lendo.org
www.portuguesfacil.net
0

Página 1 de 1


Resposta rápida

  

1 usuário(s) está(ão) lendo este tópico
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)