In questa lezione, vediamo le tre proprietà CSS per la visibilità degli elementi in una pagina web: display
, visibility
e opacity
. Queste proprietà ci permettono di controllare come gli elementi vengono visualizzati dal browser nella pagina, se sono visibili o meno.
La proprietà display
in CSS determina come un elemento HTML viene visualizzato nella pagina web. Questa proprietà influisce sul layout dell'elemento e sul modo in cui interagisce con gli altri elementi della pagina.
Ecco i più importanti valori che puoi utilizzare con display
:
Valore | Descrizione |
none | L'elemento non viene visualizzato nella pagina e non occupa spazio. È come se non esistesse. |
block | L'elemento viene visualizzato come un blocco, occupando l'intera larghezza disponibile e iniziando su una nuova riga. |
inline | L'elemento viene visualizzato in linea con il testo circostante, senza interruzioni di riga prima o dopo. |
inline-block | Simile a inline , ma l'elemento può avere larghezza e altezza specificate. |
flex | L'elemento diventa un contenitore Flex, ideale per layout dinamici. |
inline-flex | Simile a flex , ma l'elemento viene visualizzato in linea con il testo circostante. |
grid | L'elemento diventa un contenitore con layout a griglia (simile ad una tabella, ma dinamico). |
inline-grid | Simile a grid , ma l'elemento viene visualizzato in linea con il testo circostante. |
table | L'elemento viene visualizzato come se fosse una tabella. |
inline-table | Simile a table , ma l'elemento viene visualizzato in linea con il testo circostante. |
list-item | L'elemento viene visualizzato come se contenesse una lista. |
Prima di approfondire i valori accettati di display
, diamo un'occhiata alla differenza tra gli elementi block e gli elementi inline.
Gli elementi block sono progettati per occupare l'intera larghezza disponibile del loro contenitore e iniziano su una nuova riga. Questo significa che, per impostazione predefinita, nessun altro elemento può affiancarsi a un elemento di tipo block.
Questo è un elemento block
Esempi comuni di elementi block sono <div>
, <p>
, <h1>
, <ul>
, <li>
, e <section>
. Abbiamo parlato degli elementi block nella lezione HTML.
Gli elementi inline sono progettati per occupare solo lo spazio necessario per il loro contenuto e non interrompono il "flusso" del documento, consentendo ad altri elementi di affiancarsi a loro.
Ad esempio, questo è un elemento inline, perché rimane sulla stessa riga del testo.
Gli elementi inline più comuni sono <span>
, <a>
, <strong>
, <em>
, e <img>
.
Quando viene applicato display:
none
<p>Questo testo non esiste</p>
<style>
p {
display: none;
}
</style>
Le proprietà display:block
e display:inline
permettono di rendere visibile un elemento.
La proprietà display:block
rende l'elemento block, mentre display:inline
lo rende inline nella pagina web.
<p>Questo testo è un elemento inline</p>
<style>
p {
display: inline;
}
</style>
Conoscendo sia display:none
che display:block
, è possibile far apparire e scomparire un elemento dalla pagina utilizzando JavaScript:
Questo pulsante funziona utilizzando l'attribuzione degli stili di JavaScript che puoi trovare nel nostro corso JavaScript (ovviamente gratuito). Quando il <div>
è nascosto per default, gli viene attribuito display:none
. Quando viene mostrato, ha la proprietà display:block
.
Il valore inline-block
di display
è una via di mezzo tra block e inline. Quando un elemento ha la proprietà display:inline-block
, viene visualizzato come un elemento inline, ma con la capacità di impostare larghezza (width
) e altezza (height
) come un elemento block.
<p>Questo testo è un elemento inline-block</p>
<style>
p {
display: inline-block;
border: 2px solid #000;
width: 200px;
}
</style>
La proprietà visibility
in CSS controlla la visibilità di un elemento senza influire sul layout della pagina. Ecco i valori accettati da visibility
:
Valore | Descrizione |
visible | L'elemento è visibile. |
hidden | L'elemento è nascosto, ma continua a occupare spazio nel layout della pagina. |
collapse | Nasconde l'elemento e rimuove il suo spazio, simile a display:none (utilizzato principalmente per le righe delle tabelle). |
Vediamo un esempio di come utilizzare la proprietà:
<p>Questo testo è nascosto</p>
<style>
p {
visibility: hidden;
}
</style>
La proprietà opacity
in CSS controlla la trasparenza di un elemento. Può essere utilizzata per rendere gli elementi più o meno trasparenti. È usato soprattutto per le immagini e i pulsanti, ma può essere anche associato a testi o ad altri elementi.
La proprietà opacity
accetta un valore numerico tra 0 e 1, dove 0 è completamente trasparente e 1 è completamente visibile.
h1 {
opacity: 1; /* Completamente visibile */
}
h2 {
opacity: 0.5; /* Visibile al 50% */
}
h3 {
opacity: 0; /* Completamente invisibile */
}
Ecco come diventano le immagini con opacity
differente:
opacity:1 | opacity:0.5 | opacity:0.1 |
A questo punto, può sorgere spontanea una domanda: "Qual è la differenza tra display:none
, visibility:hidden
e opacity:0
?". Vediamola insieme:
opacity:0
: l'elemento è trasparente ma continua a occupare spazio e può ancora rispondere agli eventi (ad esempio, è possibile evidenziare il testo con il mouse).visibility:hidden
: l'elemento è nascosto ma continua a occupare spazio e non risponde agli eventi (ad esempio, non è possibile evidenziare il testo con il mouse)display:none
: l'elemento è nascosto e non occupa spazio, come se non fosse nel documento.Per capire meglio, vediamo come funzionano con questo esempio:
Elemento 1 | Elemento 2 | Elemento 3 |