Balise HTML <basefont>
La balise <basefont> définit la taille et la couleur de police par défaut du texte. Découvrez son fonctionnement et son remplacement CSS moderne avec des exemples.
La balise <basefont> définissait la taille, la couleur et la police par défaut pour tout le texte d'une page. Elle pouvait être placée à l'intérieur des balises <head> ou <body>, et chaque portion de texte qui ne redéfinissait pas la police héritait de ces valeurs.
Cette page explique ce que faisait <basefont>, pourquoi elle a été retirée de HTML, et le CSS exact à écrire aujourd'hui pour obtenir le même résultat.
La balise <basefont> est une balise HTML dépréciée. Elle a été supprimée dans HTML5 et ne doit pas être utilisée dans les nouvelles pages. Les sections ci-dessous présentent le remplacement CSS moderne.
Pourquoi <basefont> est dépréciée
<basefont> est une balise de présentation : elle mélange les informations de mise en forme directement dans le balisage HTML. Le HTML moderne suit le principe de la séparation des préoccupations — HTML décrit la structure et le sens du contenu, tandis que CSS gère toute la présentation (polices, couleurs, tailles, espacements). Comme <basefont> n'existait que pour définir la présentation, HTML5 l'a entièrement supprimée en faveur de CSS.
Deux conséquences pratiques :
- La prise en charge par les navigateurs est peu fiable. Même avant HTML5, le comportement variait d'un navigateur à l'autre, et les navigateurs modernes peuvent ignorer
<basefont>complètement. Vous ne pouvez pas compter sur son rendu. - Ce n'est pas du HTML5 valide. Un document utilisant
<basefont>échouera à la validation, et les outils (linters, éditeurs, frameworks) le signaleront.
Vous pouvez encore rencontrer <basefont> lors de la maintenance d'anciens sites web, de gabarits d'e-mail ou de systèmes de gestion de contenu écrits avant HTML5. Dans ce cas, la bonne approche est de supprimer la balise et de la remplacer par le CSS équivalent présenté ci-dessous.
Syntaxe
La balise <basefont> est vide, ce qui signifie que la balise de fermeture n'est pas requise. Mais en XHTML, la balise (<basefont>) doit être fermée (<basefont/>).
Exemple de la balise HTML <basefont> :
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<basefont color="green" face="Helvetica" size="14">
</head>
<body>
<h3>Title of the text.</h3>
<p>Paragraph of the text.</p>
</body>
</html>Le remplacement CSS moderne
Pour reproduire exactement ce que faisait <basefont>, définissez les propriétés CSS correspondantes sur le sélecteur body. Chaque ancien attribut correspond directement à une propriété CSS :
Attribut <basefont> | Propriété CSS | Exemple de valeur |
|---|---|---|
color | color | green |
face | font-family | Helvetica |
size | font-size | 14px |
Vous pouvez également écrire les trois à la fois avec la propriété raccourcie font.
Pourquoi cibler body ? <basefont> fonctionnait en définissant des valeurs par défaut à l'échelle de la page que chaque élément héritait, sauf s'il spécifiait sa propre police. CSS reproduit cela via la cascade : color, font-family et font-size sont des propriétés héritées, donc lorsque vous les définissez sur body, chaque élément descendant (titres, paragraphes, listes, etc.) hérite automatiquement des mêmes valeurs — sauf si une règle plus spécifique les remplace. Styliser body vous offre ainsi la même source de vérité unique que fournissait autrefois <basefont>, mais avec un HTML5 valide et un comportement cohérent entre les navigateurs.
Exemple du remplacement CSS pour <basefont> :
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
body {
color: green;
font-family: Helvetica;
font-size: 14px;
}
</style>
</head>
<body>
<h3>Title of the text.</h3>
<p>Paragraph of the text.</p>
</body>
</html>Cela produit le même texte Helvetica vert en 14px que l'exemple déprécié <basefont color="green" face="Helvetica" size="14"> ci-dessus — mais il est validé en HTML5 et s'affiche de manière cohérente dans tous les navigateurs.
Attributs
| Attribut | Valeur | Description |
|---|---|---|
| color | color | Définit la couleur du texte par défaut. Non pris en charge en HTML5. |
| face | font_family | Définit la police du texte. Non pris en charge en HTML5. |
| size | number | Spécifie la taille de la police. Non pris en charge en HTML5. |