Em mídia impressa tradicional, tais como livros e revistas, as imagens, gráficos, ou fragmentos de código devem vir acompanhados de uma legenda. Até recentemente não existia uma maneira semântica de marcar, no HTML, o conteúdo de uma legenda, e tínhamos que nos valer de nomes de classes e CSS. A HTML5 espera resolver este problema criando dois elementos denominados <figure>
e <figcaption>
. Vamos examinar estes elementos!
<figure>
O elemento <figure>
é para ser usado em conjunto com o elemento <figcaption>
. Sua finalidade é para marcar diagramas, ilustrações, fotos, e fragmentos de código (entre outros conteúdos). Vejamos o que diz as especificações sobre o elemento <figure>
:
O elemento
<figure>
destina-se a marcar uma unidade de conteúdo e opcionalmente uma legenda para o conteúdo que se constitue em uma peça isolada do fluxo principal do documento e pode ser retirada daquele fluxo sem alterar o significado do documento.
Especificação W3C
<figcaption>
O elemento <figcaption>
tem sido assunto para muito debate na comunidade envolvida com a HTML5. Inicialmente a intenção das especificações para HTML5 era alterar a finalidade do elemento, existente, <legend>
e não, criar um novo elemento. Houve sugestões para alterar a finalidade de outros elementos existentes com o mesmo propósito, tais como, os elementos <label>
, <caption>
, <p>
e até mesmo os elementos <h1>
–<h6>
. O elemento <legend>
foi alterado , e passamos a usar os elementos <dt>
e <dd>
dentro do elemento <figure>
conforme sugerido por Jeremy’s. A maioria das sugestões apresentadas para resolver a questão apresentou problemas de retrocompatibilidade para estilização com CSS.
Aqueles que acompanham a evolução da HTML5 estão cientes de que um novo elemento foi recentemente criado , e foi denominado <figcaption>
. Ninguém sabe se ele será definitivo, contudo leia a seguir o que as especificações dizem sobre o elemento <figcaption>
:
O elemento
figcaption
destina-se a marcar o cabeçalho ou a legenda para uma figura.
Especificações W3C
O elemento <figcaption>
é opcional e pode ser posicionato antes ou depois do conteúdo do elemento <figure>
. É permitida a inserção de apenas um elemento <figcaption>
dentro do elemento <figure>
, embora o elemento <figure>
em si possa conter outros elementos-filhos (por exemplo: <img>
ou <code>
).
<figure>
e <figcaption>
Bem, já sabemos o que as especificações dizem sobre estes elementos. Como usá-los? Vejamos alguns exemplos.
<figure>
com uma imageO elemento <figure>
contém uma imagem sem legenda:
Observe o código para este caso:
... <figure> <img src="/orang-utan.jpg" alt="Orangotango jovem pendurado em uma corda"> </figure>
<figure>
com uma image e legenda O elemento <figure>
contém uma imagem e uma legenda explicativa:
Macaco do rio Lower Kintaganban, Borneo.
Original por Richard Clark
Observe o código para este caso:
... <figure> <img src="/macaque.jpg" alt="Macaco nas árvores"> <figcaption>Macaco do rio Lower Kintaganban, Borneo. Original por <a href="http://www.flickr.com/photos/rclark/">Richard Clark</a></figcaption> </figure>
<figure>
com múltiplas imagens O elemento <figure>
contém múltiplas imagens aninhadas e uma legenda:
Pássaros Australianos. Da esquerda para direita, Kookburra, Pelicano e Papagaio.
Imagens por: Richard Clark
Observe o código para este caso:
... <figure> <img src="/kookaburra.jpg" alt="Kooaburra"> <img src="/pelican.jpg" alt="Pelicano na praia"> <img src="/lorikeet.jpg" alt="Papagaio"> <figcaption>Pássaros Australianos. Da esquerda para direita, Kookburra, Pelicano e Papagaio. Originais por <a href="http://www.flickr.com/photos/rclark/">Richard Clark</a></figcaption> </figure>
<figure>
com um bloco de código O elemento <figure>
pode ser usado para exemplificar código:
<small><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution Share-alike license</a></small>
Uso do elemento <small>
em link com atributo rel="license"
para Creative Commons license.
Observe o código para este caso:
... <figure> <blockquote><p><code><small><a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/">Creative Commons Attribution Share-alike license</a></small></code></p></blockquote> <figcaption>Uso do elemento <code><small></code> em um link com <code>rel="license"</code> <a href="http://creativecommons.org/choose/" title="Escolha uma licença">Creative Commons license</a></figcaption> </figure>
<figure>
e <aside>
Nós apresentamos o elemento <aside>
em um artigo anterior , mas é importante ressaltar a diferença entre eles. A pergunta que se deve fazer para decidir o uso entre os elementos <aside>
e <figure>
é: O conteúdo a ser marcado é essencial para o entendimento da seção?
<aside>
.<figure>
.Dito isto considere ainda a posição do elemento em relação aos conteúdos anteriores e posteriores e dependendo disto use um elemento mais apropriado, por exemplo: um <div>
, um elemento <img>
, um elemento <blockquote>
, ou até mesmo o elemento <canvas>
, tudo dependendo do conteudo a marcar.
Você não precisa ficar limitado a imagens e exemplos de código para usar o elemento <figure>
. Outros conteúdos, tais como, áudio vídeo, gráficos (talvez usando <canvas>
ou <svg>
), poemas, ou tabelas sobre estatísticas são possíveis candidatos a serem marcados com <figure>
.
Contudo nem sempre é apropriado o uso do elemento <figure>
. Por exemplo: Um banner gráfico não deve ser marcado com o elemento <figure>
. Neste caso use o elemento <img>
.
Conforme vimos neste artigo há muitas situações nas quais é indicado o uso do elemento <figure>
. Apenas certifique-se que para o seu conteúdo é este o elemento mais apropriado para marcar. Mas, afinal você já faz isto para toda a sua marcação. Certo? 🙂
Créditos:
Autor: Richard Clark
URL do artigo original: http://html5doctor.com/the-figure-figcaption-elements/
Em 2006 comecei a publicar nesse blog uma série de desafios CSS que consistiam em…
Há muito tempo que eu não publico um "Teste seu conhecimento". Esta semana, revendo algumas…
Introdução Elementos da marcação HTML podem ser aninhados uns dentro de outros, criando-se uma cadeia…
HTML5? Web universal? É comum eu me deparar com dúvidas sobre a HTML5 não só…
Quem é Tab Atkins Jr? Tab Atkins Jr, um desenvolvedor americano, trabalhou durante muitos anos…
Pessoal, a BrazilJS Conf 2013 disponibilizou para o Maujor cupons de desconto para serem oferecidos…
View Comments
Ótimo post, sempre esclarecedor.
Parabéns!
Pessoal,
Estou trabalhando em um projeto HTML5 muito legal, chamado Zeewe (http://zeewe.com).
Trata-se de uma loja de aplicativos HTML5 indepentende, através desta loja é possível instalar aplicativos em iphone, android, ipad, e todos demais browsers que suportam HTML5.
Queremos fomentar o HTML5 através de uma loja independente e gratuita, além de usar a audiência da loja para distribuir aplicativos, o desenvolvedor pode user api´s de billing para cobrar por features ou virtual goods dentro dos aplicativos, como já é comum nas apps nativas iphone e android.
Se tiverem projetos, ideias ou intesse na tecnologia HTML5, entrem em contato, feedbacks são muito bem vindos.
flavio.stecca@zeewe.com
@Agência web Sonna: benefícios em SEO? Claro!
Quanto mais semântica, melhor para SEO, oras. Sempre!
E desculpe, não compreendi onde o HTML5 melhorou o "visual gráfico" por conta disto. Poderia me clarear?
Lembrando também que tag's não são comandos, são marcações. Comandos executam algo.(desculpe possível chateação)
Maujor, muito bom o artigo, muito obrigado!
ai tem como posicionar objeto na tela com html5? ou nao?
Valeu pelas dicas estou estudando html e gostei.
Muito bom, o html5 vem pra revolucionar a web !
Muito legal esse comando!
Além de trazer um visual gráfico mais interessante, será que traz benefícios em SEO?
Obrigado!
Abraços!
Ótimo Maujor, seus posts são ótimos.
Obrigada
Marcia
Sempre trazendo novos elementos para nossa atualização, este comando ainda não conhecia, por isso vale a pena ficar ligado na rede e no seu site
obrigado
Muito bom Maujor........obrigado