CSS Media Types e como fazer o Internet Explorer do seu Pocket PC reconhecer somente sua folha de estilos handheld

Por: Henrique C. Pereira

Publicado em Saturday 04 August 2007 às 20:23

Categoria: HTML/CSS/JScript, Mobile

Tudo começou com um texto sobre padrões onde eu falava do problema do Internet Explorer no Pocket PC ao tentar renderizar tanto a folha de estilos principal (screen) quanto aquela feita especificamente para dispositivos móveis (handheld). Lá, o leitor Vinícios Rocha deu uma dica: Quando for linkar a folha de estilos principal, coloque o media type media=”Screen” ao invés de media=”screen”, com o "S" maiúsculo mesmo, que o browser ignora a folha de estilos screen e interpreta apenas a handheld. Fui dar uma fuçada mais no assunto para saber.

Em um mundo perfeito o documento de HTML que você faz para o seu site pode ser servido e adaptado para diferentes dispositivos, sem precisar ter versões específicas para eles.

Vamos por partes. Com CSS Media Types é possível (supõe-se ser) controlar como um documento deve ser apresentado em diferentes tipos de mídia, como a tela do seu monitor, seu celular ou PDA, sintetizador de voz etc. Ou seja, você constrói um único site e projeta folhas de estilos que vão controlar como o seu site deverá ser "apresentado" em cada um desses dispositivos.

Bom, voltando ao problema do IE no Windows Mobile. Para ver na prática os media types em ação, veja um teste feito pelo Patrick Griffiths do HTML Dog onde ao acessar esta página você consegue saber quais dispositivos tem suporte ao media type handheld e quais não. Quando um quadrinho ficar em verde em algum (ou nos dois) trechos, screen e handheld, significa que o dispositivo conseguiu interpretar o media type correspondente. Veja os screens shots que eu fiz do Pocket PC rodando Windows Mobile 5 usando o Internet Explorer e Opera Mobile:

Observe que no screenshot do Internet Explorer a parte do screen e do handheld ficaram em verde, mostrando que o Internet Explorer utiliza as duas folhas de estilos ao mesmo tempo para renderizar a página. Já nos screenshots do Opera Mobile somente o trecho do handheld ficou em verde.

Para corrigir esse problema no meu site as folhas de estilos estão organizadas da seguinte maneira:

<link href="http://www.revolucao.etc.br/estilos/estilos.css"
rel="stylesheet" media="Screen" type="text/css" />
<link href="http://www.revolucao.etc.br/estilos/mobile.css"
rel="stylesheet" media="handheld" type="text/css" />

Simple like that! A descoberta dessa falha no Internet Explorer para Pocket caiu como uma luva.

Comentários dos leitores

Este artigo possui 7 comentários

  1. Rodrigo Fante Sunday 05 August 2007 às 07:57

    Bom, agora da pra dizer que existe esperança entao!

    :D

    ahahah

    muito boa a analise e a pesquisa!

  2. Walmar Andrade #1° Sunday 05 August 2007 às 11:35

    Nunca duvide da capacidade do Internet Explorer em lhe trazer problemas…

  3. Jader Rubini #2° Sunday 05 August 2007 às 13:01

    Pra variar, mais um bug do IE… ¬¬

  4. Davis #3° Monday 06 August 2007 às 08:43

    Bacana a dica. Já vou aplicar.

    Mas acredito que isso não traga mtos problemas né…

    Ainda não, pode ser que em breve sim… Num futuro não muito distante onde operadoras de telecom tenham planos mais baratos :D

    Abraço!

  5. Vinícius Roch #4° Monday 06 August 2007 às 09:45

    Curtiu a dica, né? =)

    É um prazer ajudar!

    Agora poderemos ver a versão do Revolucao.etc no Pocket?

    Na verdade, se você colocar o "screen" minúsculo, o Pocket vai priorizar o handheld, mas vai misturar com o screen.

    Por exemplo, se você tiver, no Handheld h2 cor vermelha e no screen h2 cor azul, no pocket o h2 vai ficar vermelho. MAS se você tiver no screen h1 cor amarelo e nenhuma configuração de h1 para handheld, no pocket o h1 vai ficar amarelo!

    Felizmente, o "Screen" resolve o problema. E, felizmente, é um bug do IE fácil de ser contornado.

    A propósito, por falar em "bugs" e "IE", seu site tá meio zuado no IE7… Já viu?

    Um abraço Henrique.

  6. Carlos Eduardo #5° Monday 06 August 2007 às 11:47

    Interessante essa 'descoberta'.

    Infelizmente temos de recorrer a esse tipo de artifício para fazer o que se deseja…

    Mas nem tudo é perfeito pois, como foi dito no outro post sobre o assunto, as fabricantes dos browsers necessitam fazer algo que atenda à maioria dos sites, os quais não estão adaptados a exibição em dispositivos específicos, aplicando um CSS adequado para cada um deles.

  7. AdMiNTEC.net #6° Tuesday 07 August 2007 às 07:01

    Parabéns pelo artigo e pelo Blog. Votos de maiores sucessos na web 2.0

Deixe seu comentário:

Observação: Todos os campos obrigatórios estão marcados com um asterisco (*).

  1. As seguintes tags podem ser inseridas nos comentários: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Sobre este blog

Meu nome é Henrique C. Pereira e o Revolução Etc é o meu blog pessoal. Eu trabalho com design de interfaces, dispositivos móveis, planejamento de soluções web, arquitetura da informação, programação de interfaces, acessibilidade, padrões web, e-commerce e outras coisas relacionadas.
Leia mais sobre o autor.