2016-12-05 6 views
0

Ich habe ein Problem bei der Verwendung benutzerdefinierter Schriftart (Poppins-regulary.ttf). Das Problem ist, wenn ich Hintergrundfarbe für span-Tag, die Wrapper von Text ist, festlegen.Wie löst man Zeilenhöhenprobleme mit benutzerdefinierten Schriftarten in HTML?

Die Wörter wie g, y, .. usw. wurden unten abgeschnitten. Aber, wenn ich die Schriftfamilie von poppinsRegular zu tahoma ändere, sieht es gut aus.

Aber das eigentliche Problem hier ist, muss ich gleiche line-height

.passageBody, .passageBody2 { 
 
    width: 414px; 
 
    padding: 10px 0; 
 
    margin: 0px; 
 
    font-size: 24px; 
 
    line-height: 32px; 
 
    font-family: 'Poppins', sans-serif; 
 
} 
 
.passageBody2 { 
 
    font-family: tahoma; 
 
} 
 
.highlightPhrase { 
 
    background-color: yellow; 
 
}
<link href="https://fonts.googleapis.com/css?family=Poppins" rel="stylesheet"> 
 

 
<div class="passageBody"> 
 
    <span>“Good-bye to you and your funny feet.</span> 
 
    <span class="highlightPhrase">Thanks for all the eggs to eat!” I was speaking to Bess, our chicken, and Mother laughed.</span> 
 
</div> 
 
<hr/> 
 
<div class="passageBody2"> 
 
    <span>“Good-bye to you and your funny feet.</span> 
 
    <span class="highlightPhrase">Thanks for all the eggs to eat!” I was speaking to Bess, our chicken, and Mother laughed.</span> 
 
</div>

Example jsFiddle link here...

+0

wie ich erinnere mich, Zeilenhöhe muss nicht eine Einheit wie px. nur 1,2 1,5 oder sonst – Obink

+0

Dank @obink, gab ich Zeilenhöhe 1,3 und es zeigt immer noch das gleiche Problem –

+0

Ich denke, Poppins Schriftart haben ein Problem mit Design-Zeilenhöhe. Ich benutze diese Schriftart für unsere Website und es wird nicht genau angezeigt, obwohl ich die Zeilenhöhe ändere. – huykon225

Antwort

1

Sie entweder die Eigenschaft line-height entfernen halten oder try to set es in em Einheiten.

line-height: 1.5em; 

Edit 1

Wenn Sie nicht wollen, line-height ändern, verwenden Sie vertikale align mit Inline-Anzeige

.highlightPhrase { 
    background-color: yellow; 
    display: inline; 
    vertical-align: text-bottom; 
} 

Edit 2 Der obige Code haben könnte änderte visuell die Zeilenhöhe. So könnte this example eine elegante Lösung für Ihr Problem sein. Wickeln Sie den Inhalt einfach in ein anderes Element und setzen Sie die Position auf relativ, so dass der Hintergrund jeder Zeile die obige Zeile nicht verdeckt.

oder Sie können ein kleines Bild als Hintergrund verwenden und es wiederholen, um den gesamten Text hervorzuheben.

+0

yeah, die Änderung/Erhöhung der Zeilenhöhe löst das Problem, aber ich bin in der Notwendigkeit, die gleiche Zeilenhöhe beizubehalten und das Problem zu lösen. Gibt es eine Möglichkeit, Schriften zu bearbeiten?weil, scheint es, Schriftart enthält etwas zusätzlichen Platz oben und unten –

+0

Ich habe die Antwort aktualisiert, ohne 'line-height' zu ändern –

+0

@veerasuthanV Bitte überprüfen Sie die 2. Bearbeitung. –

0

Wechsel: line-height: 32px; zu line-height: auto;

+0

Gibt es eine Möglichkeit, dieses Problem ohne Änderung der Zeilenhöhe zu lösen ..? –

+0

Sie müssen wahrscheinlich die Schriftart manuell bearbeiten; Benutzerdefinierte Schriftarten können fehlerhaft sein. Das Festlegen der Zeilenhöhe auf auto ist die beste Wahl und es ist nur eine zusätzliche Codezeile. Daher sehe ich kein Problem bei der Verwendung der Eigenschaft line-height. – sydluce

+1

'auto' ist ein ungültiger Wert der [' line-height' Eigenschaft] (https://developer.mozilla.org/en-US/docs/Web/CSS/line-height) (MDN). Getestet sowohl in Fx als auch in Chr DevTools. Auch über die Schriftart: es ist wahrscheinlich _nicht ein Fehler, sondern ein Feature © _: das ist die Entscheidung eines Designers (was in CSS ärgerlich ist, vorausgesetzt, wir müssen auf einer Font-Basis ohne so viele Werkzeuge zur Verfügung stehen .. .) – FelipeAls

1

Problem hier ist die vertikale Anordnung der Glyphen. Designer entschied sich, die Schriftartglyphen so einzustellen.

Also entschied im Grunde Designer, wie viel Platz es unterhalb der Grundlinie ist, und wie viel Platz über der Höhe von Großbuchstaben ist. Typischerweise sind diese Räume gleich, müssen aber nicht sein.

Ich denke, dass nur die Lösung für Sie ist, größer line-height auf den Absatz, der diese Schriftart verwendet oder einfach eine andere Schriftart wählen.

+0

Hallo, Danke für den Kommentar. Gibt es eine Möglichkeit, benutzerdefinierte Schriftart zu bearbeiten und den zusätzlichen Platz zu entfernen.? weil ich in einer Situation bin, die nicht die Zeilenhöhe oder Schriftart haben kann. aber, aber ich muss das lösen, ich weiß nicht wie. –

+0

Ich habe das nie getan, aber es gibt Schriftarten-Editoren, wo Sie Schriftarten manipulieren können. Dieser ist kostenlos: https://fontforge.github.io/. Viel Glück. :) – vblazenka

0

Versuchen Sie, diese

.highlightPhrase { 
    padding:5px; 
} 
Verwandte Themen