refactoring!

27 03 2008

Fiquei um tempinho sem postar aqui no blog, mas foi por um motivo importante!

Não, não estou de férias (beem longe de uma). Estava revisando os tutoriais iniciantes de HTML e CSS, pra eles estarem no ponto quando as aulas do +web começarem.

Os links foram corrigidos, conteúdos foram adicionados/retirados, crei uma tag pra cada minicurso e mais umas coisinhas.

Isso me custou algumas visitas

Queda enorme nas visitas

mas os minicursos estão bem melhores, e é isso que importa. Só tá faltando receber algum retorno dos alunos, saber o que estão achando do material.

Como a prioridade pro +web agora é fazer o que acontece por trás dos panos (correr atrás de coordenador, arrumar uma sala de projeção, conseguir uma hospedagem, etc etc etc) os minicursos vão ficar parados por algum tempo.

Até eles voltarem, continua a programação. Vai chover RoR (vou aprender RoR esse ano!) e php (começo a trabalhar com php segunda feira).

A propósito, alguém sentiu minha falta?





Opera e Webkit passam no Acid3!

27 03 2008

Notícia novinha!

Enquanto o ie8 e o Firefox3beta comemoram o score máximo no Acid2, o Opera (via) e o WebKit (engine do navegador Safari) (via) já passaram no Acid3, que testa o suporte a DOM e SVG, entre outras coisas. O Firefox3 beta4 tirou 68/100, e o Internet Explorer8, 17.

Tá esquentando!





Tutorial Intermediário de CSS: Imagens de Background

19 03 2008

Página com Imagem de Background

Existem várias propriedades envolvidas na manipulação de imagens de background.

Felizmente, a propriedade background cuida de todas as outras.

body {
	background: white url(http://www.htmldog.com/images/bg.gif) no-repeat top right;
}

Esse código une essas propriedades:

  • background-color, que nós já vimos antes.
  • background-image, que é o endereço da imagem que vai servir de fundo.
  • background-repeat, que é como a imagem se repete na página. Pode ser repeat-y (repetindo no eixo y, de cima até embaixo), repeat-x (repetindo no eixo x, lado a lado), repeat (repetindo nos eixos x e y, efeito semelhante a um telhado, por exemplo) ou no-repeat (que mostra apenas uma ocorrência da imagem).
  • background-position, que pode ser top (topo), center (centro), bottom (parte inferior), left (esquerda) e right (direita), ou uma combinação de dois desses elementos. Nesse caso, o primeiro indica a posição no eixo horizontal e o segundo a posição no eixo vertical.

Imagens de background podem ser usadas na maioria dos elementos HTML – não apenas pra página inteira (body) e podem ser usados pra efeitos simples mas eficazes, como bordas arredondadas.

É fácil se envolver demais com imagens de background e querer usá-las na página inteira. Algumas pessoas visualmente hiperativas podem acreditar que é uma boa ter uma foto cheia de cores vivas em todo o fundo da página, dando ao usuário o desafio de decifrar o texto no primeiro plano. Isso é um exemplo meio radical, mas o fato é que o texto mais amigável ao usuário, legível, é fonte preta em um fundo simples branco ou fonte branca num fundo preto. Algumas pessoas defendem que um fundo “quase” branco ou “quase” preto é melhor, já que reduz a claridade. Sugiro que você teste essas possibilidades e escolha a que você achar mais adequada ao seu projeto.

O melhor uso pra imagens de background é preencher espaços onde não haja nenhum conteúdo, deixando a página mais visualmente agradável sem atrapalhar o conteúdo.

Páginas Relacionadas

Exemplos

Referência

BlogBlogs Tags: , ,

Esse material é uma adaptação do CSS Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.





+web agora é “O’Reilly User Group Program Member”!

19 03 2008

Olá, Pessoal

É com grande prazer que venho anunciar que o nosso pedido foi aprovado, e o +web agora é “O’Reilly User Group Program Member”! Moral, não?

Com isso, a gente ganha

  • Desconto de 35% em livros comprados diretamente pela O’Reilly Store (é só inserir o código “DSUG“),
  • Possibilidade de pedir livros pra montar nossa “bibliotecazinha”,
  • Mais umas coisinhas.

Em troca, o +web divulga o convênio e faz resenhas dos livros (se quiser ajudar com uma resenha, manda um email pra mim).

Se você ainda não sabe o que é o +web, vai aqui!

Banner o’reilly User group program member





Tutorial Intermediário de CSS: Propriedades Atalho

18 03 2008

Trecho de código CSS

Algumas propriedades CSS permitem que uma sequência de valores substituam uma série de propriedades. Elas são representadas por valores separador por espaços.

margin, padding e border-width permitem a você combinar margin-top-width, margin-right-width, margin-bottom-width e etc. na forma

propriedade: top right bottom left;

Então:

p {
	border-top-width: 1px;
	border-right-width: 5px;
	border-bottom-width: 10px;
	border-left-width: 20px;
}

Pode ser resumido como:

p {
	border-width: 1px 5px 10px 20px;
}

border-width, border-color e border-style também podem ser somadas como, por exemplo:

p {
	border: 1px red solid;
}

(Isso também pode ser aplicado a border-top, border-right, etc.)

Ao declarar apenas dois valores (como margin: 1em 10em;), o primeiro valor vai ser o topo e a base, e o segundo valor vai ser a direita e a esquerda. Ao declarar apenas um valor, esse vai ser aplicado em todos os lados.

Propriedades relacionadas a fontes também podem ser unidas com a propriedade font:

p {
	font: italic bold 1em/1.5 courier;
}

(Onde o ‘/1.5′ é o atributo line-height.)

Então, juntando tudo, experimente esse código:

p {
	font: 1em/1.5 "Times New Roman", times, serif;
	padding: 3em 1em;
	border: 1px black solid;
	border-width: 1px 5px 5px 1px;
	border-color: red green blue yellow;
	margin: 1em 5em;
}

Atraente.

Existem bem mais atalhos que esses. E são todos muito, muito úteis. Leia esse guia de abreviações de CSS, mais abrangente que esse texto.

Páginas Relacionadas

Referência

BlogBlogs Tags: , ,

Esse material é uma adaptação do CSS Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.





Tutorial Intermediário de CSS: Pseudo Classes

18 03 2008

Quatro Estados de um Link

Pseudo classes são usadas juntos com seletores para especificar um estado do seletor. Elas aparecem na forma seletor:pseudo classe { propriedade: valor; }, com um sinal de dois-pontos separando o seletor e a pseudo classe.

Muitas das pseudo-classes definidas pelo CSS não são suportadas por todos os navegadores, mas existem quatro que podem ser usadas com segurança quando aplicadas à links:

  • link indica o estilo de links não-visitados.
  • visited indica links que foram visitados.
  • active indica um link que está com o foco (por exemplo, quando ele está sendo clicado).
  • hover indica um link enquanto o cursor é mantido sobre ele.
a.homemdasneves:link {
	color: blue;
}

a.homemdasneves:visited {
	color: purple;
}

a.homemdasneves:active {
	color: red;
}

a.homemdasneves:hover {
	text-decoration: none;
	color: blue;
	background-color: yellow;
}

Experimente. Crie uma página HTML que use esses estilos. Veja quando cada pseudo classe é usada. Crie uma outra página HTML e um outro arquivo CSS e explore um pouco mais essas classes. Dominar esses estados te ajuda a fazer páginas bem mais legais.

Embora CSS te dê o poder de contornar isto, manter links visitados com cores diferentes de links não-visitados é uma boa prática, já que muitos usuários supõe que isso vai acontecer.

Tradicionalmente, links de texto são azuis se não visitados e violeta se visitados, e ainda existem razões para acreditar que essas cores são as mais eficazes para isso. No entanto, com a crescente popularização do uso do CSS, essas cores estão deixando de ser lugares-comum e o usuário médio não assume mais que links precisam ser azul ou violeta.

Você também devia estar apto a usar a pseudo classe hover com outros elementos além de links. Infelizmente, o Internet Explorer (sempre ele) não suporta esse recurso até a versão 6. Isso é uma tremenda irritação, porque existem um monte de truquezinhos legais que você pode fazer com isso que ficam ótimos em outros navegadores.

Páginas Relacionadas

Exemplos

  • Rollovers 1 – links gráficos que mudam quando o cursos passa por eles usando :hover.
  • Rollovers 2 – Efeitos mais interativos, usando :active.
BlogBlogs Tags: , ,

Esse material é uma adaptação do CSS Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.





Tutorial Intermediário de CSS: Agrupando e Aninhando

17 03 2008

Código CSS com seletores aninhados e agrupados

Agrupando

Você pode aplicar as mesmas propriedades a vários seletores sem precisar repetí-los. Basta separar os seletores com vírgulas.

Por exemplo, se você tem alguma coisa assim:

h2 {
	color: red;
}

.outraClasse {
	color: red;
}

.maisUmaClasse {
	color: red;
}

Você pode trocar por isso:

h2, .outraClasse, .maisUmaClasse {
	color: red;
}

Aninhando

Se o CSS estiver bem estruturado, não deve existir a necessidade de muitos seletores de classe ou ID. Isso porque você pode especificar propriedades para seletores dentro de outros seletores. Por exemplo:

#topo {
	background-color: #ccc;
	padding: 1em
}

#topo h1 {
	color: #ff0;
}

#topo p {
	color: red;
	font-weight: bold;
}

Faz com que não haja necessidade de mais classes e ID’s se estiver aplicado a um HTML que pareça com esse:

<div id="top">

	<h1>Acarajé de Chocolate</h1>

	<p>Essa é minha receita pra fazer acarajé usando só chocolate</p>

	<p>Mmm mm mmmmm</p>

</div>

Isso acontece porque, ao separar seletores com espaços, nós estamos dizendo “h1 dentro do ID topo tem a cor #ff0″ e “p dentro do ID topo é vermelho e está em negrito”.

Isso pode ficar bem complicado (porque pode se extender por mais de dois níveis, como isso dentro disso dentro disso etc.) e pode exigir um pouco de prática.

Páginas Relacionadas

BlogBlogs Tags: , ,

Esse material é uma adaptação do CSS Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.





Tutorial Intermediário de CSS: Seletores Classe e ID

16 03 2008

Código CSS com seletores classe e id

No Tutorial Iniciante de CSS nós analisamos apenas os Seletores HTML – aqueles que representam uma tag HTML.

Você também pode definir seus próprios seletores na forma de seletores classe e ID.

A vantagem dissso é que você pode ter o mesmo elemento, mas apresentá-lo de modos diferentes dependendo de sua classe ou ID.

No CSS, um seletor de classe é um nome precedido por um ponto (.) e um seletor ID é um nome prededido por um sustenido (#).

O CSS fica mais ou menos assim:

#topo {
	background-color: #ccc;
	padding: 1em
}

.intro {
	color: red;
	font-weight: bold;
}

O HTML se liga ao CSS usando os atributos id e class. Pra esse CSS, o HTML pode ser alguma coisa assim:

<div id="top">

<h1>Acarajé de Chocolate</h1>

<p>Essa é minha receita pra fazer acarajé usando só chocolate</p>

<p class="intro">Mmm mm mmmmm</p>

</div>

Veja que o primeiro parágrafo aparece diferente do segundo, já que no segundo foi aplicada a classe “intro”.

A diferença entre ID e classe é que ID só pode ser usado pra identificar um elemento, enquanto uma classe pode ser usada pra quantos elementos você quiser.

Você também pode aplicar um seletor pra um elemento HTML específico, basta declarar o seletor HTML primeiro. Assim

p.classe { qualquer coisa }

vai ser aplicado apenas a elementos parágrafo (p) que tenham a classe “classe”.

Na hora de criar nomes para suas classes e ID, procurem usar nomes que façam sentido e que representem a função daquele seletor. Evite nomes de classe como “texto-verde”, que representa apresentação. A vantagem do CSS é poder mudar todo o estilo do seu site de forma muito simples. Se você usa nomes assim, você perde flexibilidade. Quando, por exemplo, você quiser mudar o texto pra azul, ao invés de verde, você vai ter que 1)mudar o nome da classe para “texto-azul”, e mudar cada referência no seu HTML, ou 2)fazer com que a classe “texto-verde” mostre um texto azul. Estranho, não? Por isso, a classe “texto-destacado” ou “texto-forte” seria mais adequada.

Páginas Relacionadas

BlogBlogs Tags: , ,

Esse material é uma adaptação do CSS Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.





Tutorial Intermediário de CSS

16 03 2008

Trecho de Código CSS

Como o Tutorial Intermediário de HTML, esse Tutorial Intermediário de CSS não deve ser tão difícil, mas ao invés disso complementar o básico que você viu no Tutorial Iniciante de CSS.

Conteúdo

Páginas Relacionadas

BlogBlogs Tags: , ,

Esse material é uma adaptação do CSS Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.





Tutorial Intermediário de HTML: Tags Más

13 03 2008

Código

Essa página analisa algumas tags HTML dos mundos de contos de fada e tempos pré-históricos. Más, fedorentas, ou simples coisinhas feias que pertenceram a padrões HTML ultrapassados, tolices proprietárias aleatórias que só quase-funcionam numa sub-versão de algum navegador ou tags que simplesmente foram suplantadas por tags mais novas.

A abordagem do HTML Dog de ensinar HTML e CSS baseado nos padrões web sem fazer barulho nenhum sobre os próprios padrões é uma boa mas, ao fazer isso, usuários (principalmente iniciantes) podem encontrar abordagens diferentes e más-práticas em outros lugares e não saber o que há de errado com elas. Pensando nisso foi criado esse guia sobre o que Não usar.

HTML tentou se mover da apresentação para o significado, conduzindo uma filosofia de separar o conteúdo e significado (HTML) da apresentação (CSS). Essa abordagem geral torna as páginas muito mais enxutas, porque um único conjunto de instruções relativas à apresentação (em um arquivo CSS externo) pode ser aplicado a muitas páginas. Isso também faz com que a manutenção do site se torne muito mais fácil, já que mudanças globais podem ser feitas a partir de uma única origem.

Algumas das “tags más” são apenas tags relativas à apresentação (como small) que devem ser substituídas por alguma coisa com significado ou simplesmente CSS. Outras podem ser não apenas relativas à apresentação, mas desnecessariamente volumosas (como a tag font) ou horrivelmente prejudiciais à usabilidade (como o blink).

Tags

Essas são algumas das tags mais comuns por aí que têm alternativas melhores:

  • b pode ser usado pra deixar um elemento em negrito. Usar strong (que quer dizer ênfase forte) em seu lugar adiciona significado. Para adicionar apenas negrito, sem significado especial, a regra CSS font-weight: bold faz o serviço.
  • i pode ser usado para deixar um elemento em itálico. Usar em (significa ênfase) em seu lugar adiciona também significado. font-style: italic também pode ser usado pra ajustar apenas a apresentação.
  • big pode ser usado pra criar um texto grande. Usar, ao invés disso, cabeçalhos (h1, h2, etc., quando o texto for um cabeçalho genuíno) adiciona significado, ou simplesmente usar a propriedade font-size no CSS te dá mais controle sobre a apresentação.
  • small pode ser usado pra criar texto pequeno. CSS (font-size) mais uma vez te dá mais controle.
  • hr pode ser usado pra mostrar uma linha na horizontal. De qualquer forma, é raro usar hr numa página feita com CSS; propriedades como border-top e border-bottom ou até mesmo simples imagens fazem o trabalho bem melhor.

Todas as tags mencionadas acima são compatíveis com os últimos padrões HTML, mas elas não aplicam nenhum significado ao conteúdo, coisa que todas as “tags boas” devem fazer. Elas poderiam ser mais úteis, mas elas não são muito prejudiciais, e facilmente poderiam ser confundidas com pequenas criancinhas inocentes e cheias de bondade perto dessas tags imundas abaixo:

  • u pode ser usado pra sublinhar elementos. Só que a maioria das pessoas associa texto sublinhado com links (se tá sublinhado, é pra clicar). Por isso essa tag morreu muito tempo atrás – você realmente não quer sublinhar texto que não seja link.
  • center pode ser usada pra centralizar um elemento dentro de outro. A propriedade CSS permite os valores não apenas de center, mas também left (esquerda), right (direita) e justify (justificado).
  • menu pode ser usado pra criar um menu. Ela faz exatamente o que ul faz, mas como uma “lista não-ordenada” é mais geral, ul permanece de pé sobre o cadáver de menu.
  • layer é similar ao elemento div posicionado com CSS. Ela só funciona em versões velhas do navegador Netscape, o que a torna meio inútil.
  • blink faz o texto piscar e marquee faz o texto ficar atravessando a página. Apenas digam “NÃO!”, crianças. Elas tem um suporte muito limitado e com certeza foram criadas só pra fazer brincadeiras muito, muito doentes.
  • font, que podia ser usada pra definir o nome da fonte, tamanho e cor de um elemento ganhou uma merecida reputação de ser o notoriamente perverso Lord dos Duendes diabólicos da Taglândia. Velhos sites (e até mesmo alguns novos) tem tags font espalhadas por todas as suas páginas como uma praga de cupim. Muita de sua proliferação começou com os softwares de autoria web colocando a tag font ao redor de cada elemento em que o autor aplicava cor ou tamanho. Enquanto a tag font precisa ser aplicada em cada ocorrência de um elemento (digamos, sempre que você usa uma tag p), com CSS você pode aplicar propriedades a todas as ocorrências de um elemento com apenas uma linha de código para todo o seu site. Usando esse método, a página fica bem mais leve que uma página equivalente infestada de tags font. Além disso, mudanças podem ser feitas mais facilmente porque tudo que você precisa fazer é mudar uma linha de CSS ao invés de cada instância da tag font. Isso também aumenta suas chances de manter um design consistente em todo o site. tags font e o uso inapropriado de tabelas são as causas mais comuns de páginas desnecessariamente inchadas.

Atributos

Você pode pensar que, agora que já conhece as tag más e só vai usar as boazinhas, seu HTML está limpo e seguro. Mas existem alguns atributos na estreita esperando pra estragar suas “tags boas”.

  • name pode ser usada pra dar um nome a um elemento, o que é perfeitamente aceitável em elementos em formulários como o input, mas em qualquer outro lugar name foi substituído pelo atributo id.
  • text e bgcolor podem ser usadas pra especificar a cor base do texto e a cor do background de uma página dentro da tag body de abertura. As propriedades CSS color e background-color podem fazer isso quando aplicadas ao seletor body.
  • background pode ser usado dentro da tag body pra especificar uma imagem para o background de uma página. CSS cuida de imagens de background bem melhor com propriedades como background-image.
  • link, alink e vlink podem ser usadas na tag body pra especificar a cor dos links (não-visitado, ativo e visitado). CSS, baby – :link, :active e :visited fazem todo o trabalho.
  • align pode ser usada pra alinhar o conteúdo de um elemento (como em <div align="center">Stuff</div>), mas, como acontece com a tag center, a propriedade CSS text-align é a nova chefe.
  • target pode ser usada pra abrir um link em vários estados, geralmente em uma nova janela (como

<a href="qualquerlugar.html" target="_blank">Ajude me</a>

). Parece legal, mas não está fazendo nenhum favor ao seu site. Usuários não querem que coisas (como novas janelas) apareçam como mágica e a ferramenta de navegação mais usada em um site é o botão “Voltar”, que não vai funcionar se você abrir o link em uma nova janela. target é inválido e inacessível.

Atributos relativos a apresentação como width e height para imagens e cellpading e cellspacing para células ainda tem que ser usados devido a frequência com que diferentes valores precisam ser aplicados a diferentes elementos. Eles não são a solução perfeita, mas se você tem uma página com um grande número de imagens ou tabelas, você pode não ter nenhuma outra escolha sensata.

Os mais desconcertantes atributos relativos a apresentação pertencem a tag textarea, onde os atributos cols (número de colunas) e rows (número de linhas) são não apenas válidos, mas obrigatórios segundo o último padrão HTML.

Tags boas, mau uso

Pra entrar na sua casa você até pode se ajoelhar e se espremer por aquela pequena portinhola de cachorro mas espere! Tem uma porta humana bem grande enfeitada com um aparelho chamado fechadura! Wow! Olhe – a porta, tipo, é do tamanho certo pra um humano passar.

A coleção de tags HTML (as boas) foi feita pra uma razão específica e acredite ou não (acredite), quando você as usa pelos motivos certos, você consegue resultados melhores.

Páginas web são muito mais acessíveis para pessoas com deficiências quando o HTML é semântico (as tags são usadas pelos motivos certos), por que, por exemplo, leitores de tela vão geralmente enfatizar uma lista quando encontram uma tag ul ou ol e um cabeçalho quando encontram um h1 ou h2.

A tag HTML mais usada inapropriadamente é a table. Tabelas são muitas vezes usadas pra fazer o layout, mas elas devem ser usadas apenas pra mostrar dados tabulares, como sempre foi sua intenção. O método de layout sem tabelas não é nenhum tipo de desafio Zen Budista para a iluminação de um verdadeito geek, existe um benefício prático real de não apenas reduzir drasticamente o peso da página, mas também facilitar a manutenção e o redesign. Um bom exemplo disso é o Zen Garden (versão brasileira – Zen Garden do Maujor). Mudando apenas o CSS, você muda o visual do site inteiro. Legal, não é?

Algumas vezes designers usam algumas das tags e atributos mencionados aqui (especialmente tabelas para layout) pra conseguir um design que suporta tanto navegadores antigos (em especial o Netscape 4) quanto os modernos. Tabelas vão efetivamente permitir um controle melhor sobre a apresentação em navegadores que não suportam o CSS, como o Netscape 4, mas existem pouquíssimos usuários desses navegadores e cada vez menos, enquanto o número de usuários onde um layout feito com tabelas é uma grande desvantagem – usuários de dispositivos móveis – cresce. As vantagens de um design livre de tabelas mencionadas acima de longe superam as desvantagens e o resultado são páginas que, embora percam o estilo pra uma minoria, permanecem com todas as suas funcionalidades em todos os navegadores.

Frames (Quadros)

Cachinhos Dourados achou que seria uma ótima idéia comer aquelas tigelas de mingau, mas três mamíferos grandes e carnívoros apareceram e a jogaram pela janela. Frames são tigelas de mingau que pertencem a ursos. Podem parecer legais, mas é bem perigoso andar em algum lugar perto deles.

A maioria dos sites não usa frames e no geral usuários da web estão acostumados com um único documento compondo uma página.

Mas se, por alguma razão, você quer:

  • prevenir os usuários de adicionar uma página específica aos seus favoritos;
  • prevení-los de recomendar uma página por email ou mensageiro instantâneo;
  • adicionar um outro nível de complexidade pra usuários que usam leitores de tela, que vão ter que navegar entre frames ao invés de navegar por uma página
  • confundir mecanismos de busca,

vá em frente, use frames.

No geral, frames não fazem nada além de adicionar complexidadade e subtrair usabilidade.

Se você seguir essas receitas de bolo, você não vai errar muito:

  1. Se o nome da tag ou atributo pelo menos sussura alguma coisa sugerindo apresentação, não use. Isso é trabalho do CSS. E CSS faz o trabalho bem melhor.
  2. Usa a tag pra fazer o que o nome indica. Tabelas são pra dados tabulares. Cabeçalhos pra cabeçalhos. Etcetera etcetera.
  3. Quando você tiver algum conteúdo específico, use as tags apropriadas. Listas pra listas, cabeçalhos pra cabeçalho, yada yada yada.

E já que falamos muito de usabilidade e acessibilidade, alguns links pra você ficar mais por dentro do assunto:

Páginas Relacionadas

Referência

Esse material é uma adaptação do HTML Intermediate Tutorial, de autoria de Patrick Griffiths. Todos os direitos pertencem ao autor.








Seguir

Obtenha todo post novo entregue na sua caixa de entrada.