W3docs

Attributi HTML Deprecati

Elenco degli attributi HTML deprecati, i tag in cui venivano usati e la proprietà CSS moderna da usare al loro posto, con esempi di migrazione.

Un attributo HTML deprecato è un attributo che la specifica ha contrassegnato come obsoleto e che sconsiglia di utilizzare. La maggior parte degli attributi in questa pagina era di natura presentazionale — controllava l'aspetto del contenuto (colore, dimensione, allineamento, spaziatura). Quando HTML5 ha sostituito HTML 4.01, la specifica ha deliberatamente spostato questa responsabilità di stile fuori dall'HTML e nel CSS, in modo che il markup descriva la struttura e i fogli di stile descrivano l'aspetto.

Perché questi attributi sono stati eliminati

Nell'era di HTML4 era comune scrivere <td bgcolor="#ff0000"> o <font size="5"> direttamente nel markup. HTML5 li ha rimossi perché mescolare la presentazione nell'HTML ha costi reali:

  • Separazione delle responsabilità. Lo stile vive nel CSS, quindi una sola regola può ridefinire ogni cella invece di ripetere un attributo su ogni tag.
  • Manutenibilità. Cambiare un colore a livello di sito significa modificare un solo foglio di stile, non cercare centinaia di attributi inline.
  • Validazione. Il W3C Markup Validator e i linter HTML segnalano gli attributi deprecati e obsoleti come errori o avvisi, quindi non superano i controlli moderni di build/CI.
  • Longevità. I browser continuano a renderizzare la maggior parte di questi attributi tramite regole di parsing legacy, quindi una pagina che li usa di solito appare corretta oggi. Il rischio non è un'interruzione immediata — è che l'attributo non fa più parte della specifica e il supporto potrebbe essere rimosso in futuro.

In breve: gli attributi deprecati in genere funzionano ancora, ma dovresti migrarli a CSS. La colonna "Alternativa" qui sotto indica quale proprietà usare.

Attenzione

Deprecato non equivale a obsoleto (rimosso). Un attributo deprecato è sconsigliato ma in genere ancora analizzato dai browser. Una funzionalità obsoleta è stata rimossa completamente dalla specifica — ad esempio, basefont qui si riferisce all'elemento <basefont> completamente obsoleto, che i browser moderni possono ignorare. Considera qualsiasi cosa in questa pagina come qualcosa da sostituire, e le funzionalità obsolete come qualcosa che potrebbe già non fare nulla.

Prima e dopo: sostituire un attributo deprecato con CSS

Il pattern di migrazione è sempre lo stesso — elimina l'attributo presentazionale e sposta l'intento in una regola CSS. Ad esempio, una cella di tabella rossa:

<!-- 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;
}

Altre conversioni comuni affiancate:

<!-- 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; }

Elenco degli attributi HTML deprecati

Gli attributi qui sotto sono deprecati nei tag elencati e dovrebbero essere sostituiti dalla proprietà indicata nella colonna Alternativa.

AttributiDescrizioneDeprecato inAlternativa
alignSpecifica l'allineamento dell'elemento<caption>, <img>, <table>, <hr>, <div>, <h1>-<h6>, <p>Proprietà CSS text-align, float e vertical-align
alinkSpecifica il colore di un link attivo in un documento<body>CSS active Pseudo Class
backgroundSpecifica l'immagine di sfondo<body>Proprietà CSS background-image
bgcolorSpecifica il colore di sfondo<body>, <table>, <tr>, <td>, <th>Proprietà CSS background-color
borderSpecifica la larghezza del bordo<img>, <object>Proprietà CSS border-width
clearElimina qualsiasi allineamento a destra o a sinistra<br>Proprietà CSS clear
compactSpecifica che l'elenco deve essere reso più piccolo del normale<ol>, <ul>CSS font-size, margin e line-height per un elenco più compatto
heightSpecifica l'altezza dell'elemento<table>Proprietà CSS height
hspaceSpecifica lo spazio bianco o il padding a sinistra o a destra di un elemento<img>, <object>Proprietà CSS padding
languageSpecifica il linguaggio di scripting<script>L'attributo type
linkSpecifica il colore predefinito dei link<body>CSS link Pseudo Class
noshadeSpecifica che una linea orizzontale deve essere resa in un unico colore uniforme (non ombreggiata)<hr>Proprietà CSS border-style
nowrapSpecifica che il testo non deve andare a capo all'interno della cella della tabella<td>, <th>Proprietà CSS white-space
sizeSpecifica la larghezza iniziale per il campo di input e il numero di righe visibili per l'elemento select<basefont>, <font>, <hr>Proprietà CSS width
textSpecifica il colore del testo<body>Proprietà CSS color
typeSpecifica il tipo di elenco<li>Proprietà CSS list-style-type
vlinkSpecifica il colore dei link visitati<body>CSS visited Pseudo Class
valignSpecifica l'allineamento verticale del contenuto della cella<td>, <th>, <tr>Proprietà CSS vertical-align
vspaceSpecifica lo spazio bianco o il padding sopra o sotto un elemento<img>,<object>Proprietà CSS padding
widthSpecifica la larghezza dell'elemento<hr>,<pre>,<td>,<th>Proprietà CSS width
Informazione

Non tutto ciò che sembra "vecchio" è deprecato. L'attributo start su <ol> (che imposta il primo numero) e l'attributo value su <li> (che imposta il numero di un elemento specifico) sono ancora validi in HTML5 — influenzano la semantica dell'elenco, non solo il suo aspetto, quindi non è necessario sostituirli con CSS.

Cosa fare dopo

  • Consulta la panoramica completa degli Attributi HTML per scoprire come funzionano gli attributi e quali sono ancora attuali.
  • Sei nuovo allo spostamento degli stili nei fogli di stile? Inizia con CSS Syntax e l'Introduzione al CSS.

Esercitati

Pratica
Una pagina usa align='center' su un paragrafo. Qual è la sostituzione moderna corretta?
Una pagina usa align='center' su un paragrafo. Qual è la sostituzione moderna corretta?
Pratica
Perché dovresti migrare gli attributi presentazionali deprecati a CSS anche se i browser li renderizzano ancora?
Perché dovresti migrare gli attributi presentazionali deprecati a CSS anche se i browser li renderizzano ancora?
Pratica
Quali dei seguenti sono attributi HTML deprecati secondo W3docs?
Quali dei seguenti sono attributi HTML deprecati secondo W3docs?
Was this page helpful?