Tra le classi messe a disposizione da uikit all’interno della sezione Utility le più interessanti sono indubbiamente, soprattutto nell’ottica di un loro utilizzo all’interno di un sito Passweb, quelle che consentono di gestire la visibilità o meno di un determinato elemento in relazione al verificarsi di specifiche circostanze (come ad esempio il passaggio del mouse o il fatto di utilizzare un dispositivo touch)
Vediamo quindi quali sono queste classi e in quali circostanze ci permettono di nascondere o visualizzare l’elemento a cui vengono applicate:
Vengono utilizzate le proprietà “visibility: hidden” e “display: none” per cui l’elemento è nascosto e non viene neppure considerato il suo ingombro all’interno della pagina web
Vengono utilizzate le proprietà “visibility: hidden” e “display: none” per cui l’elemento è nascosto e non viene neppure considerato il suo ingombro all’interno della pagina web
Vengono utilizzate le proprietà “visibility: hidden” e “display: none” per cui l’elemento è nascosto e non viene neppure considerato il suo ingombro all’interno della pagina web
A differenza della precedente classe .uk-hidden viene applicata la sola proprietà “visibility: hidden” per cui in queste condizioni l’elemento cui viene applicata questa classe è si nascosto ma mantiene sempre il suo ingombro all’interno della pagina web.
Per visualizzare l’elemento nascosto è utilizzata la proprietà “display: block”
Per visualizzare l’elemento nascosto è utilizzata la proprietà “display: inline-block”
Ora mentre le prime 4 classi sono estremamente semplici da comprendere, anche in quello che può essere il loro utilizzo all’interno di Passweb, le ultime due meritano invece un piccolo approfondimento.
Innanzi tutto è bene sottolineare ancora una volta come queste due classi essendo utilizzate per visualizzare elementi inizialmente nascosti dovranno necessariamente essere utilizzate in combinazione con una di quelle classi che consentono invece di nascondere un elemento. Allo stesso modo essendo l’elemento che devono visualizzare inizialmente nascosto non potranno essere applicate direttamente ad esso ma dovranno invece essere applicate al suo elemento padre.
In sostanza dunque, il markup cui fare riferimento per poter utilizzare correttamente una di queste due classi dovrà essere del tipo di quello qui di seguito indicato:
<div class="uk-visible-hover">
<div class="uk-hidden">
... /*Contenuto inizialmente nascosto*/
</div>
</div>
In Passweb un markup di questo tipo si può ottenere, come al solito, utilizzando due Componenti Contenitore annidati ai quali assegnare le rispettive classi aggiuntive mediante l’apposito campo presente nella loro maschera di configurazione.
Infine per comprendere appieno la differenza tra queste due classi e cosa comporti effettivamente, per visualizzare un dato elemento, il fatto di impostare la proprietà display sul valore “block” piuttosto che sul valore “inline-block” è bene richiamare velocemente un concetto di base del CSS: gli elementi blocco e gli elementi inline
Cercando di semplificare al massimo questo concetto potremmo considerare una pagina web visualizzata all’interno di un browser come un insieme di tanti box rettangolari, non importa che si tratti di paragrafi, immagini, div o tabelle, si tratta pur sempre di box rettangolari.
Osservando attentamente l’immagine sopra riportata è possibile notare però come non tutti queste box rettangolari sono uguali. Alcuni contengono altri box al loro interno, altri sono invece contenuti all’interno dei primi.
Alcuni se si trovano (come accade in figura) in mezzo al testo lasciano che esso scorra loro intorno senza interromperne il flusso e senza andare a capo.
Questa considerazione piuttosto semplice, ci offre la rappresentazione della fondamentale distinzione tra elementi blocco (quelli in racchiusi in figura da un bordo nero) e elementi inline (quelli racchiusi in figura da un bordo rosso).
Ogni elemento di una pagina web ha una sua visualizzazione predefinita, nel senso che, a default, è un elemento blocco (es. titoli, paragrafi, div …) oppure un elemento inline (es. span …). Attraverso la proprietà display possiamo agire su questi valori predefiniti trasformando, ad esempio, un elemento inline in uno di tipo blocco e viceversa.
I principali valori utilizzati per la proprietà display sono:
Chiariti questi concetti possiamo ora tornare alle nostre due classi della sezione Utility avendo già ben chiaro cosa succederà nel momento in cui si dovesse utilizzare la classe .uk-visible-hover piuttosto che quella .uk-visible-hover-inline.
Nel primo caso, essendo applicata la proprietà display: block l’elemento visualizzato verrà considerato come un elemento blocco per cui verrà creata una nuova riga nel flusso del documento e eventuali contenuti successivi all’elemento visualizzato scorreranno verso il basso.
Nel secondo caso, essendo applicata la proprietà display: inline-block per cui l’elemento visualizzato comparirà sulla stessa riga senza produrre nessun ritorno a capo e, di fatto, senza interrompere il flusso del documento.