W3docs

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.

Aviso

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.

AtributosDescriçãoObsoleto emAlternativa
alignEspecifica o alinhamento do elemento<caption>, <img>, <table>, <hr>, <div>, <h1>-<h6>, <p>Propriedades CSS text-align, float e vertical-align
alinkEspecifica a cor de um link ativo no documento<body>CSS active Pseudo Class
backgroundEspecifica a imagem de fundo<body>Propriedade CSS background-image
bgcolorEspecifica a cor de fundo<body>, <table>, <tr>, <td>, <th>Propriedade CSS background-color
borderEspecifica a largura da borda<img>, <object>Propriedade CSS border-width
clearCancela alinhamentos à direita ou à esquerda<br>Propriedade CSS clear
compactEspecifica que a lista deve ser renderizada menor que o normal<ol>, <ul>CSS font-size, margin e line-height para uma lista mais compacta
heightEspecifica a altura do elemento<table>Propriedade CSS height
hspaceEspecifica o espaço em branco ou padding nos lados esquerdo ou direito de um elemento<img>, <object>Propriedade CSS padding
languageEspecifica a linguagem de script<script>O atributo type
linkEspecifica a cor padrão dos links<body>CSS link Pseudo Class
noshadeEspecifica que uma linha horizontal deve ser renderizada em uma única cor sólida (sem sombreado)<hr>Propriedade CSS border-style
nowrapEspecifica que o texto não deve ser quebrado dentro da célula da tabela<td>, <th>Propriedade CSS white-space
sizeEspecifica 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
textEspecifica a cor do texto<body>Propriedade CSS color
typeEspecifica o tipo de lista<li>Propriedade CSS list-style-type
vlinkEspecifica a cor dos links visitados<body>CSS visited Pseudo Class
valignEspecifica o alinhamento vertical do conteúdo da célula<td>, <th>, <tr>Propriedade CSS vertical-align
vspaceEspecifica o espaço em branco ou padding acima ou abaixo de um elemento<img>,<object>Propriedade CSS padding
widthEspecifica a largura do elemento<hr>,<pre>,<td>,<th>Propriedade CSS width
Informação

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

Prática

Prática
Uma página usa align='center' em um parágrafo. Qual é a substituição moderna correta?
Uma página usa align='center' em um parágrafo. Qual é a substituição moderna correta?
Prática
Por que você deve migrar atributos presentacionais obsoletos para CSS mesmo que os navegadores ainda os renderizem?
Por que você deve migrar atributos presentacionais obsoletos para CSS mesmo que os navegadores ainda os renderizem?
Prática
Quais dos seguintes são atributos HTML obsoletos segundo o W3docs?
Quais dos seguintes são atributos HTML obsoletos segundo o W3docs?
Was this page helpful?