Arquivo de março, 2010

10 maneiras para o Internet Explorer agir como um browser moderno

21 de março de 2010

Como muitos desenvolvedores, nós não somos muito fãs do Internet Explorer, além de não ser muito conhecido por “inovações”, é inadmissível a utilização de um browser tão antigo em uma época que novas e poderosas técnicas vem surgindo, como o CSS3 e o HTML5. Mas para amenizar este problema, alguns “truques” podem ser feitos para facilitar seu dia a dia.

Habilitar HTML5 no IE

Você conhece o HTML5? Se você fizer parte do cenário de desenvolvimento web, com certeza sim. HTML5 é a próxima grande revisão da HTM (linguagem de marcação de núcleo da World Wide Web).

O script html5.js é um projeto muito interessante que visa tornar o Internet Explorer compatível com HTML5, a única coisa que você precisa fazer é incluir o script html5.js no cabeçalho de seu HTML.

1
2
3
<!--[ if IE]-->
    <script language="javascript" src="http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
<!-- [endif] -->

Mais informações: http://remysharp.com/2009/01/07/html5-enabling-script/

Propriedade CSS text-shadow no IE

Devido a recente implementação da propriedade text-shadow no Firefox 3.5, os designers começaram a utilizar este recurso intensivamente. Hoje a grande maioria dos browsers modernos pode processar esta propriedade corretamente, com exceção do IE que mais uma vez ignora.

Felizmente, há um filtro que se esforça para interpretar esta propriedade no IE, o exemplo abaixo mostra como aplicar sombra de texto em browsers modernos e o filtro no IE. Repare que por não ser uma propriedade CSS padrão, ele deve ser isolado usando comentário condicional.

1
2
3
4
p.shadowed (
    text-shadow: # 0000ff 0px 0px 3px; /* Browsers modernos */
    filter: glow (color =# 0000ff, Strength =3); /* IE */
}

Mais informações: http://www.howtocreate.co.uk/textshadow.html

CSS box-shadow no IE

A implementação da sombra de caixa com a propriedade box-shadow é uma das mais interessantes inovações do CSS3, porque nos permite criar muitas sombras legais em elementos HTML sem necessidade de imagens. Uma verdadeira revolução para designers e desenvolvedores web front-end!

1
2
3
.sombreado (
    box-shadow: 10px 10px 5px #888;
}

Mas você pergunta se o Internet Explorer pode manipular box-shadow? Não, ele não pode.

Novamente, para imitar a propriedade CSS box-shadow no IE, vamos ter que usar outro filtro de propriedade privada:

1
2
3
4
5
6
.sombreado (
    filter:
    progid: DXImageTransform.Microsoft.DropShadow (color =#969696, OffX =1, Offy =1)
    progid: DXImageTransform.Microsoft.DropShadow (color =# C2C2C2, OffX =1, Offy =1)
    progid: DXImageTransform.Microsoft.DropShadow (color =# EFEFEF, OffX =1, Offy =1);
}

Mais informações: http://ole-laursen.blogspot.com/2009/08/using-css3-box-shadow-with-ie.html

Bordas Arredondadas

Bordas arredondadas! Assim como sombras nos elementos HTML sem usar qualquer imagem, outra mega inovação do CSS3 é a propriedade border-radius, que projeta facilmente cantos arredondados sem nenhuma imagem!

Abaixo, a utilização do border-radius:

1
2
3
4
5
. round (
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
}

Há algumas maneiras de criar cantos arredondados no IE sem utilizar imagens, um dos mais utilizados é o Roundies DD, um código Javascript que arredonda qualquer elemento HTML.

O exemplo abaixo criar elementos arredondados com a classe Roundify:

1
2
3
4
<script  tipo="text / javascript" src="DD_roundies.js"></script>
<script tipo="text / javascript">
    DD_roundies.addRule ('. Roundify', '10px ');
</script>

Mais informações: http://www.dillerdesign.com/experiment/DD_roundies/

Layout de Múltiplas Colunas

O CSS3 também permite a exibição automática de certos conteúdos em colunas. Algo bem legal, porque dá aos designers a possibilidade de criar layouts incríveis.

O código abaixo funciona no Firefox e Safari, ele adicionar automaticamente colunas a um elemento div:

1
2
3
4
5
6
. column (
    -moz-column-width: 13em;
    -webkit-column-width: 13em;
    -moz-column-gap: 1em;
    -webkit-column-gap: 1em;
}

Infelizmente não há nada similar no Internet Explorer, por isso será necessário utilizarmos o plugin JQuery Columnize. Abaixo você vê como é fácil criar colunas com ele:

1
2
3
$('# mydiv').columnize();
$('# myotherdiv').columnize((width: 200));
$('# mythirddiv'). columnize((columns: 2));

Mais informações: http://welcome.totheinter.net/2008/07/22/multi-column-layout-with-css-and-jquery/

Opacidade

Opacidade é outra coisa que não podemos esperar do IE, uma pena, porque ter a capacidade de determinar a opacidade de um elemento é algo muito interessante em termos de design. O filtro Crappy pode nos ajudar a atingir resultados semelhantes no IE.

1
2
3
4
. elemento (
    opacity:.7; /* CSS Padrão */
    filter:alpha (opacity=70); /* IE */
}

Elementos HTML Rotativos

Elementos rotativos com CSS3:

1
2
3
transform: rotate (240deg);
-webkit-transform: rotate (240deg);
-moz-transform: rotate (240deg);

O Internet Explorer irá simplesmente ignorar as declarações acima, mas podemos utilizar um filtro de propriedade particular que apesar de não ser validado pela W3C, simula o mesmo efeito para o IE:

1
filter: progid: DXImageTransform.Microsoft.Matrix (M11=0.86602540, M12=0.50000000, M21=-0.50000000, M22=0.86602540);

Mais informações: http://msdn.microsoft.com/en-us/library/ms533014%28VS.85%29.aspx

Suporte RGBa

Esta nova funcionalidade permite aos desenvolvedores especificar um valor de opacidade de cor, que é extremamente útil na codificação de um website:

1
2
3
4
.cor -bloco {
    largura: 50%;
    background-color: rgba (0, 0, 255, 0.2); /* Browsers Modernos */
}

No Internet Explorer, precisamos de um filtro para conseguir um efeito similar ao RGBa:

1
2
3
4
5
6
7
8
9
<!--[if IE]>
<style type="text/css">
   .color-block {
       background:transparent;
       filter:progid:DXImageTransform.Microsoft.gradient( startColorstr=#99000050,endColorstr=#99000050);
       zoom: 1;
   }
</style>
<![endif]-->

Mais informações: http://css-tricks.com/rgba-browser-support/

Incorporação de Fontes Compatíveis no IE

Durante muito tempo, a web foi dominada por algumas fontes como Arial, Verdana, Courier e Times New Roman. Estas fontes são denominadas como “web safe”, que significa que praticamente qualquer computador as tem instaladas (elas não instaladas no GNU/Linux por não serem livres).

Mas, de um ano ou dois pra cá, a técnica de incorporação de fontes mostrou-se muito interessante.

Entre outras técnicas, o método @font-face é provavelmente o mais limpo (acredite ou não, o Internet Explorer tenta apoiar a incorporação de fontes desde a versão 4), algo bem legal, mas considerando que nada na Microsoft é como nos outros, sua fonte deve estar no formato proprietário eot e você tem que usar uma declaração diferente para inseri-las em suas páginas:

1
2
3
4
5
6
7
8
9
10
11
@ font-face (
    font-family: "Sua" FontName;
    src: URL(Localização da fonte/FontFileName.eot); /* IE */
    src: local("FontName real"), URL(Localização da font FontFileName.ttf) formato("truetype"); /* Browsers Modernos */
}

/* Depois disso você a usa como qualquer outra fonte */

. elemento (
    font-family:"Sua" FontName, verdana, Helvetica, sans-serif;
}

Você precisará converter suas fontes para o formato eot da Microsoft para que elas funcionem no IE, para isso você pode usar esta ferramenta online gratuita. http://www.kirsle.net/wizards/ttf2eot.cgi

Mais informações: http://randsco.com/index.php/2009/07/04/p680

Utilizando robots.txt

20 de março de 2010

Os webcrawlers, ou robôs de buscas, são usados pelos mecanismos de buscas para percorrer a we, indexando a maior quantidade de conteúdo possível. O que muitas pessoas não sabem é que existe um padrão para dizer aos robôs de busca qual conteúdo do seu site deve ser indexado.

Este padrão é conhecido como robots.txt.

Entender como o robots.txt funciona é muito importante quando se trata de otimização de sites, tendo em vista que podemos impedir que conteúdo restrito fique visível nos sites de busca, como uma área de administração, por exemplo.

Criando o robots.txt

O arquivo robots.txt é basicamente um arquivo de texto simples com instruções, por exemplo:

No caso acima, todo o conteúdo do site será indexado.

1
2
User-agent: *
Disallow:

Nenhum conteúdo do site será indexado.

1
2
User-agent: *
Disallow:/

Não permite que a pasta “admin” seja indexada pelo robô do Google, com exceção do arquivo register.html dentro da mesma pasta.

1
2
3
User-agent: Googlebot
Disallow:/admin/
Allow: /admin/register.html

Os robôs tem como instrução, reunir a maior quantidade de conteúdo relevante possível, o que faz com que eles adicionem tudo o que vêem pela frente, a menos que seja dada uma instrução para que determinado conteúdo não seja adicionado.

Se você especificar instruções para algum robô específico, como o robô do Google por exemplo, toda a instrução “global” será ignorada por ele, por exemplo:

1
2
3
4
5
6
7
8
9
User-agent: *
Disallow: /admin/
Disallow: /arquivos/
Disallow: /textos/
Disallow: /audio/
Disallow: /downloads/

User-agent: Googlebot
Disallow: /admin/

No código acima, o Googlebot irá ignorar todo o conteúdo escrito em verde.

Utilizando caracteres especiais

Alguns robôs de buscas como o do Google, Yahoo e Msn permitem o uso de caracteres especiais.

O código abaixo é utilizado para bloquear urls que utilizem parâmetros via GET (incluem interrogação):

1
2
User-agent: *
Disallow:/*?

Ou você pode especificar extensões em particular, como o código abaixo que bloqueia páginas com extensão .php:

1
2
User-agent: Googlebot
Disallow: /*.php$

O Google também indexa resultados de formulários de pesquisas dos sites indexados. Considerando que o parâmetro de busca na url seja “search”, é possível bloquear esta funcionalidade com o código abaixo:

1
2
User-agent: *
Disallow: /?search=

Utilizar corretamente o robots.txt é essêncial para otimização e controle do conteúdo indexado no seu site, por isso esteja sempre atento para quais pastas são exibidas ou bloqueadas. ;)

« voltar para a página principal do blog

© 2010 Foco Livre Ag. - Todos os direitos reservados. Powered by WordPress