La propriété font-style permet de sélectionner une fonte italique (italic) ou (oblique) parmi celles listées par font-family.

La forme italique est généralement une forme cursive qui utilise moins d'espace horizontal que les autres formes classiques. La forme oblique quant à elle est simplement une version penchée de la forme normale. Les formes italique et oblique peuvent être synthétisées par le navigateur si elles sont absente (le moteur penche alors les glyphes de la forme normale), pour plus d'informations sur l'activation de cette synthèse, voir la propriété font-synthesis.

Syntaxe

La propriété font-style peut être définie avec l'un des mots-clés suivants.

font-style: normal;
font-style: italic;
font-style: oblique;
font-style: oblique 10deg;

/* Valeurs globales */
font-style: inherit;
font-style: initial;
font-style: unset;

La propriété font-style s'utilise avec un mot-clé parmi ceux qui suivent. Si ce mot-clé est oblique, il peut également être suivi d'un mot-clé oblique.

Valeurs

normal
Sélectionne une police qualifiée de normal parmi celles de font-family.
italic
Sélectionne une police qualifiée d'italic, s'il n'y a pas de version italique, une version oblique sera sélectionnée à la place.
oblique
Sélectionne une police qualifiée d'oblique, s'il n'y a pas de version oblique, une version italic sera sélectionnée à la place.
oblique <angle>
Sélectionne une police qualifiée d'oblique et indique l'angle à utiliser pour la pente du texte. Si plusieurs fontes sont disponible pour la police, c'est la fonte avec la pente la plus proche qui est utilisée. Si aucune police oblique n'est disponible, le navigateur synthétisera une police penchée en tournant les caractères d'une fonte normale.
L'angle indiqué (cf. <angle>) doit être compris entre -90deg et 90deg. Si aucun angle n'est indiqué, la valeur par défaut utilisée sera 14deg. Les valeurs positives correspondent à une pente où le haut des caractères penche vers la fin de la ligne et les valeurs négatives permettent d'obtenir une pente orientée vers le début de la ligne.

Syntaxe formelle

normal | italic | oblique <angle>?

Variable fonts

Les polices variables permettent d'obtenir un contrôle fin sur la pente appliqué à la fonte. Pour cela, on pourra utiliser une police variable et font-style avec le mot-clé oblique suivi d'une valeur d'angle.

Pour les polices variables TrueType ou OpenType, c'est l'axe de variation "slnt" qui est utilisé afin d'implémenter les variations de pente. C'est l'axe "ital" qui est utilisé avec une valeur de 1 pour implémenter les fontes italiques. Voir font-variation-settings.

Afin que l'exemple suivant fonctionne, votre navigateur doit prendre en charge la syntaxe CSS Fonts Level 4 qui permet d'utiliser font-style: oblique suivi d'un angle.

HTML

<header>
    <input type="range" id="slant" name="slant" min="-90" max="90" />
    <label for="slant">Slant</label>
</header>
<div class="container">
    <p class="sample">...it would not be wonderful to meet a Megalosaurus, forty feet long or so, waddling like an elephantine lizard up Holborn Hill.</p>
</div>

CSS

/*
AmstelvarAlpha-VF is created by David Berlow (https://github.com/TypeNetwork/Amstelvar)
and is used here under the terms of its license:
https://github.com/TypeNetwork/Amstelvar/blob/master/OFL.txt
*/

@font-face {
  src: url('https://mdn.mozillademos.org/files/16044/AmstelvarAlpha-VF.ttf');
  font-family:'AmstelvarAlpha';
  font-style: normal;
}

label {
  font: 1rem monospace;
}

.container {
  max-height: 150px;
  overflow: scroll;
}

.sample {
  font: 2rem 'AmstelvarAlpha', sans-serif;
}

JavaScript

let slantLabel = document.querySelector('label[for="slant"]');
let slantInput = document.querySelector('#slant');
let sampleText = document.querySelector('.sample');

function update() {
  let slant = `oblique ${slantInput.value}deg`;
  slantLabel.textContent = `font-style: ${slant};`;
  sampleText.style.fontStyle = slant;
}

slantInput.addEventListener('input', update);

update();

Exemples

CSS

.normal {
  font-style: normal;
}

.italic {
  font-style: italic;
}

.oblique {
  font-style: oblique;
}

HTML

<p class="normal">Un paragraphe normale.</p>
<p class="italic">Un paragraphe italique.</p>
<p class="oblique">Un paragraphe oblique.</p> 

Résultat

Note : Toutes les polices ne disposent pas nécessairement de formes pour oblique et italic, si ces formes sont absentes, le moteur simulera la forme absente à partir de celle qui est disponible. Voici un exemple du rendu d'une police qui dispose des différentes formes :

Accessibilité

L'utilisation de grandes portions de textes avec font-style: italic peut rendre la lecture difficile pour les personnes dyslexiques ou ayant des troubles cognitifs.

Spécific​ations

Spécification État Commentaires
CSS Fonts Module Level 4
La définition de 'font-style' dans cette spécification.
Version de travail Permet d'indiquer un angle après le mot-clé oblique
CSS Fonts Module Level 3
La définition de 'font-style' dans cette spécification.
Candidat au statut de recommandation Aucune modification.
CSS Level 2 (Revision 1)
La définition de 'font-style' dans cette spécification.
Recommendation Aucune modification.
CSS Level 1
La définition de 'font-style' dans cette spécification.
Recommendation Définition initiale.

Valeur initialenormal
Applicabilitétous les éléments. S'applique aussi à ::first-letter et ::first-line.
Héritéeoui
Médiavisuel
Valeur calculéecomme spécifié
Type d'animationdiscrète
Ordre canoniquel'ordre unique et non-ambigu défini par la grammaire formelle

Compatibilité des navigateurs

FonctionnalitéChromeEdgeFirefoxInternet ExplorerOperaSafari
Support simple11211471
oblique can accept an <angle> Non ?61 Non ? ?
FonctionnalitéAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Support simple11124161 Oui
oblique can accept an <angle> ? Non ?61 ? ? ?

1. Before Firefox 44, oblique was not distinguished from italic.

Étiquettes et contributeurs liés au document

Étiquettes : 
Contributeurs à cette page : SphinxKnight, teoli, FredB, Mgjbot, Domif, Fredchat
Dernière mise à jour par : SphinxKnight,