Crie um acordeão somente HTML para ocultar e revelar conteúdo (sem JS ou CSS)

in Recursos e Ferramentas

Você sabia que existe uma solução HTML5 nativa para criar facilmente um botão sanfona ler mais/menos para ocultar e revelar conteúdo com SEM JavaScript ou CSS. Leia mais para descobrir como.

acordeon html5

A e As tags HTML5 são oficialmente um elemento de widget de divulgação, Mas o emparelhado com As tags HTML5 lhe darão uma acordeon somente HTML puro.

Significado sem JS OU CSS é preciso. Quão legal é isso!

Aqui está um exemplo mostrando um elemento simples com um e .

Aqui está o código:

<details>
 <summary>Read More</summary>
  <p>This is a native HTML5 accordion to hide and reveal content. Pretty cool, right?</p>
</details>

e veja como vai ficar:

Saiba Mais

Este é um acordeão HTML5 nativo para ocultar e revelar conteúdo. Bem legal, certo?

Como funciona? A  serve como um wrapper para um elemento que pode ser aberto ou fechado. O usuário deve clicar no rótulo que é o tag para abrir ou fechar o elemento.

E quanto ao estilo e comportamento?

Estilos

Você pode aplicar o estilo CSS para personalizar a aparência da caixa de texto de revelação. O abaixo fornece um estilo de interface com guias:

details {
  font: 16px "Open Sans", Calibri, sans-serif;
  width: 620px;
}

details > summary {
  padding: 2px 6px;
  width: 15em;
  background-color: #ddd;
  border: none;
  box-shadow: 3px 3px 4px black;
  cursor: pointer;
}

details > p {
  border-radius: 0 0 10px 10px;
  background-color: #ddd;
  padding: 2px 6px;
  margin: 0;
  box-shadow: 3px 3px 4px black;
}

details[open] > summary {
  background-color: #ccf;
}

Por padrão, o cursor aparece como uma seta, mas se você quiser que seja um mão apontando em vez disso, use isso:

details {
cursor: pointer;
}

Comportamentos

Definir comportamentos é muito limitado, há realmente apenas uma coisa que você pode fazer e isso é tornar o texto revelado aberto por padrão.

Para iniciar o acordeão em seu estado aberto, adicione o Boolean aberto Atribua ao etiqueta, rótulo, palavra-chave:

<details open>
 <summary>Read More</summary>
  <p>This is a native HTML5 accordion to hide and reveal content. Pretty cool, right?</p>
</details>
Saiba Mais

Este é um acordeão HTML5 nativo para ocultar e revelar conteúdo. Bem legal, certo?

Quais atributos posso usar?

Os atributos abaixo podem ser usados ​​para o etiqueta, rótulo, palavra-chave:

AtributoValorResumo
abertoabertoO padrão é não aberto.
id  valorFornece um identificador exclusivo.
classe  nomes de classeAtribui nomes de classe ao elemento.
estilo  Valores CSSAtribui estilos CSS ao elemento.

Então, quais são as limitações? Sempre tem uma pegadinha, não é?

Não há suporte para o Internet Explorer

Este acordeão somente HTML5 não funcionará em nenhuma versão do Internet Explorer. Se você precisar oferecer suporte ao IE11, precisará usar uma solução de fallback diferente usando JQuery. Todos os outros navegadores suportam e .

Sem animações ou transições personalizadas

Embora você possa modificar e estilizar a aparência (como mostrado acima), você não poderá fazer nenhuma animação ou transição de revelação de texto. Se você quiser fazer isso, precisará de outra solução de acordeão CSS/JSS.

Leitores de tela e acessibilidade

Isso é nativo HTML5 e ele *deveria* ser acessível, mas descobriu-se que o texto revelado real nem sempre é anunciado corretamente por um leitor de tela.

Referências:

Sobre o autor

Matt Ahlgren

Mathias Ahlgren é CEO e fundador da Website Rating, liderando uma equipe global de editores e escritores. Ele possui mestrado em ciência da informação e gestão. Sua carreira girou em torno do SEO após as primeiras experiências de desenvolvimento web durante a universidade. Com mais de 15 anos em SEO, marketing digital e desenvolvimento web. Seu foco também inclui segurança de sites, comprovada por certificado em Segurança Cibernética. Essa experiência diversificada sustenta sua liderança na Website Rating.

Página inicial » Recursos e Ferramentas » Crie um acordeão somente HTML para ocultar e revelar conteúdo (sem JS ou CSS)
Compartilhar com...