Oportunidade de Emprego

A Mídiaweb está a procura de três profissionais que atuem com webstandards para trabalhar em periodo integral na Agência.

Necessário conhecimento intermediário em XHTML/CSS.

Pré-requisitos:
– XHTML semântico;
– CSS (Cascating Style Sheets);
– Noções de Photoshop e/ou Fireworks;

Desejável:
– Ser aficcionado e apaixonado por Interfaces e principalmente webstandards;
– Capacidade de desenvolver trabalho em grupo;

Os candidatos serão submetidos a testes práticos

Currículos com pretensão salarial para curriculos@midiaweb.com.br

Anúncios

5 Perguntas para 12 Designers

Demorou, mas saiu. Fiquei na esperança de conseguir respostas de mais pessoas, mas não deu. Não tem problema. Os que responderam agradeço bastante e espero que esta listinha sirva de ajuda para outros que estão metidos nessa profissão que eu pelo menos sou apaixonado. A seqüência das respostas é quase aleatória, na tentativa de ser o mais democrático possível.

  1. Qual aspecto do design você mais prioriza?
  2. Que técnica utiliza com freqüência?
  3. Qual o tipo de letra preferido em seus projetos?
  4. Que livro de design considera obrigatório?
  5. Que site ou revista você lê diariamente?

1. Qual aspecto do design você mais prioriza? voltar

As respostas se dividiram entre o aspecto comunicacional e a funcionalidade, com o Fred misturando os dois e falando em interação. Em todos deu para perceber que o foco no usuário é lei e que o deslumbramento tecnológico já cansou.

Dos que focaram em comunicação:

Simplicidade. Quando mais simples, menor a complicação, melhor usabilidade e acessibilidade. Diego Eis

Comunicação. Usar a comunicação certa para o receptor, que passe a mensagem certa do transmissor. Caetano Neto

Relevância. Design é o dress code de uma peça de comunicação. Se não estiver correto para o público, não vai agradar. Se não agradar, foi inútil. Pense no tiozão na balada: suas roupas podem ser boas, caras e na moda. Se não apelam para o conjunto de referências da galera, serão simplesmente ridículas. Luli Radfahrer

A interação entre as pessoas proporcionada pelo Design. Frederick Van Amstel

E os que focaram em funcionalidade, facilidade de uso e que usaram o bordão “equilíbrio entre forma e função” (o que não torna a sentença menos correta):

Usabilidade e Estética. Parece clichê, mas não dá muito para fugir disso quando se fala em Design. Já que seu conceito é o equilíbrio entre a beleza e funcionalidade, eu procuro sempre focar na beleza da interface sem agredir sua facilidade de uso. Rodrigo Muniz

O usuário (user centered design). Considerando que processo de design é o equilibrio entre forma e função, o objetivo final sempre é o usuário. Henrique Costa

Usabilidade. Para mim a estética, a organização das informações, o conteúdo, os recursos, todos têm que estar a favor da facilidade de uso do site por parte do usuário. Walmar Andrade

Design significa, antes de tudo, projeto. Algo que surge para suprir um objetivo claro. Portanto, design não é arte porque é forma visando função. Resumo da ópera: funcionalidade. Chico Neto

Acessibilidade e Usabilidade. Não tenho tantas habilidades com programas gráficos, mas sempre prezo pela facilidade de uso. Desde a faculdade estudo muito acessibilidade, fazendo testes com deficientes visuais inclusive. Design não é para poucos! Rafael Dourado, eu

Compatibilidade + Usabilidade. Marcelo Glacial

Design não é nada. Funcionalidade é tudo! Quando se trata de internet vejo como aspecto principal do design o êxito do usuário em encontrar o que ele procura, em alcançar o que deseja, enfim, o design tem que tornar possível o objetivo do site numa linguagem visual atraente. […] Tony Conde

A usabilidade como foco principal e busco usar o desenho como a melhor expressão artística do “foco” do trabalho. […] Thiago Bessa

2. Que técnica utiliza com freqüência? voltar

Esta pergunta não foi específica de propósito. Obtive respostas bem interessantes focando na concepção do projeto e outras no seu desenvolvimento de fato. Para os que participaram, não dá para trabalhar com internet e ser preconceituoso nem prepotente, nem viver sem Photoshop. Mas viver sem o IE até que era uma boa.

Primeiro os que focaram na concepção do projeto:

Mente aberta: nunca assumo que sei NADA sobre um cliente, seu público, tendência ou tecnologia. Assim posso perguntar feito uma criança e, em vez de rotular, me fascino. Luli Radfahrer

Me colocar no lugar do usuário quando estou pensando ou mesmo projetando algo novo. Walmar Andrade

Uso da semiótica. Isto está aqui porque refere-se àquilo. E na composição dos trabalhos, vetores. Chico Neto

Etnografia virtual (fóruns de discussão etc), entrevistas, prototipação, testes com usuários… Frederick Van Amstel

Uso com freqüência a técnica de não usar nenhuma técnica e conseguir executar o que vejo que é necessário ao público do site e que também esteja ao gosto do meu cliente! Auehuaeh. Gosto de coisas simples. Estilo os menus dos celulares da nokia! Tony Conde

Mesclagem de algumas delas. A semiótica como principal, mas usando elementos do gestalt, usar a percepção visual como “arma” para prender a atenção do usuário, mas buscando sempre a criação de coisas úteis. “DIGA NÃO AO LIXO NA INTERNET”. Thiago Bessa

Os mais concentrados na execução dos trabalhos:

Image replacement. Seguida de perto pelo global reset hehehe. Mas esse último não conta, já que é padrão. Marcelo Glacial

Na codificação HTML tenho o costume de logo depois de começar o body inserir sempre o link de pular a navegação e ir direto para o conteúdo, ajuda para quem usa leitor de tela. No CSS é a já velha conhecida técnica * {margin:0; padding:0;} para zerar margin e pading de todos elementos para ter homogeneidade nos diversos browsers. Rodrigo Muniz

Técnica? CSS + HTML + JavaScript não obstrusivo, com um pouquinho de técnicas de acessibilidade e uma pitada de SEOHenrique Costa

Aqueles scripts que transformam o IE6 num browser um pouco melhor como o de :hover e o de png transparente. Rafael Dourado

Particularmente não gosto de usar o global reset. Não me incomodo com as pequenas diferenças entre os navegadores e acredito que fazer design para web é aceitar que o produto final é fluido, podendo ser personalizado, ter o tamanho do texto alterado, áreas bloqueadas etc.

Finalizando com os Visuais, “adobemente” falando:

No Photoshop uso freqüentemente o Filtro ‘Extrac‘ e a ‘Quick Mask‘ para aquela seleções cabeludas, literalmente (em caso de tirar o fundo de uma imagem na parte onde há pêlos). Rodrigo Muniz

Colagem, vetor e edição de foto. Caetano Neto

Gradientes e DropShandows dão uma aparência bem interessante. Não pode abusar para não se tornar muito carregado. Devem ser usados com um certo cuidado. Diego Eis

Degradês e vetorizações. Rafael Dourado

3. Qual o tipo de letra preferido em seus projetos? voltar

Esta pergunta acabou gerando algumas dúvidas e alguns responderam somente em relação às fontes da web como Arial, Verdana e Georgia e outros que abriram mais para as fontes usadas na composição do layout. Minha intenção era mais para a segunda situação, mas ainda é válido saber quem prefere serifada ou sem serifa.

Título: Trebuchet MS. Textos: Verdana. Marcelo Glacial

A boa e velha Arial. Henrique Costa

Trebuchet MS. Frederick Van Amstel

Trebuchet MS e Verdana ou Trebuchet MS e Arial. Depende muito do comportamento que será atribuído ao texto. Tony Conde

Deu leitura, passou a idéia do site, é essa. Particularmente, estou numa fase mais de fontes com serifa… acho que só ver sites com fontes sem serifa, ajudou. Caetano Neto

Para texto, qualquer uma sem serifa que se encaixe no desenho do site, abusando bastante da Verdana e Tahoma. Para imagens, de acordo com o desenho. Thiago Bessa

Minha tipografia favorita é aquela que melhor dialogar com o projeto. Mas, pessoalmente, tenho apreço maior por famílias sem serifas com hastes robustas. Chico Neto

O que for relevante e adequado. Tem cliente com cara de Caslon, de Interstate, de Frutiger, de Bembo. Isso não tem nada a ver com a tipografia escolhida para o logo ou comunicação visual de um cliente, mas com o estado de espírito de seu público. Luli Radfarer

Arial nos textos, pois assim posso deixar o corpo do texto um pouco maior (Verdana grande é horrível). Em situações com uso de imagens vai depender do cliente, mas tenho uma maior afeição pela Frutiger e Helvetica. Rafael Dourado

Gosto muito de usar Verdana, Trebuchet MS e Lucida Grande para projetos que são realmente textos. Quando o texto vai em uma imagem ou os títulos serão imagem, gosto de usar HUMANIST. Normalmente uso letras sem serifa. Combinam mais com o ambiente de web. Entretanto, fica muito interessante o uso de letras com serifa. O site fica mais elegante. Mas deve ser usado com moderação e deve haver um cuidado extra ao combinar com letras sem serifa. Diego Eis

Na web costumava usar Verdana 10px ou 11px para parágrafos, mas com os monitores e resoluções cada vez maiores estou tentando me acostumar a usar Trebuchet MS 12px com line-height 140% para parágrafos e Georgia 28px para títulos, mas em algumas interfaces a Verdana ainda impera. Para impressos Georgia e Times New Roman ainda são imbatíveis e são figurinhas fáceis no meu CSS para impressão. Nos logotipos Helvetica e Tahoma caem bem. Rodrigo Muniz

Tipografia na web não importa muito, pois o usuário pode chavear os estilos. Walmar Andrade

Deixei a resposta do Walmar por último de propósito. Discordo dele, pois a quantidade de pessoas que chaveam os estilos é mínima, e por mais que ele tenha essa escolha não quer dizer que a primeira opção deva ser menos cuidadosa. Se entrar na conversa a composição do layout então nem se fala. Mestre Walmar, explique-se melhor. hehehe

4. Que livro de design considera obrigatório? voltar

Excelentes dicas aqui. Steve Krug esteve em quase todos, só confirmando a alcunha de obrigatório. Engraçado foi a quantidade de livros sobre tipografia. Acho que em pouco tempo algumas das respostas da pergunta anterior mudarão.

Designing Interactions, Bill Moggridge Frederick Van Amstel

Elementos do Estilo Tipográfico de Robert Bringhurst. Diego Eis e eu concordo

O do Hollis, para história; o do Frutiger para iconografia; o do Bringhurst para tipografia… Um monte. O meu eu não recomendo mais: está muito velho. Tampouco recomendo os do Dondis e da Santaella, que não entenderam que design é comunicação e escrevem em chinês. A revista HOW tem livros introdutórios de primeira também. Luli Radfahrer

Atualmente, Pensar com Tipos. Chico Neto

Introdução à Análise da Imagem (Martine Joly): Aprender as ferramentas de design qualquer um aprende até lendo o help. Mas estudar semiótica é um divisor de águas. O livro faz muitas leituras de imagem é muito interessante como primeira leitura sobre semiótica.
Design Visual 50 Anos (Alexandre Wollner): Conheci esse livro por indicação do Chico Neto. Alexandre Wollner é só o primeiro designer brasileiro e ainda em atividade. Sua história de confunde com o desenvolvimento da profissão no país e é uma aula de técnicas de design e postura profissional. Ah! E ele tem um mau humor divertidíssimo. Rafael Dourado

Sou leitor compulsivo de monitor ) Mas acho que livros como Webwriting: Redação e Informação para a Web do Bruno Rodrigues e Não me faça pensar do Steve Krug são obrigatórios para qualquer profissional de webdesign, mesmo o primeiro não sendo focado em design. Rodrigo Muniz

Não me faça pensar! O livro é sobre Usabilidade mas acredito que hoje as pessoas precisam inverter a forma com que aprendem a fazer “design”. Primeiro é preciso entender que problemas de design se resolvem com o equilibrio entre a estética e a facilidade de uso. Muitos investem muito em estética e nada em “utilização”. Este livro todos deveriam ler! Henrique Costa. Walmar Andrade assina embaixo

Putz… Livro é difícil. Esse do Wollner que o Dourado citou é muito bom. Tô lendo o Design para Internet do Felipe Memória, tô gostando. Caetano Neto

Design para internet – Projetando a experiência perfeita / Felipe Memória. Tony Conde

Os clássicos, Memória, Nielsen, Steven.. (olha a intimidade.. hehe..) mas sempre lendo algo… movimentando sempre a mente… buscando novas referências para não cair na mesmice. Thiago Bessa

Não leio nenhum. O passo 5 explica o porquê. ) Marcelo Glacial

Tá bom, Glacial. Deixei por último para imendar com a desculpa. hehehe

5. Que site ou revista você lê diariamente? voltar

Vale exportar o OPML do Netvibes? CSS Mania, CSS Remix, CSS Based, CSS Beauty, entre outra galerias. E os blogs específicos: Tableless, Revolução, Fator W, Bittbox, Shauninman e Mezzoblue. Marcelo Glacial

Tenho uns 50 feeds assinados e os leio todo santo dia. Conheço quem tem mais de 500, mas só passa a vista em todos e lê o que interessa. Eu tenho esses 50 e tento ler todos sem exceção quase todo dia. Mas recomendo os sites de todos os que responderam a esta pesquisa. D Rafael Dourado

Google Reader vale? ) Revistas eu só dou uma olhada na Web Design, MTV e na Super Interessante quando vou na livraria rapidinho… É bem difícil um site de artigos e notícias que eu entre diariamente,
acho que só no Digg.com. Mas tenho outras dicas de sites que acompanho os feeds: Fator W do ex-gerente e amigo Walmar está cada dia melhor, A List Apart, A List Apart Brasil, Smashing Magazine, Ivo Gomes, Tá difícil, Tutoriais Photoshop
Para inspiração eles nunca falham: Web Creme, Open Web Design, CSS Mania e Logopond. Um boa busca no del.icio.us também resolve muita coisa. Rodrigo Muniz

Ai, pega a lista ali na home do meu Blog, deu preguiça D Luli Radfahrer

Bartelme Design, The Art of Adam Betts, e tem um monte de outros aqui. Diego Eis

Tenho muitos blogs agregados no meu Bloglines Fredrick Van Amstel

São tantos… Nos meus feeds têm inúmeros sites. Nunca tive a curiosidade de ver ao certo quantos são. Nem tem como ver agora também, não estou no meu pc! Mas acho que tudo começa pelo http://www.google.com.br rs Tony Conde

Mais de 2 centenas de blogs e alguns livros que sempre estão por perto… Henrique Costa

Nossa, assino uns 200 feeds e leio todos diariamente logo pela manhã. Entre os nacionais, o que acho mais interessante é o de Silvio Meira. Walmar Andrade

Tenho acompanhado mais blogs ultimamente. Embora acredite que não seja o mais visitado aqui, vou colocar o Uailab. Caetano Neto

Além dos blogs mestres, bomabessa ) , netlus, teoriaglacial e assino a revista web design. Ela é bem interessante, quando não atrasa 1 mês pra chegar é uma leitura boa e atual (a leitura, por que o site…). Thiago Bessa

Além do Netlus…?! Chico Neto

SIM, CHICO! ALÉM DO NETLUS!

Bom. Espero que tenha sido útil de alguma forma. Para mim foi. D

Autor: Rafael Dourado
Fonte: http://www.netlus.com.br/5-perguntas-para-12-designers/

15 erros que você deve evitar em um site

Introdução

Você já acessou um site e teve a sensação de que alguma coisa muito errada tinha sido feita ali? Ruim essa sensação, não é mesmo? Se você quer evitar que os visitantes do seu site tenham essa mesma impressão, fique de olho em alguns detalhes que podem derrubar seu projeto:

1 – Conteúdo importante em janelas pop-up

Hoje em dia mesmo os usuários menos experientes já têm bloqueadores de pop-up ativados nos navegadores. Se o conteúdo for realmente importante, não tente inventar moda: coloque-o numa página normal e garanta que ele será visto por todos os visitantes.

2 – Animações de abertura

Quando o usuário acessa um site, ele procura informação. Para ele, pouco importa se você aprendeu técnicas super legais no seu curso de Flash, ele quer acessar o site sem esperar. Por isso, evite as chamadas splash screens a todo custo. Mas se você não tiver mesmo outra saída – ou quando seu cliente insistir muito e não abrir mão da abertura – não esqueça de colocar um link de “pular animação” (que funcione!).

3 – Música no site

Em alguns tipos de sites, especialmente naqueles voltados para o público mais jovem, a música é uma ferramenta interessante. Porém, se não for bem projetado, esse recurso pode, na verdade, criar uma má impressão no usuário. Imagine se ele estiver escutando música? Ou se a caixa de som estiver ligada com o volume muito alto? Aqui vale novamente a dica: se não tiver outro jeito e a música for necessária, não esqueça de incluir os controles de volume, pause e stop.

4 – Site sem contato

Seu site não deve ser uma ilha isolada do resto da humanidade. Se você tem o que dizer na internet, deve dar às pessoas a chance de contatá-lo para criticar, elogiar ou acrescentar algo às suas idéias. Coloque um formulário e/ou um endereço de e-mail para o usuário entrar em contato. Já publiquei aqui no InfoWester uma coluna falando sobre como disponibilizar seu e-mail de forma eficiente no site.

5 – Desabilitar o teclado

Se você não quer que seu conteúdo corra o risco de ser roubado, não publique-o na internet. Utilizar códigos em JavaScript que bloqueiam o teclado ou o clique do mouse não impede a ação de usuários mal intencionados, e ainda atrapalha a navegação do visitante comum, que nada tem a ver com suas preocupações.

6 – Imagens mal tratadas

Antes de publicar imagens e fotos, trate-as num editor de imagens da maneira apropriada. Se for publicar uma galeria de fotos, por exemplo, gere os arquivos das miniaturas no tamanho apropriado. Não exiba imagens com tamanho diferente do original, ou seja, se a sua imagem tem 100×100 pixels, e você quer exibí-la com 50 pixels de largura, gere um novo arquivo com as dimensões corretas. Imagens “estouradas” (como a do logotipo do InfoWester ao lado) deixam a página feia e são mais demoradas para carregar, pois o navegador precisa processar o novo tamanho. Imagens com alta resolução também deixam a página pesada para carregar, o que pode fazer seu visitante desistir e ir para outro site.

7- Site que não funciona em qualquer navegador

Outro assunto que já tem sido tratado aqui desde a minha primeira coluna. É você que precisa se adequar ao computador do usuário, e não o contrário. Quem utiliza outros navegadores que não o Internet Explorer sabe bem como é frustrante acessar um site e não conseguir visualizar seu conteúdo ou todos os seus recursos porque foram projetados só para um navegador. Poucas pessoas têm a paciência de abrir outro browser para continuar navegando no site, ou pior ainda: muitos nem têm outro navegador instalado.

8 – Não testar seus links

Você já clicou num link que levou a uma página de erro? Já preencheu um formulário e ficou sem saber se ele foi enviado ou não? Chato isso… Não deixe que seu usuário tenha o mesmo problema: teste todas as suas páginas, especialmente depois de publicar o site no servidor. Leia mais no artigo Desenvolvimento do site: backup, testes e feedback.

9 – Erros de português

De novo, mais um item que eu venho citando desde o começo, mas não custa repetir. Se você quer que seu site seja levado a sério, disponibilize seu conteúdo num português correto, sem erros de gramática ou digitação. É claro que um erro ou outro pode escapar, afinal, errar é humano, mas se esforce para evitá-los.

10 – Disponibilizar um conteúdo que dependa de plugins

Hoje em dia a grande maioria dos usuários possui todos os plugins mais comuns instalados em seus computadores. Porém, não deixe que seu conteúdo dependa exclusivamente da exibição desses recursos. O visitante pode estar num computador mais antigo, ou ainda em algum computador onde não possa instalar nenhum plugin, e assim o acesso ao seu conteúdo fica comprometido. Sempre que possível, ofereça uma versão em HTML “normal” da sua página.

11 – Falta de atualização

Não deixe que seu visitante se sinta numa cidade fantasma do velho-oeste. Se você publica notícias no site, mantenha a atualização constante. Se o seu conteúdo é sempre o mesmo e não tem muito o que atualizar, dê sempre uma modificada nos detalhes do layout, adicione fotos novas, enfim, deixei seu site movimentado.

12 – Falta de cuidado com a tag <title>

Se você usa editores visuais, tome cuidado para não publicar uma página com títulos como Sem Título, Documento Sem Título ou untitled.html. É feio, dá a impressão de relaxo e descuido, e ainda prejudica seu site nos mecanismos de busca.

13 – Conteúdo sem referência

Quando publicar conteúdo de outro site, não esqueça de dar os devidos créditos ao autor, linkando a origem da informação, se possível. Notícias sem créditos passam uma péssima impressão, e você ainda pode acabar arrumando problemas com o verdadeiro autor da informação.

14 – Navegação complicada

Vivemos em um mundo agitado, onde as pessoas têm pressa. Elas querem que sua página carregue rapidamente, forneça as informações que elas procuram de forma quase instantânea e, caso precisem navegar, não querem se sentir perdidas com um menu “alternativo”. Às vezes apostar no tradicional é a melhor forma de acertar, por isso projete os menus de seu site de forma óbvia e objetiva.

15 – Esta página está em construção

Se você ainda não desenvolveu seu site completamente, não publique páginas “em construção” ou “breve”. GIFs animados então são o fim da picada! Se o conteúdo ainda não está disponível, simplesmente não coloque o link para ele.

Finalizando

A grande dica aqui é conhecer seu público e adequar seu site a ele. Músicas, vídeos e animações, tudo isso pode fazer toda a diferença, mas quando bem aplicado. Entender o seu público alvo, descobrir o que ele espera do seu site e equilibrar seu conteúdo com a aplicação consciente dos recursos que tem em mãos é uma combinação que pode ser a chave do sucesso de seu projeto.

Fonte: http://www.infowester.com/

Autor(a): Erika Sarti, em 16/04/2007.

Erika Sarti é web designer e trabalha como free-lancer desde 2000. É a responsável pelo novo layout do InfoWester, basicamente feito com tableless, um de seus assuntos preferidos. Seu portfólio está em http://www.erikasarti.net.

Menus com listas, construindo de forma simples e semântica

Falar em código semântico, tableless, css e como tudo isso se envolve com a W3C pode ser para alguns um grande quebra-cabeça. Na verdade é, mas com um pouco de vontade, teoria e paciência, esses itens podem se transformar numa verdadeira filosofia de trabalho e depois de um aprendizado bem realizado, tornar a produtividade do dia-a-dia um verdadeiro desafio estimulante.

Resumidamente, compreender a utilização correta dos elementos é um passo extremamente saudável para relembrarmos como tudo foi concebido originalmente para ser utilizado e tornar o trabalho simples e mais claro para todos.

O assunto pode ser um verdadeiro martírio para desenvolvedores, que por muitas vezes se auto absolvem da adequação aos padrões web, construindo aplicações e sites que poderiam ser mais leves, mais responsivos, fáceis de usar, e por conseqüência, mais fáceis de atualizar.

Um exemplo muito utilizado atualmente para mostrar como é possível construir mais simples são os menus para sites, sejam horizontais ou verticais, existe uma maneira muito limpa, verdadeiramente semântica e intuitiva para mecanismos de buscas como o Google.

Uma recomendação que faço para a construção de sites e aplicações é começar pela informação e não layout, pois iniciando seu projeto pela estrutura da informação, a possibilidade do projeto perder o foco é muito menor,além disso, como sabemos, hoje o conceito tableless permite a aplicação de layouts como uma camada sobre o seu código.

Falarei aqui sobre a criação de menus utilizando listas, e listas obviamente tem uma série de utilidades que devem ser tratadas de forma específica caso a caso, o que significa que se usada corretamente, torna seu código naturalmente semântico.

Compreendendo Listas

Para compreender listas é importante saber que existem várias opções de utilização para elas, como vemos abaixo:

1.Listas ordenadas

 

<ol>

 <li>Ricardo</li>

 <li>Felipe</li>

 <li>Manoela</li>

</ol>

O resultado para a lista acima é:

1. Ricardo

2. Felipe3. Manoela

Note que pelo fato de termos utilizado as tags corretas, os itens foram automaticamente ordenados e numerados (esse comportamento é padrão, podendo ser personalizado por CSS).

2. Listas não ordenadas

 

<ul>

 <li>Ricardo</li>

 <li>Felipe</li>

 <li>Manoela</li>

</ul>

O resultado agora é:

o Ricardo

o Felipeo Manoela

Note que esse modelo não numera automaticamente os itens, mas por padrão os marca como itens de uma lista (também é comportamento padrão que pode ser alterado por css).

3. Listas de descrição

 

<dl>

 <dt>Livro</dt>

 <dd>Descrição do livro</dd>

</dl>

O resultado:

Livro

Descrição do livro

Utilizando listas para construir menus

Até aqui você já tomou conhecimento de como as listas funcionam dentro do código html, então não vai ter problemas para entender o código abaixo, pois na verdade o segredo estará no css que aplicaremos a lista.

O modelo vertical de menu:

 

<ul class="menu_vertical">

 <li><a href="#">Home</a></li>

 <li><a href="#">História</a></li>

 <li><a href="#">Filosofia</a></li>

 <li><a href="#">Produtos</a></li>

 <li><a href="#">Contato</a></li>

</ul>

Note que definimos em ul utilizará a classe menu_vertical, vamos ao código CSS que faz tudo acontecer como desejamos:

 

<style type="text/css">

ul.menu_vertical {

 margin: 0;

 padding: 0;

 list-style: none;

}

ul.menu_vertical li a{

 display: block;

 padding: 10px;

 color: #333;

 background: #eee;

 border-bottom: 1px solid #fff;

 text-decoration: none;

}

ul.menu_vertical li a:hover {

 background: #ccc;

}

</style>

Note que o código CSS é bem simples, mas tem parâmetros chaves importantíssimos que são em “ul” a redução de margin e padding para 0 (zero), pois essa tag tem por padrão valores positivos setados nela; o display: block na tag “a” permite que a área de clique seja maximizada para toda a área disponível dentro da tag li a qual ela está contida.

O resultado visual deste menu é o seguinte:

É importante lembrar que o menu terá automaticamente a largura máxima do seu objeto pai, porém é possível limitar sua largura a um valor específico setando o parâmetro width no CSS da tag ul.

O modelo horizontal de menu:

Este modelo utiliza praticamente o mesmo código, com pequenas modificações, veja:

 

<ul class="menu_horizontal">

 <li><a href="#">Home</a></li>

 <li><a href="#">História</a></li>

 <li><a href="#">Filosofia</a></li>

 <li><a href="#">Produtos</a></li>

 <li><a href="#">Contato</a></li>

</ul>

Só mudei o nome da classe, note que o html continua exatamente o mesmo. Vamos ao CSS:

 

ul.menu_horizontal {

 margin: 0;

 padding: 0;

 list-style: none;

}

ul.menu_horizontal li {display: inline;}

ul.menu_horizontal li a{

 float: left;

 display: block;

 padding: 10px;

 color: #333;

 background: #eee;

 text-decoration: none;

}

ul.menu_horizontal li a:hover {

 background: #ccc;

}
O resultado final:

Observe que é ai que entra o conceito moderno de personalização de layouts através de tableless, pois o html não foi alterado, apenas sua classe, e o código CSS foi o responsável pela mudança da aparência, deixando claro um conceito de camadas, cada uma com sua respectiva função.

As alterações no CSS que permitiram ao mesmo menu ter a aparência horizontal foi que na tag “li” aplicamos display: inline, pois assim ele deixa de ser nativamente um elemento de bloco e passa a ser um elemento de linha, não criando mais quebras de linha antes e depois dele mesmo (padrão a todo elemento de bloco), em seguida determinamos para “a” float: left, o que significa que as tags “a” estarão posicionados lado a lado, a partir da esquerda para a direita.

Os trechos CSS apresentados acima podem ser personalizados eternamente a gosto e necessidade da sua aplicação. Não se esqueça que o CSS dá a você o controle sobre a aparência da sua página ou aplicação.

O importante no conceito tableless é escrever simples, sem complicação, sem redundância e sempre, mas sempre que possível procure rever seu código a busca de limpeza e redução de conteúdo desnecessário.

Para saber mais as incríveis variações de CSS que se pode fazer com listas, você não pode deixar de visitar este site: Listamatic (http://css.maxdesign.com.au/listamatic/).

Seja simples, faça um trabalho limpo e torne-se mais produtivo, antes que seus concorrentes o façam.

Até a próxima!

 

Autor: Roberto Rabadan (e-mail) é Analista de Usabilidade da LocaWeb focado no design de interfaces web. Tem como principal objetivo profissional aprimorar as competências entre design e usabilidade de interfaces, buscando tornar a experiência e prazer de navegação a mais perfeita possível para o usuário final. Graduado em Propaganda e Design, tem mais de 16 anos de experiência com soluções para internet.

Fonte: http://www.imasters.com.br/

Menu horizontal em lista com Imagens

Mostrei como fazer um bonito menu horizontal em lista usando imagens. Image Hosted by ImageShack.us
Dimensões:
Image Hosted by ImageShack.us
Precisaremos da imagem abaixo:
Image Hosted by ImageShack.us

HTML

<div id=”navigation”>
<ul id=”nav”>
<li id=”home”><a class=”current” href=”#”>Inicio</a></li>
<li id=”tutorials”><a href=”#tutorials” >Tutoriales</a></li>
<li id=”resources”><a href=”#resources”>Recursos</a></li>
<li id=”contact”><a href=”#contact”>Contacto</a></li>
</ul>
</div>

CSS

#navigation {
background: #FFF url(pix/bgMenu.gif) left repeat-x;
width: 450px; /* Ancho del contenedor de nuestro menú*/
height: 35px; /*Altura del contenedor de nuestro menú*/
margin:auto;
}

#navigation ul {
display: block;
list-style: none;
background: #FFF url(“pix/my_nav.png”) top left no-repeat;
margin: 0;
padding: 0;
width: 280px; /*Ancho de nuestro menú (la imagen)*/
height: 35px; /*Altura de la imagen*/
}

#navigation ul li {
float: left;
position: relative;
z-index: 100;
margin: 0;
padding: 0;
width: 70px; /*Ancho de cada item u opción de nuestro menú*/
height: 35px; /*Altura de cada item*/
}

#navigation ul li a {
display: block;
text-decoration: none;
text-indent: -999em;
width: 70px; /* Ancho de cada link de nuestro menú*/
height: 35px; /* Alto de cada link*/
}

#navigation ul li a:hover,
#navigation ul li a.current {
background-image: url(“pix/my_nav.png”); /* Estado activo*/
background-repeat: no-repeat;
}

#navigation ul li#home a:hover { background-position: 0px -35px; }
#navigation ul li#home a.current,
#navigation ul li#home a.current:hover { background-position: 0px -70px; }

#navigation ul li#tutorials a:hover { background-position: -70px -35px; }
#navigation ul li#tutorials a.current,
#navigation ul li#tutorials a.current:hover { background-position: -70px -70px; }

#navigation ul li#resources a:hover { background-position: -140px -35px; }
#navigation ul li#resources a.current,
#navigation ul li#resources a.current:hover { background-position: -140px -70px; }

#navigation ul li#contact a:hover { background-position: -210px -35px; }
#navigation ul li#contact a.current,
#navigation ul li#contact a.current:hover { background-position: -210px -70px; }

#navigation ul li a.current:hover { cursor: default; }

Exemplo

Fonte: http://www.infectedfx.net/

Slide Menu em CSS

Um efeito bem interessante para um menu em html

Image Hosted by ImageShack.us

HTML

<script type=”text/javascript” language=”javascript” src=”focus_slide.js”></script>

<ul id=”mContainer”>
<li><a href=”#” title=”Item One”>Item One</a></li>
<li><a href=”#” title=”Item Two”>Item Two</a></li>
<li><a href=”#” title=”Item Three”>Item Three</a></li>
<li><a href=”#” title=”Item Four”>Item Four</a></li>
<li><a href=”#” title=”Item Five”>Item Five</a></li>
</ul>

JavaScript(salve em um arquivo com o nome focus_slide.js)

/******************************************************
Focus Slide
version 1.0
last revision: 12.17.2004
steve@slayeroffice.com

Should you improve upon or
modify this code, please let me know
so that I can update the version hosted
at slayeroffice.

PLEASE LEAVE THIS NOTICE INTACT!

******************************************************/

//window.onload = init;

var d=document;        // shortcut reference to the document object
var activeLI = 0;        // the currently “active” list element – value represents its index in the liObj array
var zInterval = null;    // interval variable

var SLIDE_STEP = 8;    // how many pixels to move the sliding div at a time
var SLIDER_WIDTH = 74;    // the width of the sliding div. used to calculate its left based on the width and left of the active LI element

function init() {
// bail out if this is an older browser or Opera which gets the offsets wrong
// the opera issue is fixable by subtracting the container UL’s width from the offsetLefts…but I dont care enough to do it
// this does NOT break opera, it just wont get the sliding thing

if(!document.getElementById || window.opera)return;

// create references to the LI’s
mObj = d.getElementById(“mContainer”);
liObj = mObj.getElementsByTagName(“li”);

// set up the mouse over events
for(i=0;i<liObj.length;i++) {
liObj[i].xid = i;
liObj[i].onmouseover = function() { initSlide(this.xid); }
}

// create the slider object
slideObj = mObj.appendChild(d.createElement(“div”));
slideObj.id = “slider”;

// position the slider over the first LI
x = liObj[activeLI].offsetLeft + (liObj[activeLI].offsetWidth/3 – SLIDER_WIDTH/3)-5;
y = liObj[activeLI].offsetTop-3;
slideObj.style.top = y + “px”;
slideObj.style.left = x + “px”;
}

function initSlide(objIndex) {
// return if the user is mousing over the currently active LI
if(objIndex == activeLI)return;
// clear the interval so we can start it over in a few lines to avoid doubling up on intervals
clearInterval(zInterval);

// set the active list item to the object index argument
activeLI = objIndex;
// figure out the destination for the sliding div element
destinationX = Math.floor(liObj[activeLI].offsetLeft + (liObj[activeLI].offsetWidth/3 – SLIDER_WIDTH/3))-5;
// start the interval
intervalMethod = function() { doSlide(destinationX); }
zInterval = setInterval(intervalMethod,10);
}

function doSlide(dX) {
// get the current left of the sliding div
x = slideObj.offsetLeft;
if(x+SLIDE_STEP<dX) {
// div is less than its destination, move it to the right
x+=SLIDE_STEP;
slideObj.style.left = x + “px”;
} else if (x-SLIDE_STEP>dX) {
// div is more than its destination, move to the left
x-=SLIDE_STEP;
slideObj.style.left = x + “px”;
} else  {
// div is within the boundaries of its destination. put it where its supposed to be
// and clear the interval
slideObj.style.left = dX + “px”;
clearInterval(zInterval);
zInterval = null;
}
}

CSS

#mContainer {
position:relative;
margin:0 auto;
height:25px;
background-color:#F1F1F1;
border-bottom:2px solid #E2E2E2;
text-align:center;
padding:5px 0 0 0;
}

#mContainer li {
position:relative;
display:inline;
margin:0 10px 0 12px;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
padding:0;
z-index:2;
}

#mContainer li a         {text-decoration:none;}
#mContainer li a:link    {color:#999;}
#mContainer li a:visited {color:#333;}
#mContainer li a:hover      {color:#DA0911;}

#slider {
position:absolute;
/*background-color:#CFDCFF;
border:1px solid #78919B;*/
border-bottom:3px solid #DA0911;
width:74px;
height:20px;
padding:0;
z-index:1;
}

Fonte: http://www.infectedfx.net/

Tabelas em Zebra

Você também acha muito trabalhoso ficar colocando cor um linha sim e outra não em uma tabela? Quem sabe esta dica o ajude 😀
Image Hosted by ImageShack.us

HTML

<table align=”center” id=”default” summary=”Ejemplo de tabla”>
<caption>
Autores en InfectedFX.net
</caption>
<thead>
<tr>
<th>Nombre</th>
<th>Ocupación</th>
<th>Website</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan=”3″>Total: 4 Usuarios </td>
</tr>
</tfoot>
<tbody>
<tr>
<td>Infected-FX</td>
<td>Diseñador</td>
<td><a href=”http://www.infectedfx.net”>www</a></td&gt;
</tr>
<tr>
<td>Zetta</td>
<td>Developer</td>
<td><a href=”http://www.zetaweb.net”>www</a></td&gt;
</tr>
<tr>
<td>Zillah</td>
<td>A.I.</td>
<td><a href=”http://www.blogzillah.com”>www</a></td&gt;
</tr>
<tr>
<td>Hecgo</td>
<td>Developer</td>
<td><a href=”http://www.hecgo.com”>www</a></td&gt;
</tr>
</tbody>
</table>

CSS

#default {
border-collapse:collapse;
background-color: #E8E8E8;
width:100%;
}
#default caption{
background-color:#59819F;
border-bottom:3px solid #C2DBEF;
color:#FFF;
padding:10px;
text-transform:uppercase;
}

#default thead th{
background-color:#18394F;
border-bottom:3px solid #59819F;
color:#FFF;
padding:5px;
}

#default tbody tr td {
padding: 3px 8px;
}

#default tfoot tr td{
background-color:#59819F;
color:#FFF;
padding:4px;
text-align:center;
}

/*/////////////// TABLE DEMO GREEN //////////////////*/

#demoGreen {
border-collapse:collapse;
background-color: #E8E8E8;
width:100%;
}
#demoGreen caption{
background-color:#99CC00;
border-bottom:3px solid #669900;
color:#FFF;
padding:10px;
text-transform:uppercase;
}

#demoGreen thead th{
background-color:#333;
border-bottom:3px solid #000;
color:#FFF;
padding:5px;
}

#demoGreen tbody tr td {
padding: 3px 8px;
}

#demoGreen tfoot tr td{
background-color:#666;
color:#FFF;
padding:4px;
text-align:center;
}

/*/////////////// TABLE DEMO BLUE //////////////////*/
#demoBlue {
border-collapse:collapse;
background-color: #E8E8E8;
width:100%;
}
#demoBlue caption{
background-color:#50ADEA;
border-bottom:3px solid #1975D7;
color:#FFF;
padding:10px;
text-transform:uppercase;
}

#demoBlue thead th{
background-color:#F5F5F5;
border-bottom:3px solid #CCC;
color:#666;
padding:5px;
}

#demoBlue tbody tr td {
padding: 3px 8px;
}

#demoBlue tfoot tr td{
background-color:#E7E7E7;
color:#B7B7B7;
padding:4px;
text-align:center;
}

JavaScript

<script type=”text/javascript”>
// this function is needed to work around
// a bug in IE related to element attributes
function hasClass(obj) {
var result = false;
if (obj.getAttributeNode(“class”) != null) {
result = obj.getAttributeNode(“class”).value;
}
return result;
}

function stripe(id) {

// the flag we’ll use to keep track of
// whether the current row is odd or even
var even = false;

// if arguments are provided to specify the colours
// of the even & odd rows, then use the them;
// otherwise use the following defaults:
var evenColor = arguments[1] ? arguments[1] : “#F0F8FF”;
var oddColor = arguments[2] ? arguments[2] : “#C2DBEF”;

// obtain a reference to the desired table
// if no such table exists, abort
var table = document.getElementById(id);
if (! table) { return; }

// by definition, tables can have more than one tbody
// element, so we’ll have to get the list of child
// <tbody>s
var tbodies = table.getElementsByTagName(“tbody”);

// and iterate through them…
for (var h = 0; h < tbodies.length; h++) {

// find all the <tr> elements…
var trs = tbodies[h].getElementsByTagName(“tr”);

// … and iterate through them
for (var i = 0; i < trs.length; i++) {

// avoid rows that have a class attribute
// or backgroundColor style
if (! hasClass(trs[i]) &&
! trs[i].style.backgroundColor) {

// get all the cells in this row…
var tds = trs[i].getElementsByTagName(“td”);

// and iterate through them…
for (var j = 0; j < tds.length; j++) {

var mytd = tds[j];

// avoid cells that have a class attribute
// or backgroundColor style
if (! hasClass(mytd) &&
! mytd.style.backgroundColor) {

mytd.style.backgroundColor =
even ? evenColor : oddColor;

}
}
}
// flip from odd to even, or vice-versa
even = ! even;
}
}
}
</script>

<script type=”text/javascript”>
window.onload = function() {
stripe(‘default’);
stripe(‘demoGreen’, ‘#ECFFAF’, ‘#F3FFCF’);
stripe(‘demoBlue’, ‘#FFFFFF’, ‘#F6F6F6’);
stripe(‘demoRed’, ‘#FFEFEF’, ‘#EFC2C2’);
}
</script>

Exemplos

Fonte: http://www.infectedfx.net/