Nascondere elementi

20 luglio 2010

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.

Tutte le lezioni

1 ... 7 8 9 ... 49

Se vuoi aggiornamenti su Nascondere elementi inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Nascondere elementi

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento dei dati per attività di marketing