jQuery: creare drop caps senza :first-letter

jQuery: creare drop caps senza :first-letter

Le specifiche CSS affermano che lo pseudo-elemento :first-letter può essere usato solo se la prima lettera non è preceduta da altro contenuto. Quindi se in un paragrafo abbiamo un'immagine flottata, l'effetto tipografico dei drop caps non può essere creato usando questo pseudo-elemento. Possiamo invece usare jQuery per questo scopo. Vediamo come.

Abbiamo un paragrafo con un'immagine flottata a destra:


<p id="first"><img src="image.png" alt="" class="alignright" />...</p>

L'immagine precede il testo, quindi non possiamo usare :first-letter. Creeremo un elemento con classe apposita usando come contenuto la prima lettera del testo:


.cap {
	float: left;
	font: 5em Georgia, serif;
	color: #545454;
	padding: 5px 10px 5px 0;
	line-height: 0.8;
}

Ecco il codice jQuery:


$(function() {

	var $p = $('#first');
	var text = $p.text();
	var firstLetter = text.charAt(0);
	var html = $p.html();
	
	$p.html(html.replace(firstLetter, '<span class="cap">' + firstLetter + '</span>'));
		

});

Abbiamo selezionato la prima lettera del contenuto testuale del paragrafo utilizzando il metodo charAt() e quindi abbiamo sfruttato il metodo replace() per modificare il contenuto HTML del paragrafo inserendo il nuovo elemento.

Potete visionare l'esempio finale in questa pagina.

Torna su