Je vais répondre pour l'étirement horizontal du texte, car la verticale est la partie la plus facile - utilisez simplement "transform: scaleY ()"
.stretched-text {
letter-spacing: 2px;
display: inline-block;
font-size: 32px;
transform: scaleY(0.5);
transform-origin: 0 0;
margin-bottom: -50%;
}
span {
font-size: 16px;
vertical-align: top;
}
<span class="stretched-text">this is some stretched text</span>
<span>and this is some random<br />triple line <br />not stretched text</span>
L'espacement des lettres ajoute simplement un espace entre les lettres, n'étire rien, mais c'est un peu relatif
inline-block car les éléments en ligne sont trop restrictifs et le code ci-dessous ne fonctionnerait pas autrement
Maintenant la combinaison qui fait la différence
font-size pour obtenir la taille que nous voulons - de cette façon, le texte aura vraiment la longueur qu'il est censé être et le texte avant et après apparaîtra à côté (scaleX est juste pour montrer, le navigateur voit toujours l'élément à sa taille d'origine lors du positionnement d'autres éléments).
scaleY pour réduire la hauteur du texte, afin qu'il soit identique au texte à côté.
transform-origin pour mettre le texte à l'échelle à partir du haut de la ligne.
margin-bottom défini sur une valeur négative, de sorte que la ligne suivante ne soit pas bien en dessous - de préférence en pourcentage, de sorte que nous ne modifierons pas la propriété line-height.
vertical-align mis en haut, pour empêcher le texte avant ou après de flotter vers d'autres hauteurs (puisque le texte étiré a une taille réelle de 32px)
- L'élément span simple a une taille de police, uniquement à titre de référence.
La question demandait un moyen d'empêcher le gras du texte causé par l'étirement et je n'en ai toujours pas donné, MAIS la propriété font-weight a plus de valeurs que normal et gras .
Je sais, vous ne pouvez tout simplement pas voir cela, mais si vous recherchez les polices appropriées , vous pouvez utiliser plus de valeurs.