Ma question est fondamentalement le même que celui-ci, mais remplacer « hauteur de ligne » avec « l'espacement des lettres »: When a relative line-height is inherited, it is not relative to the element's font-size. Why? And how do i make it relative?Est-il possible d'avoir un interlignage par rapport à la taille de police et d'hériter correctement?
Mon cas d'utilisation est comme ceci:
body {
font-size: 18px;
letter-spacing: 1.2em; /* I would like letter-spacing to be relative to the font-size across the document, at least until I override it */
}
.small {
font-size: 14px;
/* letter-spacing is 1.2em of 18px instead of 14px */
}
Je sais que la raison cela ne fonctionne pas, c'est que la valeur calculée, et non la valeur spécifiée, est héritée, donc je dois redéfinir le letter-spacing
chaque fois que le font-size
change. Mais j'espère qu'il y a quelque chose de similaire à la façon dont fonctionnent les valeurs sans unité dans line-height
.
Bien sûr, je peux le faire:
* {
letter-spacing: 1.2em;
}
Mais je ne peux pas arrêter la mise en cascade à un élément, comme je serais en mesure de line-height
avec:
body {
font-size: 18px;
line-height: 1.5;
}
.normal-line-height {
line-height: normal;
/* all the descendants of this element will have a normal line-height */
}
Je veux dire, SURE , Je pourrais toujours faire ceci ...
.normal-letter-spacing, .normal-letter-spacing * {
letter-spacing: normal;
}
Mais ce n'est toujours pas aussi élégant que je le voudrais. Je ne pense pas qu'il existe une solution élégante à ce problème, mais je demande au cas où il me manque quelque chose.
peut-être utiliser des requêtes média? – user3791775
@ user3791775 J'essaie de comprendre comment les requêtes des médias pourraient aider à résoudre ce problème et je ne peux pas. Pouvez-vous élaborer s'il vous plaît? – benface
Je ne pense pas qu'il existe un moyen de rendre cela plus élégant ... mais ce n'est pas vraiment important pour quelque chose de simple comme ça. Plutôt que '*' [vous pouvez définir l'espacement des lettres pour chaque élément] (https://jsbin.com/tacebi/edit?html,css,output). Élégant? Non pratique? Oui. – misterManSam