di: Alessandro Fulciniti 10 Ottobre 2006
Chi ci ha provato lo sa: posizionare in maniera consistente e cross-browser un'icona o
un marcatore grafico personalizzato nelle liste non è cosa semplice, soprattutto per
come i diversi browser trattano margini e padding di liste e list-item. Inoltre,
la proprietà list-style-image che consente di specificare il marcatore
grafico delle liste offre risultati poco soddisfacenti, dato che il più delle volte
il bullet non risulta perfettamente allineato con il testo.
Le cose si complicano ancora di più se il testo delle nostre liste usa un dimensionamento
relativo, sia esso in em o in percentuale. Ci sono soluzioni efficaci e cross-browser
anche in questo caso? Le scopriremo in questo articolo attraverso tre esempi. Cominciamo subito.
Ecco il nostro primo esempio: una lista con un'icona centrata. Come si può notare, ridimensionando
il testo del browser, l'icona resta centrata. Questa tecnica impone però un vincolo: ciascun
elemento della lista dovrà occupare al massimo una riga. Dopo aver attribuito la classe "icon"
alle liste a cui vorremo attribuire il marcatore grafico, basteranno poche regole CSS.
Per prima cosa eliminiamo il disco, margini e padding da lista e list-item:
ul.icon,ul.icon li{list-style: none;margin: 0;padding: 0}
Attribuiamo quindi una larghezza alla lista. Nel caso dell'esempio ho definito un valore pari a 15em, che dovrebbe essere all'incirca 30 caratteri, ma ovviamente si possono usare pixel o altre unità di misura:
ul.icon{width:15em}
Infine definiamo le proprietà sui list-item: dopo aver dichiarato un'altezza di linea
adeguata, assegneremo un padding sinistro di 12px così da poter lasciare spazio all'icona
(che è 8x8) che verrà specificata attraverso la proprietà background:
ul.icon li{line-height:1.5em;padding-left:12px;
background:url(8-em-heart.png) no-repeat left center}
Il primo esempio è così ultimato: sono bastate poche semplici dichiarazioni. Da notare che nella pagina ho predisposto anche una lista con una personalizzazione CSS davvero minima, così da evidenziare come si è tra l'altro messo a punto l'allineamento orizzontale con altri elementi e margini/padding della lista di base. Il risultato è soddisfacente, quello che vorremmo è però non avere il limite di una riga sola, che verrà superato nei prossimi due esempi.
Responsive Desing, la guidaProgettare siti da fruire su dispositivi diversi è imprescindibile... |
Guida CSS3Scoprire e usare al meglio tutte le novità dell'ultima versione dei... |
Guida CSS Tecniche essenzialiTesto, immagini, layout, form, liste, tabelle: soluzioni pronte per... |
Ogni mercoledì, direttamente nella tua e-mail: guide, articoli, tutorial, FAQ e approfondimenti tecnici su CSS e Web Design.
Iscriviti alla newsletter
|
|
Corso Webmaster base18 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |
|
|
Corso Webmaster base11 Giugno 2012 a Roma |