Ich werde für das horizontale Strecken von Text antworten, da die Vertikale der einfache Teil ist - verwenden Sie einfach "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>
Der Buchstabenabstand fügt nur Platz zwischen den Buchstaben hinzu, streckt nichts, ist aber irgendwie relativ
Inline-Block da Inline-Elemente zu restriktiv sind und der folgende Code sonst nicht funktionieren würde
Nun die Kombination, die den Unterschied macht
Schriftgröße , um die gewünschte Größe zu erreichen - auf diese Weise hat der Text wirklich die Länge, die er haben soll, und der Text davor und danach wird daneben angezeigt (scaleX dient nur zur Anzeige, der Browser sieht das Element weiterhin in seiner ursprünglichen Größe beim Positionieren anderer Elemente).
scaleY , um die Höhe des Textes so zu verringern, dass er dem Text daneben entspricht.
transform-origin , um den Text vom oberen Rand der Zeile zu skalieren.
Der untere Rand wird auf einen negativen Wert gesetzt, damit die nächste Zeile nicht weit darunter liegt - vorzugsweise in Prozent, damit die Eigenschaft für die Zeilenhöhe nicht geändert wird.
vertikal ausrichten , um zu verhindern, dass der Text vorher oder nachher in andere Höhen schwebt (da der gestreckte Text eine tatsächliche Größe von 32 Pixel hat)
- Das einfache span-Element hat eine Schriftgröße, nur als Referenz.
In der Frage wurde nach einem Weg gefragt, um die Kühnheit des durch die Dehnung verursachten Textes zu verhindern, und ich habe immer noch keinen angegeben, ABER die Schriftgröße Eigenschaft hat mehr Werte als nur normal und fett .
Ich weiß, das können Sie einfach nicht sehen, aber wenn Sie nach den entsprechenden Schriftarten suchen , können Sie die mehr Werte verwenden.