Menu com subseções laterais.

28 fevereiro, 2009 por Weber Amaral

Usando uma marcação HTML estruturada e regras CSS simples podemos criar menus com subseções laterais fáceis de editar e atualizar e que funcionem perfeitamente em vários navegadores, não precisando de uma infinidade de scripts para que estes funcionem corretamente...


1 - O HTML.


Primeiramente, é necessário definirmos a estrutura do menu. Uma das maneiras que uso é por meio de uma lista não ordenada, com cada um dos sub-menus constituída por outra lista não ordenada. Veja o código HTML a seguir:
<ul>
<li><a href="#">Parte 1</a></li>
<li><a href="#">Parte 2</a>
<ul>
<li><a href="#">Parte 2-a</a></li>
<li><a href="#">Parte 2-b</a></li>
<li><a href="#">Parte 2-c</a></li>
</ul>
</li>
<li><a href="#">Parte 3</a></li>
<ul>
<li><a href="#">Parte 3-a</a></li>
<li><a href="#">Parte 3-a</a></li>
<li><a href="#">Parte 3-a</a></li>
</ul>
</li>
<li><a href="#">Parte 4</a></li>
<ul>
<li><a href="#">Parte 4-a</a></li>
<li><a href="#">Parte 4-a</a></li>
<li><a href="#">Parte 4-a</a></li>
</ul>
</li>
</ul>


2 - 0 CSS


Para que o menu não contenha uma lista de itens entendiantes, vamos adicionar estilos para que ele se torne atrativo. Removeremos então, primeiramente, as marcas (bullets) e a indentação própria das listas não ordenadas, definindo também uma largura para os itens do menu.
ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
}

É necessário também posicionar os itens da lista. Felizmente, os itens por padrão são renderizados um embaixo do outro. Contudo, vamos definir o posicionamento com o valor relative, pois iremos posicionar os sub-menus de modo absoluto em relação aos itens.
ul li {
position: relative;
}

A seguir, iremos trabalhar com os sub-menus, colocando ao lado direito do seu item-pai quando o mouse for passado sobre o item.
li ul {
position: absolute;
left: 149px;
top: 0;
display: none;
}

Usando a propriedade CSS left e top posicionamos de modo absoluto cada sub-menu ao lado de seu item-pai. A propriedade left com o valor de 149px ( 1px menor que a latgura dos itens do menu ). Isso fará com que os sub-menus transpassem o menu e, em consequência, não apareça uma borda dupla. Também foi definida display como none, pois eles não serão visíveis por padrão.
ul li a {
display: block;
text-decoration: none;
color: #bbb;
background: #101010;
padding: 5px;
border: 1px solid #dfdfdf;
border-bottom: 0;
}

É importante definir display como block, para garantirmos que cada link ocupará toda a largura definida para o item da lista. Algumas versões do Internet Explorer interpretam as quebras de linha entre os itens de lista como espaços vazios e, assim, os itens do menu não se assentam um sobre o outro. Para corrigir isso, veja o seguinte código:
/* correção \*/
* html ul li {float: left;}
* html ul li a {height: 1%;}

Ao utilizar a versão 5.x do Internet Explorer... " se é que alguém ainda usa... ", é possível que o menu salte quando o mouse for passado sobre determinados itens. Para resolver esse probleminha, basta modificar a segunda linha do código mostrado anteriormente, por *html ul li {float: left; height: 1%;}.
Já na versão 6.x, devemos declarar um background para li a, pois pode acontecer de um sub-menu se estender verticalmente além de o menu e os links desaparecerem antes que tenha tempo de clicá-los.
O código mostrado esconderá as regras CSS de todos os navegadores, menos o IE. A declaração height 1% foi em consequência da propriedade float, que traz outra inconsistência no IE, afim de que os links tornem elementos nível de bloco.É necessário fecharmos o menu adicionando uma borda ao fim da lista. A seguir as regras CSS para o elemento ul.
ul {
margin: 0;
padding: 0;
list-style: none;
width: 150px;
border-bottom: 1px solid #dfdfdf;
}
}
O menu ainda não está funcionando de maneira correta. Precisamos fazer os sub-menus aparecerem quando o mouse for passado sobre o item.
li:hover ul {
display: block;
}

O IE suporta somente a pseudo-classe :hover aplicada a um link. Dessa forma, li:hover, que faz os sub-menus aparecerem, não funcionará nele. Precisamos então, de um código JavaScript, mostrado a seguir:
startList = function() {
if (document.all&&document.getElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node.nodeName=="LI") {
node.onmouseover=function() {
this.className+=" over";
}
node.onmouseout=function() {
this.className=this.className.replace
(" over", "");
}
}
}
}
}
window.onload=startList;

O código CSS para hover é:
li:hover ul, li.over ul {
display: block;
}

Adicionalmente, é preciso referenciar o JavaScript com o ul principal.
<ul id="nav">

Assim, teremos o código final completo.
<html>
<head>
<style type="text/css">
ul {
margin: 0;
padding: 0;
list-style: 0;
width: 150px;
border-bottom: 1px solid #dfdfdf;
}
ul li {
position: relative;
}
li ul {
position: absolute;
left: 149px;
top: 0;
display: none;
}
ul li a {
display: block;
text-decoration: none;
color: #bbb;
background: #101010;
padding: 5px;
border: 1px solid #dfdfdf;
border-bottom: 0;
}
/* correção \*/
*html ul li {float: left;}
*html ul li a {height: 1%;}
/* fim da correção */
li:hover ul, li.over ul {
display: block;
}
</style>

<script language="JavaScript" type="text/JavaScript">
<!--

startList = function() {
if (document.all&&document.fetElementById) {
navRoot = document.getElementById("nav");
for (i=0; i<navRoot.childNodes.length; i++) {
node = navRoot.childNodes[i];
if (node;nodeName=="LI") {
node.onmouseover=function() {
this.className+" over";
}
node.onmouseout=function() {
this.className=this.className.replace
(" over", "");
}
}
}
}
}
window.onload=startList;
//-->
</script>
</head>

<body>
<ul>
<li><a href="#">Parte 1</a></li>
<li><a href="#">Parte 2</a>
<ul>
<li><a href="#">Parte 2-a</a></li>
<li><a href="#">Parte 2-b</a></li>
<li><a href="#">Parte 2-c</a></li>
</ul>
</li>
<li><a href="#">Parte 3</a>
<ul>
<li><a href="#">Parte 3-a</a></li>
<li><a href="#">Parte 3-b</a></li>
<li><a href="#">Parte 3-c</a></li>
</ul>
</li>
</ul>

</body>
</html>


Se adcionarmos o código a seguir ás regras CSS, teremos uma cor de fundo diferente quando passamos com o mouse nos itens:
ul li a:hover {
color: orange;
background: #212121;
}

Veja como ficou o menu.

São inúmeras as formas de fazer um menu assim, coloquei aqui a forma mais usada em alguns sites que faço. A modificação ao CSS é também muito extensa, podemos fazer várias modificações e deixarmos nosso menu da melhor forma que achamos. Também podemos colocar sub-categoras aos sub-menus, mas isso ficará para uma próxima vez. Até mais e espero que tenham gostado desta dica.


25 janeiro, 2009 por Weber Amaral



Powered by Wufoo

O que é RSS?

20 janeiro, 2009 por Weber Amaral

RSS é a sigla em inglês para Rich Site Summary ou Really Simple Syndication, ou seja, uma forma simplificada de apresentar um conteúdo de um site. O documento RSS é feito em linguagem XML que servem para agregar coneúdo ou "Web Syndication", podendo ser acedido por intermédio de programas ou sites agregadores.


A tecnologia RSS, permite aos usuários da internet se inscreverem em sites que fornecem "Feeds" (Fontes RSS). Com isso, após nos inscrevermos em seus "feeds" passamos a receber as atualizações feitas pelo site, sem precisar visitar o mesmo constantemente.

Uso


Os "feeds" RSS é maneira mais simples de se receber as últimas notícias e atualizações do site ao qual se inscreveu. Podendo ser, o título ou resumo, contendo um link para acessar o site e ler na íntegra o seu conteúdo ou, até mesmo, receber a noticia (atualização) por completa.
Amplamente utilizado por Blogs, mantendo seus leitores sempre atualizados.
Os leitores RSS para Web não requerem nenhum software e trazem os feeds dos utilizadores para qualquer computador com acesso a Web. Nas páginas da Web o RSS é normalmente indicado por um retângulo laranja, com as letras XML ou RSS.

Leitores RSS



Existem duas maneiras para fazer o uso do RSS:

1 - Fazer o uso de um programa "cliente" denominado agregador. Neles ficaram armazenados os RSS que o utilizador deseja acompanhar.

2 - Fazer um registro em sites específicos e neles incluir os RSS que deseja acompanhar. São agregadores via navegador ou browser, agregando o RSS remotamente. Sendo que, a maioria dos navegadores já possui um software interno para está função.

Lista de agregadores



1 - Google Reader.
2 - Akregator. - Usado muito em Linux/KDE.
3 - Liferea. - usado muito em Linux/GNOME.
4 - Feed Reader.
5 - BlogTok.
6 - Active web Reader.
7 - Clientes de e-mail - Como é o caso do MS Outlook, Outlook Express, Windows Mail e muitos outros.

Lista de agregadores via browser



1 - Internet Explorer 7.
2 - Opera.
3 - Safari.
4 - Mozila.
5 - Firefox.

Se quiserem estar sempre em dia com as últimas noticias no mundo da Web basta a partir de agora, se inscreverem em seus Feeds e começar a receber as atualizações dos seus sites favoritos. E para começar, se gostaram da matéria se inscrevam aqui também.

01 janeiro, 2009 por Weber Amaral

Aqui vão os links das minhas redes sociais, para quem quiser acompanhar, adicionar, ver alguns trabalhos e outras coisas coisas.
Fiquem a vontade para mandar recados e noticias, assim com e-mails também, terei o prazer de responder...se tiver tempo é claro!

Obrigado...


  1. Orkut

  2. Twitter

  3. COLOURlovers

  4. Flickr

 
Todos direitos Reservados á Weber Amaral - 2009 - HOME | SOBRE | CONTATO