Atributos HTML Obsoletos
Lista de atributos HTML obsoletos, as tags em que eram usados e a propriedade CSS moderna equivalente, com exemplos de migração.
Um atributo HTML obsoleto (deprecated) é aquele que a especificação marcou como ultrapassado e desaconselha o seu uso. A maioria dos atributos nesta página eram apresentacionais — controlavam a aparência do conteúdo (cor, tamanho, alinhamento, espaçamento). Quando o HTML5 substituiu o HTML 4.01, a especificação deliberadamente transferiu essa responsabilidade de estilização do HTML para o CSS, para que a marcação descreva a estrutura e as folhas de estilo descrevam a aparência.
Por que esses atributos foram removidos
Na era do HTML4 era comum escrever <td bgcolor="#ff0000"> ou <font size="5"> diretamente na marcação. O HTML5 removeu esses recursos porque misturar apresentação ao HTML tem custos reais:
- Separação de responsabilidades. O estilo fica no CSS, de forma que uma única regra pode reestilizar todas as células em vez de repetir um atributo em cada tag.
- Manutenibilidade. Alterar uma cor em todo o site significa editar uma folha de estilo, não vasculhar centenas de atributos inline.
- Validação. O W3C Markup Validator e os linters de HTML reportam atributos obsoletos como erros ou avisos, de modo que falham nas verificações modernas de build/CI.
- Preparação para o futuro. Os navegadores ainda renderizam a maioria desses atributos por meio de regras de análise legadas, então uma página que os usa geralmente parece correta hoje. O risco não é uma falha imediata — é que o atributo não faz mais parte da especificação e seu suporte pode ser removido no futuro.
Em resumo: atributos obsoletos geralmente ainda funcionam, mas você deve migrá-los para CSS. A coluna "Alternativa" abaixo indica qual propriedade utilizar.
Obsoleto não é o mesmo que removido. Um atributo obsoleto (deprecated) é desencorajado, mas geralmente ainda é interpretado pelos navegadores. Um recurso removido (obsolete) foi eliminado completamente da especificação — por exemplo, basefont aqui se refere ao elemento <basefont> totalmente obsoleto, que os navegadores modernos podem ignorar. Trate qualquer item desta página como algo a substituir, e recursos removidos como algo que pode já não fazer nada.
Antes e depois: substituindo um atributo obsoleto por CSS
O padrão de migração é sempre o mesmo — exclua o atributo apresentacional e mova a intenção para uma regra CSS. Por exemplo, uma célula de tabela vermelha:
<!-- Deprecated: presentation baked into the markup -->
<td bgcolor="#ff0000">Sale</td>
<!-- Modern: structure in HTML, color in CSS -->
<td class="sale">Sale</td>.sale {
background-color: #ff0000;
}Mais algumas conversões comuns lado a lado:
<!-- align on a paragraph -->
<p align="center">Hello</p> → <p class="centered">Hello</p>
<!-- width/height on an image's wrapper, spacing around an image -->
<img src="logo.png" hspace="10" vspace="10"> → <img src="logo.png" class="spaced">
<!-- text color on the page body -->
<body text="#333333"> → <body> (styled in CSS).centered { text-align: center; }
.spaced { margin: 10px; }
body { color: #333333; }Lista de atributos HTML obsoletos
Os atributos abaixo são obsoletos nas tags listadas e devem ser substituídos pela propriedade indicada na coluna Alternativa.
| Atributos | Descrição | Obsoleto em | Alternativa |
|---|---|---|---|
| align | Especifica o alinhamento do elemento | <caption>, <img>, <table>, <hr>, <div>, <h1>-<h6>, <p> | Propriedades CSS text-align, float e vertical-align |
| alink | Especifica a cor de um link ativo no documento | <body> | CSS active Pseudo Class |
| background | Especifica a imagem de fundo | <body> | Propriedade CSS background-image |
| bgcolor | Especifica a cor de fundo | <body>, <table>, <tr>, <td>, <th> | Propriedade CSS background-color |
| border | Especifica a largura da borda | <img>, <object> | Propriedade CSS border-width |
| clear | Cancela alinhamentos à direita ou à esquerda | <br> | Propriedade CSS clear |
| compact | Especifica que a lista deve ser renderizada menor que o normal | <ol>, <ul> | CSS font-size, margin e line-height para uma lista mais compacta |
| height | Especifica a altura do elemento | <table> | Propriedade CSS height |
| hspace | Especifica o espaço em branco ou padding nos lados esquerdo ou direito de um elemento | <img>, <object> | Propriedade CSS padding |
| language | Especifica a linguagem de script | <script> | O atributo type |
| link | Especifica a cor padrão dos links | <body> | CSS link Pseudo Class |
| noshade | Especifica que uma linha horizontal deve ser renderizada em uma única cor sólida (sem sombreado) | <hr> | Propriedade CSS border-style |
| nowrap | Especifica que o texto não deve ser quebrado dentro da célula da tabela | <td>, <th> | Propriedade CSS white-space |
| size | Especifica a largura inicial para o campo de entrada e o número de linhas visíveis para o elemento select | <basefont>, <font>, <hr> | Propriedade CSS width |
| text | Especifica a cor do texto | <body> | Propriedade CSS color |
| type | Especifica o tipo de lista | <li> | Propriedade CSS list-style-type |
| vlink | Especifica a cor dos links visitados | <body> | CSS visited Pseudo Class |
| valign | Especifica o alinhamento vertical do conteúdo da célula | <td>, <th>, <tr> | Propriedade CSS vertical-align |
| vspace | Especifica o espaço em branco ou padding acima ou abaixo de um elemento | <img>,<object> | Propriedade CSS padding |
| width | Especifica a largura do elemento | <hr>,<pre>,<td>,<th> | Propriedade CSS width |
Nem tudo que parece "antigo" é obsoleto. O atributo start em <ol> (que define o primeiro número) e o atributo value em <li> (que define o número de um item específico) ainda são válidos no HTML5 — eles afetam a semântica da lista, não apenas sua aparência, portanto não há necessidade de substituí-los por CSS.
Próximos passos
- Consulte a visão geral completa de Atributos HTML para saber como os atributos funcionam e quais são os atuais.
- Está começando a mover estilos para folhas de estilo? Comece com Sintaxe CSS e a Introdução ao CSS.