L'arte di definire i camini è in circolazione da centinaia, se non migliaia di anni. Il suo utilizzo negli stili di stampa per indicare l'inizio di una nuova sezione o di un nuovo capitolo può essere visto nel corso della storia. Tuttavia, nell'era digitale è sempre stato problematico lo stile. ma non c'è stata una soluzione "pulita" per personalizzarli.
La proprietà CSS initial-letter
renderà il tutto molto più semplice.
Supporto del browser
Dove puoi provare initial-letter
? È disponibile in Safari e a partire da Chrome 110. In Safari, la proprietà richiede il prefisso -webkit-
. Si è verificato un problema aperto per l'implementazione in Firefox.
Testa l'assistenza per initial-letter
con:
@supports (initial-letter: 1 1) { /* Your supported styles */ }
Soluzioni attuali
Come potresti definire una quota limite in CSS oggi?
Lo pseudo-elemento ::first-letter
ci fa parte del percorso.
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 4rem;
}
Tuttavia, probabilmente dovrai raggiungere proprietà come "float" mentre calcoli una dimensione per la prima lettera.
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 4rem;
float: left;
line-height: 1;
margin-right: 0.25rem;
}
L'introduzione di nuove unità CSS come lh
potrebbe alleviare questo problema. Tuttavia, anche questi dispositivi sono supportati in modo limitato (al momento lh
è supportato solo in Chrome).
p::first-letter {
color: hsl(220, 94%, 51%);
font-weight: bold;
font-size: 3lh;
float: left;
line-height: 1;
margin-right: 0.1lh;
}
Introduzione alla lettera iniziale
La proprietà initial-letter
ti offre un controllo più preciso sullo stile di questa limitazione. Sono necessari due valori separati da spazi:
p::first-letter {
initial-letter: 3.5 3;
}
- Il primo argomento definisce le dimensioni della lettera e il numero di righe che occuperà. La lettera verrà ingrandita mantenendo le proporzioni. Non puoi utilizzare un valore negativo, ma puoi usare valori decimali.
- Il secondo argomento definisce il sink di lettere. Può essere considerato come l'offset per la posizione della lettera. Il secondo valore è facoltativo e non può essere negativo. Se non è presente, si presume che il valore della dimensione in lettere arrotondati al numero intero più vicino si basi sul valore minimo. Equivale a utilizzare la parola chiave "drop". Il sink accetta anche un altro valore della parola chiave, "raise", che equivale a un sink di 1.
Dai un'occhiata a questa demo in cui puoi modificare i valori per vedere come influiscono sullo stile della capote.
In combinazione con ::first-line
, potresti ottenere qualcosa di simile a questo:
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;
}
Puoi anche assegnare un border
. Nell'esempio seguente viene utilizzata la parola chiave "drop", che è quella predefinita se omessa e corrisponde a 3:
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;
}
Aggiungi un background
o qualche box-shadow
:
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;
}
Oppure ritaglia lo sfondo al testo:
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;
}
Hai a disposizione molte possibilità.
Ed ecco un controllo più preciso sullo stile della caduta con initial-letter
. Aggiungeresti le maiuscole alla tua tipografia? Come potresti stile? Facci sapere.