Due proprietà: display e visibility. Analizziamo similitudini e differenze.

Sabato, Marzo 22nd, 2008

Chi si sarà già avvicinato al fantastico mondo dei CSS, spero anche grazie a questo sito, avrà sicuramente sperimentato queste due proprietà: display e visibility. Avrete sicuramente notato che sono simili come proprietà, ma hanno delle differenze sostanziali: andiamo ad analizzare queste proprietà più da vicino.

Per quanto riguarda la proprietà display, questa specifica il modo di visualizzazione di un elemento: il valore può essere none, block, inline e list-item. Ce ne sarebbero anche altri, ma vista la scarsa implementazione non se ne consiglia troppo l’uso. Il valore none indica che l’elemento non è visibile, il valore block indica che l’elemento sarà visibile come blocco distaccato, quale può essere ad esempio un elemento DIV; il valore inline indica che l’elemento deve assumere un comportamento da blocco in linea quale può essere quello dell’elemento SPAN; list-item indica che l’elemento si comporta come un punto di un elenco.

Per quanto riguarda invece la proprità visibility, essa, come display, imposta la visibilità di un elemento e supporta i valori: hidden(nascosto) e visible(visibile), tuttavia il comportamento è assai diverso da quello di DISPLAY. Un elemento impostato come non visibile attraverso display:none infatti non solo non è visibile, ma lo spazio che avrebbe occupato nella pagina viene rimpiazzato dagli altri elementi, se invece impostiamo visibility:hidden lo spazio cheoccuperebbe l’elemento risulta vuoto, ma viene preservato. Notiamo quindi che entrambe le proprietà possono impostare la visibilità di un elemento, ma la differenza è molto evidente.

Prossimamente analizzeremo la proprietà POSITION e alcune sue caratteristiche. Buona lettura e venite a trovarmi spesso!

Box Model

Giovedì, Gennaio 3rd, 2008

Ogni elemento block level crea attorno a se un box. Tale box ha come dimensioni le dimensioni intrinseche dell’elemento nonché i bordi, il padding e i margini. Questa immagine chiarirà meglio il concetto che sto spiegando:


Come possiamo vedere quindi, un box largo 30px con bordi di 1px, padding 10px e margini di 10px, sarà largo complessivamente 52px. Questo è quindi il comportamento che ci si aspetterebbe da un browser in grado di gestire al meglio questa situazione. Ma non è sempre così. Se, attraverso il codice CSS assegnamo una larghezza, quindi un valore a width, pari a 100px per esempio, qualsiasi altro valore che aggiungiamo al padding o al margin o ai bordi, dovrà essere sommato a tale valore. I recenti browsers si comportano così mentre, IE 5.0, 5.5 e 6 in quirks mode, non sommano il valore dei bordi, dei margini e del padding al valore di width, ma bensì, lo sottraggono avendo quindi un box di larghezza complessiva di 100px al cui interno sono compresi i bordi e tutto il resto. Di seguito possiamo vedere un’immagine esplicativa:

Per ovviare a tale inconveniente esistono vari metodi per far passare in un unico foglio stile, più versioni così da avere un box giusto per tutti i browsers. Questi metodi vengono definiti HACK e ne parleremo più diffusamente nei prossimi articoli, non mancate!

CSS, centrare un box nella pagina.

Giovedì, Dicembre 6th, 2007

Ciao a tutti, ora affronteremo il problema di centrare un box di dimensioni fissi all’interno della pagina, qualsiasi sia la dimensione di quest’ultima. Il risultato che vorremmo ottenere sarà quindi questo:

Per prima cosa definiamo il nostro box, nel quale poi inseriremo qualsivoglia codice XHTML per ottenere un form o altro. Questo il codice:

<body>
   <div id="centeredbox">
      Testo contenuto nel box.
   </div>
</body>

Questo quindi il codice comprendente il div che andremo a centrare tramite le prossime definizioni nel foglio di stile, andiamo ad analizzarlo:

div#centerdbox {
   display:     block;
   width:       300px;
   height:      200px;
   position:    absolute;
   top:         50%;
   left:        50%;
   margin:      -100px 0 0 -150px;
   background:  #900;
}

Dunque, nelle prime tre righe abbiamo definito la dimensione del nostro box, ci sarà utile ai fini del posizionamento e tra poco vedremo perché. Nelle tre righe successive posizioniamo il box in modo assoluto al centro della pagina, ma così facendo centriamo l’angolo superiore sinistro al centro della pagina, è questa infatti la consuetudine per 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 margin: -100px 0 0 -150px.

Con questa semplice tecnica, otteniamo un effetto di sicuro impatto, utile per centrare qualsiasi elemento block-level. L’unico neo che possiamo trovare a questa tecnica è quello di dover conoscere sempre a priori le dimensioni del box da centrare, ma è un problema veniale. Spero possa esservi utile, presto altre guide sui CSS pronte all’uso, non mancate!

CSS, ottenere un link con una sottolineatura di colore diverso da quello del testo

Martedì, Dicembre 4th, 2007

Spesso vi sarà capitato di imbattervi in siti in cui, i vari link, avessero una sottolineatura di colore diverso da quello del testo. E magari vi sarete chiesti come fosse possibile tutto ciò, ma per pigrizia non avete dato un’occhiata al codice sorgente di quella pagina per scoprire l’arcano. Ebbene, in questo articolo, ma forse non c’era bisogno di scrivere un intero articolo per spiegarlo, vi fornirò un breve esempio di quello di cui sto parlando, fornito del relativo codice.

Questo link, come vedete, ha una sottolineatura dello stesso colore del testo e utilizza la semplice direttiva, nel foglio di stile, text-decoration:underline . Magari avete provato a cambiare colore ottenendo di cambiare il colore anche al testo, ed infatti è quello che accadrebbe se così facessimo. L’approccio per ottenere il risultato voluto, cioè questo, è quello di eliminare del tutto la direttiva text-decoration:underline e di sostituirla con text-decoration:none. Ma così facendo, mi direte, eliminiamo del tutto la sottolineatura: ESATTO!! Non vogliamo infatti la sottolineatura, che avrebbe lo stesso colore del testo, ma un bordo! E per ottenere il bordo inferiori di un colore diverso dal testo non dobbiamo far altro che inserire questo codice nel nostro foglio di stile: border-bottom:1px solid red ed il gioco è fatto, semplice no? Questa è una delle tante cose, coi CSS, che ci fanno un po’ scervellare e alla fine notiamo che la soluzione era tanto semplice quanto sotto al nostro naso…eppure non la vedevamo. Spero, con questo breve “tutorial” di avervi fatto cosa gradita. Se avete altre questioni insolute sul web design non esitate a contattarmi e cercherò di parlarne. Buon foglio di stile a tutti!!

Primo Post

Giovedì, Novembre 29th, 2007

Questo primo post lo dedico a questo sito e ai sui propositi: divulgazione e, perché no, pubblicità al suo creatore, cioè io.

Sto infatti preparando un lungo post sul web 2.0 che, oltre a questo post, sarà il primo. Si propone infatti di essere il punto di partenza per questo e per quelli che saranno i miei prossimi siti, distribuiti per essere parte integrante di questo nuovo mondo, basato si sul vecchio, ma ricco di novità e di interessanti stimoli.

A presto dunque e non mancate!

Web 2.0