Drop-down-Menüs mit dem Anfangsbuchstaben des CSS-Codes steuern

Die Kunst, Initialen zu gestalten, gibt es seit Hunderten, wenn nicht Tausenden von Jahren. Die Verwendung von Ziffernblöcken in Druckstilen, um den Beginn eines neuen Abschnitts oder Kapitels zu kennzeichnen, ist schon lange bekannt. Aber es war schon immer schwierig, im digitalen Zeitalter einen Stil zu entwickeln. Es gab keine „saubere“ Lösung für das Design.

Die CSS-Property initial-letter macht das viel einfacher.

Unterstützte Browser

Wo kann ich initial-letter ausprobieren? Sie ist in Safari und ab Chrome 110 verfügbar. In Safari muss die Property das Präfix -webkit- haben. Es gibt ein offenes Problem, das die Implementierung in Firefox verhindert.

initial-letter-Support mit folgenden Tools testen:

@supports (initial-letter: 1 1) { /* Your supported styles */ }

Aktuelle Lösungen

Wie würden Sie heute einen Dropcap-Stil in CSS definieren?

Das Pseudo-Element ::first-letter ist ein guter Anfang.

p::first-letter {
  color: hsl(220, 94%, 51%);
  font-weight: bold;
  font-size: 4rem;
}

Aber dann müssen Sie wahrscheinlich Eigenschaften wie „float“ verwenden, um eine Größe für diesen ersten Buchstaben zu berechnen.

p::first-letter {
  color: hsl(220, 94%, 51%);
  font-weight: bold;
  font-size: 4rem;
  float: left;
  line-height: 1;
  margin-right: 0.25rem;
}

Die Einführung neuer CSS-Einheiten wie lh könnte diese Probleme etwas abmildern. Auch diese werden jedoch nur eingeschränkt unterstützt (lh wird derzeit nur in Chrome unterstützt).

p::first-letter {
  color: hsl(220, 94%, 51%);
  font-weight: bold;
  font-size: 3lh;
  float: left;
  line-height: 1;
  margin-right: 0.1lh;
}

Jetzt neu: initial-letter

Mit der Property initial-letter können Sie das Design der Initiale genauer steuern. Es werden zwei durch Leerzeichen getrennte Werte verwendet:

p::first-letter {
  initial-letter: 3.5 3;
}
  • Das erste Argument definiert die Größe des Briefes und wie viele Zeilen er einnimmt. Der Brief wird vergrößert, wobei das Seitenverhältnis beibehalten wird. Negative Werte sind nicht zulässig, aber Dezimalwerte sind erlaubt.
  • Das zweite Argument definiert den Briefablauf. Dies kann als Versatz für die Position des Buchstabens betrachtet werden. Der zweite Wert ist optional und darf nicht negativ sein. Wenn kein Wert angegeben ist, wird der Wert für die Schriftgröße auf die nächste ganze Zahl abgerundet. Das entspricht der Verwendung des Keywords „drop“. Der Senkwert akzeptiert auch den Keyword-Wert „raise“, was einem Senkwert von 1 entspricht.

In dieser Demo können Sie die Werte ändern, um zu sehen, wie sich das auf den Stil der Initiale auswirkt.

Kombiniert mit ::first-line könnte das so aussehen:

p::first-line {
  font-variant: small-caps;
  font-weight: bold;
  font-size: 1.25rem;
}
p::first-letter {
  font-family: "Merriweather", serif;
  initial-letter: 3.5 3;
  font-weight: bold;
  line-height: 1;
  margin-right: 1rem;
  color: #3b5bdb;
  text-shadow: 0.25rem 0.25rem #be4bdb;
}

Oder vielleicht geben Sie ihm eine border. Im folgenden Beispiel wird das Keyword „drop“ verwendet, das bei Auslassung als Standard verwendet wird und 3 entspricht: css p::first-letter { font-family: "Merriweather", serif; initial-letter: 3.5 drop; font-weight: bold; line-height: 1; margin-right: 1rem; color: #3b5bdb; border: 0.25rem dashed #be4bdb; padding: 0.5rem; border-radius: 5px; }

Fügen Sie vielleicht eine background oder einige box-shadow hinzu:

p::first-letter {
  font-family: "Merriweather", serif;
  initial-letter: 3.5 3;
  font-weight: bold;
  line-height: 1;
  margin-right: 1rem;
  color: var(--surface-1);
  background: #be4bdb;
  padding: 0.5rem;
  border-radius: 5px;
  box-shadow: 0.5rem 0.5rem 0 #3b5bdb;
}

Alternativ können Sie den Hintergrund auf den Text zuschneiden:

p::first-letter {
  background: linear-gradient(to bottom right,#1f005c,#5b0060,#870160,#ac255e,#ca485c,#e16b5c,#f39060,#ffb56b);
  font-family: "Merriweather", serif;
  initial-letter: 3.5 3;
  font-weight: bold;
  line-height: 1;
  margin-right: 1rem;
  color: transparent;
  -webkit-background-clip: text;
  padding: 0.5rem;
}

Es gibt viele Möglichkeiten.

So haben Sie mit initial-letter mehr Kontrolle über das Design Ihrer Initiale. Würden Sie Ihrer Typografie Initialen hinzufügen? Wie würden Sie sie stylen? Schreiben Sie uns!