Da quando ho iniziato a scrivere sul blog mi sono sempre trovato in difficoltà con l’inserimento di codice, avevo cominciato mettendolo nelle textarea - cosa ignobile da fare col senno di poi - in modo da non rovinare il layout quando nel codice le parole erano troppo lunghe e non venivano wrappate correttamente. Successivamente mi son letto un po’ di manuali base di CSS e ho finalmente capito che il metodo migliore è inserirlo all’interno del tag PRE, assicurandosi di definire uno stile che tenga conto dell’overflow e non faccia sballare troppo la pagina.
Questo è lo stile che uso io:
pre {
font-family: Courier,monospace;
background: #EEE;
font-size: 1.1em;
line-height: 1.1em;
border: dashed #666 1px;
padding: 15px 20px 15px 20px;
overflow: auto;
}
In particolare la riga:
overflow: auto;
serve per “nascondere” le righe troppo lunghe (è facile accorgersene perchè appariranno le scrollbar). Il fonte tutto Il resto è modificabile a piacimento. Io uso un font monospace come il Courier ma è possibile opti per un altro tipo di carattere in futuro.
Un’altra cosa che mi è sempre piaciuta è fare in modo che il codice inserito sia automaticamente selezionato quando ci si clicca sopra, cosa che devo aver visto su qualche blog di cui non ricordo l’indirizzo. Cercando un po’ con Google sono finalmente riuscito a trovare una risposta
. Per fare in modo che il codice venga automaticamente selezionato è necessario associare all’azione onClick dell’elemento un po’ di codice Javascript.
Ecco quindi cosa aggiungere al tag PRE per selezionare automaticamente il testo in esso contenuto:
<pre onClick="
if (window.getSelection) {
var sel = window.getSelection();
var range = document.createRange();
range.selectNodeContents(this);
sel.removeAllRanges();
sel.addRange(range);
}
else // per colpa di IE serve un if
document.selection.empty();
var range = document.body.createTextRange();
range.moveToElementText(this);
range.select();
}
“>
codice
</pre>
(gli a capo sono messi solo per motivi di visualizzazione)
Come al solito per farlo funzionare anche con IE è necessario scrivere codice aggiuntivo
Naturalmente è possibile associare il codice anche a tag diversi dal PRE, mentre per i tag INPUT e TEXTAREA si deve modificare un po’ il codice utilizzato.
Naturalmente io aggiungo quel codice automaticamente usando un programmino di text & replace (praticamente scrivo pre seguito da TAB), è comunque possibile aggiungere uno script alla pagina e richiamare il codice nel seguente modo:
<pre onClick="autoSelect(this);"> codice </pre>
Per il codice della funzione autoSelect vi rimando all’articolo da cui ho scopiazzato il codice
.
Nel mio caso, non inserendo codice così spesso, preferisco far risparmiare al browser il caricamento di una funzione Javascript inutilizzata nella maggior parte delle pagine. Per lo stesso motivo, non credo di sovvracaricare ulteriormente il blog con uno script di syntax hightlighting
Technorati Tags: css, html, javascript







Ultimi commenti
RSSgialloporpora, gialloporpora, Ste_95, gialloporpora [...]
gialloporpora, alice, teresa, gialloporpora [...]
gialloporpora, luca, gialloporpora, luca [...]
gialloporpora, francesco, Godai71, gialloporpora [...]
settemetri, Francesco, tiziano, Stefano [...]
gialloporpora, stefano, gialloporpora, Elisa [...]
gialloporpora, Mariano, gialloporpora, Mariano [...]
Danyli, gialloporpora, Danyli, gialloporpora [...]
gialloporpora, rafiluccio, gialloporpora, rafiluccio [...]
Paolo, gialloporpora, Paolo, gialloporpora [...]
Paolo, gialloporpora, Paolo, gialloporpora [...]