Internet Explorer 8 – beta 2

E foi lançado o beta 2 do Internet Explorer 8 (faça aqui o download).

Além de estar bem mais bonito e fácil de usar, a grande diferença para quem trabalha com web é o suporte dado pelo browser aos padrões web (webstandards) – a Microsoft já tinha feito um bom avanço no IE7, quando comparado ao IE8; mas parece que agora essa preocupação ficou mais forte (será que  apelo da comunidade ajudou nisso?). Inclusive muitas coisas da especificação 3 do CSS estão sendo implementadas (veja aqui a lista de novidades em termos de CSS no IE8).
Okey, muitas coisas desse IE8 não são novidades para quem usa Firefox ou Opera, por exemplo, como um DOM Inspector ou melhor debugger de javascript (coisa que o Firebug faz no FF), a opção de desativar o CSS ou, ainda, um campo para buscar em diferentes serviços (Live Search, Google, Yahoo, etc…) e suporte a microformats (IE´s Web Slices).

 

A cara nova do IE8:


Campo de sugestão de busca


Seleção de compatibilidade (onde você pode ver as páginas rendereizadas em versões antigas do IE)


Bookmarks

 

Vale a pena falar que há uma mudança grande na parte de privacidade: existe uma funcionalidade nova, chamada de private browsing, onde o usuário pode incapacitar o browser de acessar dados (como o histórico, dados de formulário, arquivos temporários, etc…). Com um clique apenas, você pode definir que um site específico não deve ter seus dados gravados, evitando qualquer referência a ele no seu histórico.

Sugiro esse post aqui, bem completinho, sobre as funcionalidades do IE8.

[update]Nesse post aqui no Webinsider, fala-se sobre o impacto do private browsing em termos de métricas[/update]

Você é um viciado em Webstandards quando…

Você já enviou para o administrador de um site um e-mail informando sobre erros de validação no html/css

Você já gastou mais do que meia-hora procurando uma versão compatível com os padrões para uma galeria de fotos em flash

Você já sentou num restaurante e, ao olhar a mesa, pensou: "humm, eu poderia fazer isso com divs"…

Você teve faniquitos ao ler o título desse post 🙂

Você já ouviu alguém cochichando "ihh, lá vem a polícia dos webstandards" quando você chega num ambiente

Você já investiu mais de uma hora tentando explicar pro seu priminho mais novo que adora computadores, a diferença entre acessibilidade e padrões

Nesse meio-tempo em que ficou lendo esse post, já abriu o validador da W3C e foi ver se essa página contém algum erro

Como deixar um background com transparência no IE

Inimigo mortal de imagens no formato .png, o Internet Explorer – pelo menos até o 6 – não interpreta as transparências dificultando a nossa árdua vida de desenvolvedor.

O pngfix é um conhecido de quase todo mundo e ele serve exatamente para forçar o IE a interpretar transparências nas imagens. Até aí pouca novidade para a grande maioria, mas ainda existia o problema de background com transparência, inicialmente não resolvido pelo pngfix.

Vou fazer um passo a passo, primeiro de como deixar imagens transparente e depois de como aplicar isso aos backgrounds também.

As imagens:

1. Baixe o arquivo pngfix.js e o coloque na pasta do seu site (clique aqui para baixar o arquivo ou copie e cole o código abaixo)

 

/*

Correctly handle PNG transparency in Win IE 5.5 & 6.
http://homepage.ntlworld.com/bobosola. Updated 18-Jan-2006.

Use in with DEFER keyword wrapped in conditional comments:

*/

var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])

if ((version >= 5.5) && (document.body.filters))
{
for(var i=0; i
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "
+ " style="" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src='" + img.src + "', sizingMethod='scale');">"
img.outerHTML = strNewHTML
i = i-1
}
}
}

2. Coloque dentro da tag head da sua página o seguinde código:

<!–[if lt IE 7]>
<style type=”text/css”>
#main{
background-image: none;
filter:
progid: DXImageTransform.Microsoft.AlphaImageLoader(src=IMAGEM.png,sizingMethod=’scale’)
;
}
</style>
<![endif]–>

Isso significa que o navegador só irá interpretar se for IE e com uma versão anterior a 7.

Pronto, automaticamente todas as imagens do seu site – menos os backgrounds – estarão com a transparência até no teimoso IE.

Agora aos backgrounds:

Aqui é um pouco mais trabalhoso, pois tem que ser feito manualmente em cada background, mas nada que uma folha de estilos para o IE não resolva. Minha dica é criar uma folha exclusiva para o IE e carregar ela pelo mesmo código que carrega o javascript.

Na folha de estilos do IE você precisa definir o seguinte:

#principal{
background-image: none;
filter:
progid: DXImageTransform.Microsoft.AlphaImageLoader(src=andafter.png,sizingMethod=’scale’)
;
}

Pronto, é só você definir este filter para todos os backgrounds que vão precisar de transparência e o problema está resolvido.

Gosto da criação de uma folha de estilos para o IE para corrigir os problemas, isso facilita um monte e normalmente não tem tanta coisa como dizem por aí, ah este pessoal complica…

Qualquer dúvida é só entrar em contato pelos comentários. 😉