tutoriais mais recente desenvolvimento web
 

W3.CSS acordeões


Acordeão

Um acordeão é usado para mostrar (e esconder) conteúdo que é dividido em seções.

Clique nos botões "Abrir" abaixo para ver como ele funciona:

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed não eiusmod tempor ut incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Acordeão com imagens:

Trolltunga, Noruega

A classe w3-acordeão define um acordeão, e a classe-acordeão conteúdo w3 define a parte a ser exibida:

Exemplo

<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>

Tente você mesmo "

Tanto o elemento que é utilizado para abrir a acordeão e o conteúdo do acordeão pode ser qualquer elemento HTML.


Acordeão vs. suspensa

A lista abaixo mostra a diferença entre um acordeão e um menu suspenso:

acordeões

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed não eiusmod tempor ut incididunt labore et dolore magna aliqua. Ut enim ad minim veniam, Quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.


  • O conteúdo é de 100% de largura (abrange toda a largura do elemento pai)
  • Quando aberto, ele empurra o conteúdo da página para baixo, se houver (position: relative)
  • Muitas vezes usado para "abrir" múltiplas seções

dropdowns

  • O conteúdo é mínimo 160px de largura e mais, se necessário
  • Quando aberto, ele estabelece sobre o conteúdo da página (position: absolute)
  • Muitas vezes usado para "abrir" uma seção

acordeão Botões

Você pode usar qualquer elemento HTML para abrir o conteúdo acordeão. Nós preferimos um botão com uma classe btn-w3-bloco, porque se estende por toda a largura do seu elemento pai, assim como o conteúdo do acordeão (largura de 100%). Lembre-se que os botões em W3.CSS estão centrados por padrão. Use a classe w3-left-align se você quer que eles alinhados à esquerda em vez disso. No entanto, você não tem que seguir a nossa abordagem - um acordeão vai ficar bem de qualquer maneira:

Lorem ipsum ...

Lorem ipsum ...

Centrado conteúdo, bem!

Exemplo

<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>

Tente você mesmo "


Acordeão ativos Botões

Use JavaScript para destacar acordeões que estão abertos (clicou):

Algum texto ..

Algum outro texto ..

Exemplo

// 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", "");
}

Tente você mesmo "


acordeão Largura

Por padrão, a largura de um acordeão é de 100%. Para substituir isso, altere a propriedade de largura CSS do recipiente w3-acordeão:

Algum texto ..

Algum texto ..

Algum texto ..

Algum texto ..

Exemplo

<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>

Tente você mesmo "


conteúdo do acordeão

Acordeão com links:

Exemplo

<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>

Tente você mesmo "

Acordeão como um cartão com listas:
  • Jill
  • véspera
  • Adão

Exemplo

<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>

Tente você mesmo "

Acordeão dentro de um Sidenav(Nota: você vai aprender mais sobre navegações colaterais mais tarde):

Exemplo

<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>

Tente você mesmo "


Acordeões animados

Use qualquer uma das classes w3-animate- a desvanecer-se, zoom ou slide no conteúdo acordeão:

Exemplo

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

Tente você mesmo "