Ich habe eine Webseite mit zwei Spalten:
<h1>
Überschrift.Hier ist ein Screenshot von oben auf der Seite:
Meine Fragen sind:
Ich denke, es ist im Moment um zwei Pixel falsch, dh der rechte Text ist zwei Pixel zu niedrig.
Ich denke, es ist schwierig (vielleicht unmöglich) mit CSS zu implementieren, weil:
Ist das ein bekanntes Problem? Gibt es eine Lösung?
Sollte ich stattdessen versuchen, die Grundlinien der beiden Spalten auszurichten , um ungefähr so auszusehen:
Aber ich glaube nicht, dass ich weiß, wie ich das mit CSS implementieren soll.
Normalerweise würde dies (das Ausrichten der Grundlinien der beiden Textbits) automatisch geschehen, außer dass sich die beiden Textbits hier nicht wirklich in derselben Zeile befinden (sie sind nicht beide in derselben Zeilenbox in einem übergeordneten Block): weil Jede Spalte ist eine separate <div>
.
CSS wie das folgende reicht aus, um die obige 2. Lösung zu implementieren:
#nav.notJumbo a[href='/']::after {
content: ' ';
font-size: 2.5rem;
font-weight: 500;
line-height: 1.2;
}
Dadurch wird der ersten Zeile der linken Spalte ein unsichtbares Zeichen (Leerraum) hinzugefügt, das die gleichen Schriftartmaße wie der Text oben in der rechten Spalte hat -- das bedeutet die beiden Zeilenkästchen ( links und rechts) haben dieselbe Größe: weil sie jetzt Text in derselben Größe enthalten.
Notiz:
href
in diesem Beispiel auf die Homepage der Website verweist).content
ist hier ein leerer Raum, ein weißer Raum; Sie könnten dies durch ein Unicode-Thin-Space oder ein Zero-Breite-Space ersetzenfont-family
falls erforderlich), um die Schriftart- und Zeilenboxmetriken der ersten Zeile (z. B. der Überschrift) der rechten Spalte abzugleichen.Ich nehme an, dies löst den technischen Teil (Implementierung, Vorgehensweise) der Frage.
Ich würde mich noch über andere Antworten freuen, die das Design kommentieren können.
ChrisW
:after
also dass der Text auf der linken Seite eine Zeilenbox mit einem unsichtbaren Zeichen teilt, dessen Schriftartmaße die gleichen sind wie der Text auf der rechten Seite. Ich werde eine Antwort posten, wenn ich es zum Laufen bekomme, in der Zwischenzeit wäre jede andere Antwort willkommen.