Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 8 di 49
  • livello principiante
Indice lezioni

Nascondere elementi

Due metodi per non visualizzare specifici elementi su una pagina HTML
Due metodi per non visualizzare specifici elementi su una pagina HTML
Link copiato negli appunti

Spesso si ha la necessità di nascondere e mostrare elementi della pagina in base a determinate esigenze o azioni dell'utente. Ad esempio con box di conferma, gallerie di immagini, etc.

La tecnica più comune e, soprattutto più popolare, consiste nell'utilizzare la regola CSS display:none. È il principio su cui sono basati anche i principali framework per Javascript e in pratica consiste nell'ignorare l'elemento e comportarsi come se non esistesse del tutto.

Il funzionamento della regola è semplicissimo, basta combinarla con display:block per mostrare l'elemento. Vediamo un semplicissimo esempio con l'ausilio di jQuery. Nell'esempio, cliccando sul link, verrà mostrato/nascosto il contenuto di un div modificando la proprietà display del CSS.

Il codice utilizzato è il seguente:

div#hide {
  display: none;
}

$(function(){
  $('#click').click(function(){
    if( $('#hide').css('display') == 'block' )
       $('#hide').css('display','none');
    else
       $('#hide').css('display','block');
    return false;
  });
});

Semplicemente andiamo a verificare se l'oggetto è già mostrato o meno in maniera da cambiarne lo stato. Possiamo vedere l'esempio a questo link. Attraverso jQuery non sarebbe stato necessario tutto il codice utilizzato, sarebbe stato sufficiente utilizzare il metodo toggle() ma, per comprendere il funzionamento della regola CSS, si è preferito mostrare il codice per intero.

Nascondere gli elementi in maniera accessibile

Come detto in precedenza, la regola display:none va a nascondere l'elemento della pagina. L'elemento, quindi, viene ignorato del tutto dai browser che non ne tengono conto in nessun caso. Tale interpretazione, però, è valida anche per browser non convenzionali come quelli testuali o gli screen reader. Questo vuol dire che gli utenti disabili che navigano all'interno del sito non possono accedere a tali informazioni.

Vediamo insieme una tecnica che ci consente di nascondere gli elementi all'interno della pagina in maniera del tutto accessibile. La proprietà che andremo a sfruttare è position che ci consente di spostare la posizione dell'elemento a nostro piacimento. Più precisamente andremo ad utilizzare una regola simile alla seguente:

div#hide {
  position: absolute;
  left: -9999px;
}

L'elemento viene anche in questa maniera tolto dalla pagina ma resta comunque visibile ai browser testuali e gli screen reader. Utilizziamo lo stesso esempio precedente con la nuova proprietà, il codice è il seguente:

$(function(){
  $('#click').click(function(){
    if( $('#hide').css('left') == '-9999px' )
       $('#hide').css('left','0');
    else
       $('#hide').css('left','-9999px');
    return false;
  });
});

Possiamo vedere l'esempio a questo link.

Ti consigliamo anche