Estilizando abbr no Internet Explorer 6

Por: Henrique C. Pereira

Publicado em Friday 30 March 2007 às 11:15

Categoria: HTML/CSS/JScript

O Internet Explorer 6 (ele novamente) e versões anteriores não reconhecem a tag <abbr>, muito utilizada principalmente como um design pattern em microformats. Ou seja, a maioria das pessoas que o utilizam não conseguem estilizar a tag no Internet Explorer 6. E não adianta dizer para usar a tag <acronym> no lugar de <abbr>, mesmo que o Internet Explorer dê suporte a tag <acronym>. Porque quem usa essas duas tags por livre e espontânea vontade tem um objetivo certo em mente (seja ele em microformats ou não), caso contrário não use nenhuma.

De qualquer maneira você poderá se deparar com contextos em que será necessário estilizar <abbr> para o Internet Explorer 6. Sendo assim existe uma solução em javascript que te ajuda a ter controle sobre o elemento. Veja o script a seguir:


function styleAbbr() {
  var oldBodyText, newBodyText, reg
  if (isIE) {
    oldBodyText = document.body.innerHTML;
    reg = /<ABBR([^>]*)>([^<]*)<\/ABBR>/g;
    newBodyText = oldBodyText.replace(reg, '<ABBR $1><SPAN class=\"abbr\" $1>$2</SPAN></ABBR>');
    document.body.innerHTML = newBodyText;
  }
}
window.onload = function(){
  styleAbbr()
};
isIE = (document.all) ? true:false;

O script (que poderia ser muito mais elegante) pega um elemento <abbr> e adiciona um <span> com a classe .abbr dentro dele. Ou seja, você não precisa colocar esse <span> no código só por causa do IE6. Na hora de criar suas regras de CSS, você pode estilizar normalmente para os browsers modernos e agrupar os estilos para a classe .abbr que será utilizada pelo IE6. Veja um exemplo:


#content abbr, #content .abbr {
    font-size:10px;
    color:#b30101;
    }

Simples e fácil certo?.

Via Sova v siti.

Comentários dos leitores

Este artigo possui 4 comentários

  1. Ramon Tuesday 03 April 2007 às 09:19

    Olá,

    Tive que faze uma pesquisa sobre isso, infelizmente não sabia dessa tag html, mas graças ao Senhor Sabe Tudo (leia-se: Google) as minha dúvidas foram saciadas, o IEca, é muito chatinho, mas o que podemos fazer. Vale ressaltar, que também existe o atributo abbr, que é diferente do elemento. Agora fiquei com duas dúvidas.

    No IEca 7, tem suporte ao elemento abbr???

    No IEca 6 e anteriores tem suporte ao atributo abbr???

    fuiii…

  2. Pingback: O elemento abbr « GiGa Soluções

  3. Willian #1° Tuesday 10 April 2007 às 17:21

    O Firebug ta detectando erro na seguinte linha

    reg = /]*)>([^ < ]*)/g;

    tem algo "anormal" ae ? :p

    Obriagdo!

  4. Pingback: Tutorial Avançado de HTML: Dominando Texto « Codando

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.