Gli ultimi tutorial di sviluppo web
 

W3.CSS Fisarmoniche


Fisarmonica

Una fisarmonica viene usato per mostrare (o nascondere) il contenuto che viene suddiviso in sezioni.

Fare clic sui pulsanti "Open Sezione" qui sotto per vedere come funziona:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod Tempor ut labore et dolore incididunt magna aliqua. Ut enim ad minim veniam, quis nostrud esercitazioni ullamco laboris nisi ut aliquip ex EA Commodo consequat.

Fisarmonica con le immagini:

Trolltunga, Norvegia

La classe w3-fisarmonica definisce una fisarmonica, e la classe w3-fisarmonica-contenuti definisce la parte da visualizzare:

Esempio

<div class="w3-accordion w3-light-grey">
  <button onclick="myFunction('Demo1')" class="w3-btn-block w3-left-align">
    Open Section 1
  </button>
  <div id="Demo1" class="w3-accordion-content w3-container">
    <p>Some text..</p>
  </div>
  <button onclick="myFunction('Demo2')" class="w3-btn-block w3-left-align">
    Open Section 2
  </button>
  <div id="Demo2" class="w3-accordion-content w3-container">
    <p>Some text..</p>
  </div>
</div>

<script>
function myFunction(id) {
    var x = document.getElementById(id);
    if (x.className.indexOf("w3-show") == -1) {
        x.className += " w3-show";
    } else {
        x.className = x.className.replace(" w3-show", "");
    }
}
</script>

Prova tu stesso "

Sia l'elemento che viene utilizzato per aprire la fisarmonica e il contenuto della fisarmonica può essere qualsiasi elemento HTML.


Fisarmonica vs. discesa

L'elenco che segue mostra la differenza tra una fisarmonica e un menu a discesa:

Fisarmoniche

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod Tempor ut labore et dolore incididunt magna aliqua. Ut enim ad minim veniam, quis nostrud esercitazioni ullamco laboris nisi ut aliquip ex EA Commodo consequat.


  • Il contenuto è largo 100% (copre l'intera larghezza dell'elemento genitore)
  • Una volta aperto, si spinge il contenuto della pagina verso il basso, se del caso (position: relative)
  • Spesso utilizzato per "aprire" più sezioni

menu a discesa

  • Contenuti è minima 160px di larghezza e più se necessario
  • Una volta aperto, si pone sopra il contenuto della pagina (position: absolute)
  • Spesso utilizzato per "aprire" una sezione

Pulsanti di fisarmonica

È possibile utilizzare qualsiasi elemento HTML per aprire il contenuto della fisarmonica. Noi preferiamo un pulsante con una classe w3-btn-block, perché copre l'intera larghezza del suo elemento genitore, proprio come il contenuto fisarmonica (larghezza 100%). Ricordate che i pulsanti di W3.CSS sono centrate per impostazione predefinita. Utilizzare la classe w3-sinistra-align se si vuole che allineato a sinistra, invece. Tuttavia, non c'è bisogno di seguire il nostro approccio - una fisarmonica che starà bene in entrambi i casi:

Lorem ipsum ...

Lorem ipsum ...

Centrato contenuti, come pure!

Esempio

<div class="w3-accordion w3-light-grey">
  <button onclick="myFunc('Demo1')" class="w3-btn">
    Normal button
  </button>
  <div id="Demo1" class="w3-accordion-content">
    <p>Lorem ipsum...</p>
  </div>
  <button onclick="myFunc('Demo2')" class="w3-btn-block w3-left-align w3-green">
    Left aligned & full-width
  </button>
  <div id="Demo2" class="w3-accordion-content">
    <p>Lorem ipsum...</p>
  </div>
  <button onclick="myFunc('Demo3')" class="w3-btn-block w3-red">
  Centered & full-width
  </button>
  <div id="Demo3" class="w3-accordion-content w3-center">
    <p>Centered content as well!</p>
  </div>
</div>

Prova tu stesso "


Pulsanti fisarmonica attivi

Utilizzare JavaScript per evidenziare fisarmoniche che sono aperti (cliccato):

Del testo ..

Qualche altro testo ..

Esempio

// Add the w3-red class to all opened accordions
var x = document.getElementById(id);
if (x.className.indexOf("w3-show") == -1) {
  x.className += " w3-show";
  x.previousElementSibling.className += " w3-red";
} else {
  x.className = x.className.replace("w3-show", "");
  x.previousElementSibling.className =
  x.previousElementSibling.className.replace("w3-red", "");
}

Prova tu stesso "


Larghezza di fisarmonica

Per impostazione predefinita, la larghezza di una fisarmonica è al 100%. Per ignorare questo, cambiare la proprietà width CSS del contenitore w3-fisarmonica:

Del testo ..

Del testo ..

Del testo ..

Del testo ..

Esempio

<div class="w3-accordion w3-light-grey" style="width:50%">
  <button onclick="myFunction('Demo1')" class="w3-btn-block">
    50%
  </button>
  <div id="Demo1" class="w3-accordion-content">
    <p>Some text..</p>
  </div>
</div>

Prova tu stesso "


Fisarmonica contenuti

Fisarmonica con i link:

Esempio

<div class="w3-accordion w3-light-grey">
  <button onclick="myFunction('Demo1')" class="w3-btn-block w3-left-align">
    Accordion
  </button>
  <div id="Demo1" class="w3-accordion-content">
    <a href="#">Link 1</a>
    <a href="#">Link 2</a>
    <a href="#">Link 3</a>
  </div>
</div>

Prova tu stesso "

Fisarmonica come una scheda con le liste:
  • Jill
  • vigilia
  • Adamo

Esempio

<div class="w3-accordion w3-card-4">
  <button onclick="myFunction('Demo1')" class="w3-btn-block w3-left-align">
    Accordion
  </button>
  <div id="Demo1" class="w3-accordion-content">
    <ul class="w3-ul">
      <li>Jill</li>
      <li>Eve</li>
      <li>Adam</li>
    </ul>
  </div>
</div>

Prova tu stesso "

Fisarmonica all'interno di un Sidenav(Nota: si impara di più su navigazioni laterali più avanti):

Esempio

<nav class="w3-sidenav w3-light-grey w3-card-2" style="width:200px;">
  <a href="#">Link</a>
  <div class="w3-accordion">
    <a onclick="myAccFunc()" href="#">Accordion</a>
    <div id="demoAcc" class="w3-accordion-content w3-white w3-card-4">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>
  <div class="w3-dropdown-click">
    <a onclick="myDropFunc()" href="#">Dropdown</a>
    <div id="demoDrop" class="w3-dropdown-content w3-white w3-card-4">
      <a href="#">Link 1</a>
      <a href="#">Link 2</a>
      <a href="#">Link 3</a>
    </div>
  </div>
  <a href="#">Link</a>
  <a href="#">Link</a>
</nav>

Prova tu stesso "


Fisarmoniche animati

Utilizzare una delle classi w3-animate- a svanire, lo zoom o scivolare nel contenuto della fisarmonica:

Esempio

<div id="Demo1" class="w3-accordion-content w3-animate-zoom">

Prova tu stesso "