Muita coisa sobre CSS, HTML, Javascript, Search engine optimization (seo), padrões e web
28 Jul
Provavelmente você já precisou executar uma função mais de uma vez, durante um período de tempo ou esperar algum tempo para executá-la pelo menos uma vez.
Se você chegou a pesquisar, provavelmente leu algo sobre setTimeout() e setInterval(). Ambas são funções Javascript que controlam quando uma função deve ser chamada.
O setTimeout() executa a função passada por ele, após o tempo determinado, apenas uma vez. Exemplo:
setTimeout("alert('Olá, apareci depois de 3 segundos.')", 3000);
O código acima faz com que o alert seja executado apenas 3 segundo após a chamada.
Diferentemente da setTimeout(), a função setInterval() executa repetidamente a função passada por ela, em intervalos de tempo iguais.
setInterval("alert('Olá, irei aparecer a cada 5 segundos.')", 5000);
O resultado será um alert a cada 5 segundos. Porém, em certos casos, isso pode ser um inconveniente. Por isso há o clearInterval(), que finaliza o intervalo entre as chamadas.
var num = 0;
objInter = setInterval(function() {
if(num > 5)
{
clearInterval(objInter);
return;
}
alert("Irei aparecer 5x apenas.");
num++;
}, 5000);
Repare que o clearInterval() recebe como parâmetro o objeto do setInterval(), por isso é preciso guardar, em uma variável, esse objeto (no caso, a variável é objInter).
Obs.: Muita gente acha que o setTimeout() e o setInterval() interrompem a execução do código, como uma chamada de função, por exemplo. Isso não é verdade. As funções que serão executadas pelo setTimeout() e setInterval() são executadas por traz do código principal. Ou seja, não causam uma pausa.
Leitura recomendada:
Mozilla Developer Center: DOM:window.setTimeout
Mozilla Developer Center: DOM:window.setInterval
Mozilla Developer Center: DOM:window.clearInterval
27 Jul
O Yahoo! desenvolveu uma extensão para o Firebug, plugin para o Firefox, que analisa a velocidade e peso do seu site e dá dicas de onde você pode melhorar para deixá-lo mais rápido.
26 Jul
Quando a Appel lançou o iPhone, ela afirmou que apenas programas da própria Apple é que poderiam ser instalados/executados no iPhone.
Será que ela estava mesmo levando isso a sério? Em que mundo a Apple vive, para achar que nenhum hacker iria quebrar o esquema de proteção e instalar os softwares que ele bem entender?
Não demorou muito para que fizessem isso. Saiu no Linha Defensiva, que já rodaram Apache, vim e Python no iPhone. E que rodem mais!
25 Jul
Um problema comum no Internet Explorer 6 é ele criar espaçamento que não existe entre um item e outro de uma lista. É comum ocorrer também em uma imagem, mas a solução essa é simples, como veremos adiante.
Se você colocar uma tag img e logo abaixo um bloco p com alguma cor de fundo, perceberá uma linha em branco, separando a imagem do bloco - imagem 1.
A solução para o problema acima é simples. Ou você coloca um bloco - um div, por exemplo - em volta da tag img ou coloca a própria tag img como bloco, pelo CSS:
div.bloco img { display: block; }
Com isso, o espaço existente anteriormente passa a não existir mais - imagem 2. Isso só ocorre no IE6 ou anteriores. Na versão 7 o problema foi corrigido.
![]() |
![]() |
Imagem sem o display: block |
Imagem com o display: block |
As listas também costumam apresentar espaçamento entres seus itens. A solução é um parecida com a do espaçamento nas imagens.
Tem gente que coloca todos os itens da lista em uma única linha. Dessa forma o espaçamento não aparece, mas dependendo da quantidade de itens, essa saída pode-se mostrar um pouco confusa em uma futura manutenção do site.
Vamos primeiro ao código que mostra o espaçamento entre os itens da lista, no IE6.
Nosso CSS está simples. Setamos apenas um background na tag a e, quando o mouse passar por cima, mudamos a cor para verde.
ul { padding: 0; margin: 0; width: 250px; }
ul li { padding: 0; margin: 0; list-style-type: none; }
ul li a { display: block; background-color: black; color: white; padding: 10px; }
ul li a:hover { background-color: green; color: black; }
O código HTML também ficou simples. Uma lista com links - parecendo um menu.
<ul> <li><a href="#1">Item 1</a></li> <li><a href="#1">Item 2</a></li> <li><a href="#1">Item 3</a></li> <li><a href="#1">Item 4</a></li> </ul>
Com o código acima obtemos um bom resultado - imagem 1 - no Firefox e IE7. Mas um espaçamento entre os itens - imagem 2 - aparece no IE6:
![]() |
![]() |
| Resultado no Firefox e Internet Explorer 7 | Resultado no Internet Explorer 6 |
div entre o aA solução para o problema acima é colocar um bloco dentro do li e trabalhar sempre com esse bloco. Ou seja, colocando um div entre as tags li o espaçamento irá sair.
Dessa forma, nosso código HTML fica da seguinte forma:
<ul> <li><div><a href="#1">Item 1</a></div></li> <li><div><a href="#1">Item 2</a></div></li> <li><div><a href="#1">Item 3</a></div></li> <li><div><a href="#1">Item 4</a></div></li> </ul>
O CSS não precisa ser alterado nesse caso, mas se precisasse seria apenas mudança de cor, borda, espaçamento, ou qualquer atributo de aparência. Mas nada para corrigir o problema, que é solucionado apenas com o div por lá.
Como sugerido pelo Renan Bernordi nos comentários, colocando uma altura 100% no elemento a, o espaçamento também irá sumir. Dessa forma, o div entre o a não será necessário e o CSS ficaria da seguinte forma:
ul { padding: 0; margin: 0; width: 250px; }
ul li { padding: 0; margin: 0; list-style-type: none; }
ul li a { display: block; background-color: black; color: white; padding: 10px; _height: 100%; }
ul li a:hover { background-color: green; color: black; }
Use Firefox!
No Maujor tem um texto que explica porque o problema acontece. É por causa de um tal hasLayout que só atrapalha em vez de ajudar. Viva o IE!
22 Jul
O que você acha sucks (em bom português, o que não presta)? Ou o que você acha rocks (também em bom português, algo que lhe agradou)?
O site sucks/rocks permite que você veja quem está levando a melhor, definitivamente, na boca do povo.
No caso dos browsers, o Opera é bem mais falado que o Internet Explorer. Já nas linguagens de programação, quem leva a melhor é o Ruby.
E no sistema operacional, quem leva a melhor? Windows? Linux? Não, o mais bem falado é o FreeBSD.
O calculo do mais badalado e o do mais odiado é feito de forma simples: análise dos resultados de uma busca pelo Yahoo! Ao encontrar algo do tipo “X sucks, X is lame, X is crap, I hate X”, um ponto negativo é dado ao termo.
Caso seja encontrado algo como “X rocks, X is sweet, X is awesome, I love X”, um ponto positivo é somado - deu pra perceber que o resultado leva em conta apenas os comentários em inglês.
Os dois resultados são divididos. Quanto mais próximo do 10, mais bem falado.
Outras pesquisas interessantes
Você concorda com os resultados?