Angoli arrotondati coi CSS
Lunedì, Dicembre 17th, 2007Spesso vi sarà capitato, navigando, di imbattervi in siti in cui alcune sezioni avessero gli angoli arrotondati. Se l’avessimo visto almeno una decina di anni fa non avremmo avuto dubbi sulla loro implementazione. Si sarebbe infatti trattato di tabelle annidate con immagini al proprio interno: un approccio assolutamente da non perseguire in un web che sempre di più si batte per un codice semanticamente corretto e che non appesantisca le pagine. Vediamo quindi come fare ad ottenere, utilizzando immagini, box con angoli smussati utilizzando semplicemente i CSS. Il primo approccio che andremo a verificare è quello di un box a larghezza fissa. Per prima cosa quindi, col nostro programma di grafica, dobbiamo creare due immagini che andremo a posizionare in alto e in basso. Poi dovremo creare due DIV annidati ai quali poi attribuiremo delle semplicissime regole per ottenere un effetto di sicuro impatto, leggero e semplice da implementare. Come detto in precedenza, questo è un ottimo approccio per box di larghezza fissa. Qui potrete trovare una pagina esplicativa dalla quale copiare e analizzare il codice di questo esempio appena descritto.
Se invece abbiamo l’esigenza di creare un box, cosiddetto “liquido” e cioè non a larghezza fissa, ma che si può ridimensionare, abbiamo la necessità, non più di creare immagini a larghezza fissa, ma bensì dovremo creare i quattro angoli col nostro programma di grafica preferito così poi da implementarli nel nostro codice, come immagini di sfondo per quattro DIV che andremo ad annidare. Qui potrete trovare una pagina esplicativa dalla quale copiare e analizzare il codice di questo esempio. Noterete che la larghezza del box non è espressa con un numero preciso di pixel, ma è in percentuale, proprio per far notare come questo approccio sia indipendente dalle dimensioni del box. Non per ultimo, c’è un ulteriore metodo per implementare angoli arrotondati con i CSS, detto “modular corners”. Si tratta in questo caso di ottenere un box a larghezza fissa, ma che si adatta in altezza al contenuto al suo interno. Questo effetto lo otteniamo con una semplice immagine che andremo ad associare agli unici due DIV annidati che avremo. L’immagine che andremo a editare col nostro programma di grafica preferito, avrà pertanto, una larghezza fissa e una altezza massima decisa da noi, che però non sarà quella visibile in un primo momento, ma sarà quella massima fin alla quale avremo la possibilità che il nostro box si potrà adattare. Vediamo qui un esempio esplicativo con tanto di codice.
Penso che sia tutto…qualcuno ha cercato di creare anche angolo non utilizzando immagini, ma il risultato, pur essendo pulito e senza appunto immagini, non è dei migliori soprattutto se il box viene allargato. Così invece otteniamo ciò che vogliamo, con codice standard, accessbile, non tanto semanticamente corretto, questo è da dirlo, ma pur di non utilizzare javascript, quindi un approccio poco accessibile, meglio scendere a compromessi con la semantica e quindi ottenere un bel risultato visivo e usabile al tempo stesso. Buon markup a tutti con gli angoli arrotondati coi CSS!
I CSS sono questo quindi, un modo utile e indispensabile per dare alle nostre pagine un aspetto più professionale, oltrepassando i limiti insiti di un linguaggio di markup quale l’XHTML che non è in grado di offrire la flessibilità di un linguaggio dedicato come i fogli di stile. Possiamo infatti controllare tutto della nostra pagina a partire dall’aspetto tipografico. Con i fogli di stile è infatti possibile dare alle nostre pagine web un aspetto così professionale tale da sembrare quasi un foglio estratto da un word processor. Possiamo controllare oltre ai font e al colore, cosa peraltro possibile attraverso il tag font del vecchio HTML, oramai deprecato, anche l’interlinea, spaziatura tra lettere e parole, indentature e giustificazioni oltre a tutto quello che la vostra fantasia, grazie a pseudo classi e pseudo elementi, i CSS ci mettono a disposizione. L’aspetto tipografico è solo uno dei tanti che possiamo manipolare a piacimento coi fogli di stile. Possiamo, infatti, anche manipolare l’aspetto della pagina posizionando i vari elementi di essa. Grazie a varie proprietà possiamo controllare il posizionamento, i margini, il padding e tanto altro. Che dire, i CSS rappresentano una rivoluzione nel mondo del web-design e chi si occupa di questo non può esimersi dal conoscerli. Inoltre i CSS offrono la possibilità, grazie all’importazione di un singolo foglio stile per tutte le pagine che compongono il nostro sito, di modificare, contemporaneamente, l’aspetto di un elemento in tutte le pagine semplicemente cambiando una singola regola nel nostro foglio stile. Parlerò prossimamente dei vari metodi per collegare e implementare i fogli di stile all’interno delle nostre pagine così potrete vedere i vari metodi e scegliere quello che più si addice alle vostre esigenze. Spero che comunque, con questa breve introduzione, chi di voi volesse avvicinarsi al mondo del design di pagine web, non si sottragga allo studio di questo potente linguaggio. Per finire vi rimando ad un sito che io trovo spettacolare e che vi mostrerà le potenzialità dei CSS: pensate, la stuttura della pagina è sempre la stessa, ma, a seconda del foglio di stile collegato, il design cambia radicalmente. Il sito è
r quanto riguarda il posizio per cui abbiamo bisogno di spostarlo della metà delle dimensioni del box a sinistra e in alto così da ottenere un la centratura. Questo lo facciamo modificando l’attributo margin nell’ultima riga. Ricordate, abbiamo detto che le dimensioni del box ci sarebbero state utili ai fini della centratura. Ebbene, qualsiasi saranno le dimensioni del vostro box, ricordate sempre che, per centrarlo dobbiamo impostare dei margini negativi, onde spostare l’angolo superiore sinistro, più in alto e più a destra nella misura della metà delle dimensioni del nostro box. Nel nostro caso, infatti, il box è alto 200px e largo 300 per cui, per farlo andare al centro dobbiamo farlo “salire” della metà dell’altezza, quindi 100px e spostarlo a sinistra della metà della larghezza, per cui di 150px. come Questo, come detto prima, lo otteniamo grazie alla riga















