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.
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.
| Attributi | Descrizione | Deprecato in | Alternativa |
|---|---|---|---|
| align | Specifica l'allineamento dell'elemento | <caption>, <img>, <table>, <hr>, <div>, <h1>-<h6>, <p> | Proprietà CSS text-align, float e vertical-align |
| alink | Specifica il colore di un link attivo in un documento | <body> | CSS active Pseudo Class |
| background | Specifica l'immagine di sfondo | <body> | Proprietà CSS background-image |
| bgcolor | Specifica il colore di sfondo | <body>, <table>, <tr>, <td>, <th> | Proprietà CSS background-color |
| border | Specifica la larghezza del bordo | <img>, <object> | Proprietà CSS border-width |
| clear | Elimina qualsiasi allineamento a destra o a sinistra | <br> | Proprietà CSS clear |
| compact | Specifica che l'elenco deve essere reso più piccolo del normale | <ol>, <ul> | CSS font-size, margin e line-height per un elenco più compatto |
| height | Specifica l'altezza dell'elemento | <table> | Proprietà CSS height |
| hspace | Specifica lo spazio bianco o il padding a sinistra o a destra di un elemento | <img>, <object> | Proprietà CSS padding |
| language | Specifica il linguaggio di scripting | <script> | L'attributo type |
| link | Specifica il colore predefinito dei link | <body> | CSS link Pseudo Class |
| noshade | Specifica che una linea orizzontale deve essere resa in un unico colore uniforme (non ombreggiata) | <hr> | Proprietà CSS border-style |
| nowrap | Specifica che il testo non deve andare a capo all'interno della cella della tabella | <td>, <th> | Proprietà CSS white-space |
| size | Specifica la larghezza iniziale per il campo di input e il numero di righe visibili per l'elemento select | <basefont>, <font>, <hr> | Proprietà CSS width |
| text | Specifica il colore del testo | <body> | Proprietà CSS color |
| type | Specifica il tipo di elenco | <li> | Proprietà CSS list-style-type |
| vlink | Specifica il colore dei link visitati | <body> | CSS visited Pseudo Class |
| valign | Specifica l'allineamento verticale del contenuto della cella | <td>, <th>, <tr> | Proprietà CSS vertical-align |
| vspace | Specifica lo spazio bianco o il padding sopra o sotto un elemento | <img>,<object> | Proprietà CSS padding |
| width | Specifica la larghezza dell'elemento | <hr>,<pre>,<td>,<th> | Proprietà CSS width |
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.