Advertisement
Portuguese (Português) translation by Erick Patrick (you can also view the original English article)
Essa indústria evolui rápido – muito rápido! Se não tomar cuidado, você cará para trás, comendo poeira. Então, se você está se
sentido sobrecarregado pelas mudanças/atualizações que vieram com o HTML5, use esse artigo como um ponta-pé inicial para o
que você precisa saber.
1. Novo Doctype
Você ainda usa aquele doctype complicado e de difícil memorização do XHTML??
Se sim, por que? Mude para o novo doctype do HTML5. Você viverá mais – como o Douglas Quaid diria.
1 <!DOCTYPE html>
Na verdade, você sabia que ele não é necessário para um documento HTML5? Entretanto, ele é usado pelos navegadores atuais e
antigos que requerem que seja especi cado um doctype . Os navegadores que não entendem esse doctype, simplesmente,
renderizarão o código no modo padrão. Assim, não se preocupe, sinta-se livre para mandar o medo embora e adote o novo doctype
do HTML5.
2. O Elemento Figure
Considere o seguinte código para uma imagem:
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 1/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Não há, infelizmente, uma maneira fácil ou semântica de associar a legenda, dentro da tag <p> , com o elemento <img> em si. O
HTML5 corrige isso, introduzindo o elemento <figure> . Quando combinada com o elemento <figcaption> , nós podemos, agora,
associar a legenda com sua respectiva imagem.
1 <figure>
2 <img src="path/to/image" alt="Sobre a Imagem" />
3 <figcaption>
4 <p>Isso é uma imagem de algo interessante. </p>
5 </figcaption>
6 </figure>
Isso não é mais necessário. Está implícito que ambas as tags referem-se a folhas de estilo e scripts, respectivamente. Assim,
podemos remover o atributo type por completo.
Faça sua escolha com relação a esse ponto. Se você preferir um documento mais estruturado, você pode continuar com as aspas.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 2/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Os novos navegadores tem um novo atributo interessante, que pode ser adicionado aos elementos, chamado de contenteditable .
Como o nome implica, isso permite que o usuário edite qualquer texto contido dentro do elemento, até incluindo os lhos do
elemento. Há inúmeros usos para algo assim, incluindo as simples listas de tarefas, que também podem lançar mão do
armazenamento local.
01 <!DOCTYPE html>
02
03 <html lang="en">
04 <head>
05 <meta charset="utf-8">
06 <title>untitled</title>
07 </head>
08 <body>
09 <h2> Lista de Tarefas </h2>
10 <ul contenteditable="true">
11 <li> Quebrar um motorista robô. </li>
12 <li> Dirigir até uma fábrica abandonada
13 <li> Ver vídeos de mim mesmo </li>
14 </ul>
15 </body>
16 </html>
1 <ul contenteditable=true>
7. Campos de E-mail
Se aplicarmos o valor "email" ao atributo type de algum campo de formulário, podemos instruir o navegador a só permitir cadeias
de caracteres que sigam as regras de estrutura de um endereço de e-mail válido. É verdade. Validação de formulários estará, logo-
logo, nos navegadores! Não podemos depender 100% dessa validação, ainda, por questões óbvias. Em navegadores antigos, que
não entendem esse valor "email", eles simplesmente criam um campo de texto padrão.
01 <!DOCTYPE html>
02
03 <html lang="en">
04 <head>
05 <meta charset="utf-8">
06 <title>untitled</title>
07 </head>
08 <body>
09 <form action="" method="get">
10 <label for="email">Email:</label>
11 <input id="email" name="email" type="email" />
12
13 <button type="submit"> Enviar Formulário </button>
14 </form>
15 </body>
16 </html>
Nesse momento, não podemos depender de validação dos navegadores. Soluções tanto
no cliente quando no servidor devem ser implementadas.
Deve-se perceber que todos os navegadores atuais são um pouco instáveis, quanto aos elementos e atributos que eles suportam ou
não. Por exemplo, o Opera parece que dá suporte a validação de e-mails, desde que o atributo name seja especi cado. Entretanto,
ele não dá suporte ao atributo placeholder , sobre o qual aprenderemos na próxima dica. No m das contas, não dependa desse
tipo de validação de formulário, ainda... Mas, você já pode utilizá-lo!
8. Placeholders
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 3/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Antes de utilizar um pouco de JavaScript para criar textos indicativos (placeholder), utilize o atributo placeholder para os campos
de texto de seus formulários. Claro, você pode atribuir valor inicial através de value e isso até funciona, mas, tão logo o usuário
apaga o texto e clica/seleciona outra coisa, o campo continua em branco. O atributo placeholder remedia essa situação.
De novo, o suporte é impreciso entre os navegadores, porém, a situação melhorará a cada nova versão deles. Além disso, se os
navegadores, como o Firefox ou Opera, não dão suporte, atualmente, ao atributo placeholder , não há perigo algum em utilizá-lo.
Simplesmente será desconsiderado.
9. Armazenamento Local
Graças ao armazenamento local (não faz parte, o cialmente, do HTML5, mas foi agrupado por conveniência), podemos fazer com
que navegadores avançados "lembrem-se" do que digitamos, mesmo depois que o nosso navegador é fechado ou recarregado.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 4/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
" localStorage guarda os campos com relação ao domínio. Mesmo que você feche a janela do
seu navegador, reabra e volte ao site, ele lembrará de todos os campos na localStorage ."
-QuirksBlog
Uma vez que, obviamente, não é suportado por todos os navegadores, podemos esperar que esse método funcione, mais
notavelmente, no Internet Explorer 8, Safari 4 e Firefox 3.5. Atente que, para compensar os navegadores antigos que não
reconhecem armazenamento local, você deveria, primeiro, veri car se window.localStorage existe.
via http://www. ndmebyip.com/litmus/
1 <div id="header">
2 ...
3 </div>
4
5 <div id="footer">
6 ...
7 </div>
Div s, por natureza, não tem estrutura semântica – mesmo após atributos id serem aplicados. Agora, com o HTML5, temos
acesso aos elementos <header> e <footer> . O código acima pode ser substituido pelo de logo abaixo:
1 <header>
2 ...
3 </header>
4
5 <footer>
6 ...
7 </footer>
Tente não confundir esses elementos com os "cabeçalho" e "rodapé" do seu site. Eles referem-se, somente, ao receptáculo. Assim,
faz todo sentido, posicionar, por exemplo, meta-informações na parte de baixo de um artigo de um blog, dentro de um elemento
footer . O mesmo é verdadeiro para o elemento header .
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 5/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Todos os elementos, por padrão, possuem o valor inline para a propriedade display .
Para garantir que esses novos elementos HTML5 renderizem corretamente como elementos de tipo bloco, é necessário, por
enquanto, estiliza-los como tal.
Infelizmente, o Internet Explorer ignorará esses estilos, porque ele não tem a menor ideia do que o elemento header é, por exemplo.
Felizmente, há uma maneira fácil de corrigir isso:
1 document.createElement("article");
2 document.createElement("footer");
3 document.createElement("header");
4 document.createElement("nav");
5 document.createElement("menu");
Por mais estranho que seja, esse código ativa o Internet Explorer. Para simpli car esse processo para cada nova aplicação, Remy
Sharp criou um script, comumente chamado de HTML5 shiv. Esse script também ajusta alguns problems de impressão.
1 <!--[if IE]>
2 <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
3 <![endif]-->
13. hgroup*
*Desde a primeira publicação desse artigo, o elemento hgroup tornou-se obsoleto e não deve mais ser usado.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 6/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Ambas as formas funcionarão. Com esse código, dentro dos navegadores que dão suporte ao atributo, um formulário não pode ser
enviado com o campo "someInput" em branco. Eis um exemplo simples: Também adicionaremos o atributo placeholder , já que
nada nos impede de fazê-lo.
Se o campo for deixado em branco e o formulário for enviado, o campo em questão ganhará destaque.
De forma interessante, enquanto eu pre ro escrever de uma forma mais parecida com a do XHTML (usando aspas, etc), escrever o
atributo como autofocus="autofocus" ca bem estranho. Assim, usaremos o atributo sozinho.
A Mozilla e o Webkit ainda não andam juntas, quando se trata dos formatos de áudio suportados. O Firefox quer que o tipo .ogg
prevaleça, enquanto os Webkit trabalham, sem problemas, com o formato mp3. Isso signi ca, pelo menos por hora, que você deve
criar duas versões do seu áudio.
Quando o Safari carregar a página, ele não reconhecerá o formato .ogg e pulará, seguindo em busca do formato mp3. Note que o IE,
como sempre, não dá suporte, e o Opera 10 ou anterior só trabalham com arquivos do tipo .wav.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 7/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
O navegador Chrome pode mostrar, corretamente, videos codificados nos formatos "ogg" e
"mp4".
1. Tecnicamente, não precisamos preencher o atritbuto type ; entretanto, se não o zermos, o navegador terá de descobrir o tipo
por conta própria. Economize banda e declare.
2. Nem todos os navegadores compreendem a tag video do HTML5. Logo após os elementos source , podemos oferecer um
link para download ou uma versão em Flash. Fica a seu critétio.
3. Os atributos controls e preload serão discutidos nas duas próximas dicas.
1 <video preload>
Atente que cada navegador renderiza seus tocadores de vídeo diferente um dos outros.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 8/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Se você tem certo conhecimento de expressões regulares, você saberá que o padrão [A-Za-z]{4,10} aceita, somente, letras em
maiúsculo e/ou minúsculo. E essa cadeia de caracteres deve ter o mínimo de quatro caracteres e o máximo de dez.
Na verdade, esse é um método bem popular de descobrir a compatibilidade de um navegador. A bibioteca jQuery utiliza esse truque.
Acima, criamos um novo elemento input e determinamos se o atributo pattern faz parte de seus atributos. Se sim, o navegador
suporta a funcionalidade. Caso contrário, não suporta.
<script>
if (!'pattern' in document.createElement('input') ) {
// realize validação do lado cliente e do servidor
}
</script>
Div s deveriam ser utilizadas quando não houver outro elemento melhor em questão.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 9/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Por exemplo, se você se encontrar na necessidade de envolver algum bloco de código dentro de um elemento recipiente, só para
posicionar o conteúdo, uma <div> faz todo o sentido. Entretanto, se você estiver interessado em envolver um novo post de blog, ou,
talvez, uma lista de links em seu rodapé, considere usar os elementos <article> e <nav> , respectivamente. Eles são bem mais
semânticos.
Independentemente da distinção que você requeira, todas essas tecnologias podem ser agrupadas no padrão web moderno. Na
verdade, muitas dessas especi cações rami cadas ainda são administradas pelas mesmas pessoas de antes.
Agora temos, o cialmente, suporte a atributos customizados em todos os elementos HTML. Enquanto, antigamente, só podiamos
fazer algo assim:
...os validadores de código cariam doidos! Agora, porém, desde que pre xemos nossos atributos customizados usando data ,
podemos, o cialmente, usar esse método. Se você, alguma vez, se viu tendo de guardar dados importantes dentro do atributo
class , provavelmente para uso com JavaScript, isso virá bem a calhar!
Trecho HTML
Ele pode ser usado, inclusive, em nosso CSS, como nesse exemplo básico de mudança de texto.
01 <!DOCTYPE html>
02
03 <html lang="en">
04 <head>
05 <meta charset="utf-8">
06 <title>Exemplo simples de mudança de texto</title>
07 <style>
08
09 h1 { position: relative; }
10 h1:hover { color: transparent; }
11
12 h1:hover:after {
13 content: attr(data-hover-response);
14 color: black;
15 position: absolute;
16 left: 0;
17
18 }
19 </style>
20 </head>
21 <body>
22
23 <h1 data-hover-response="Eu disse, não me toque!"> Não me toque </h1>
24
25 </body>
26 </html>
Como um exemplo simples, vamos inserir a soma de dois números em um elemento output vazio, usando JavaScript, quando um
botão submit for pressionado.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 11/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
10 var f = document.forms[0];
11
12 if ( typeof f['sum'] !== 'undefined' ) {
13 f.addEventListener('submit', function(e) {
14 f['sum'].value = 15;
15 e.preventDefault();
16 }, false);
17 }
18 else { alert('Seu navegador não está pronto ainda.'); }
19 })();
20 </script>
Veja em funcionamento.
Note que o suporte ao elemento output ainda é bem fraco. Enquanto escrevo, somente o navegador Opera implementava-o bem.
Isso é re etido no código acima. Se o navegador não reconhece o elemento, simplesmente, alertará você sobre. Em qualquer outro
caso, ele busca o elemento output com o atributo name de valor "sum" e atribui o valor 15 , após o formulário ser enviado.
Esse elemento também pode receber um atributo for , que re ete o nome do elemento o qual o elemento output se relaciona, de
forma semelhante a que o elemento label trabalha.
1 <input type="range">
Notavelmente, ele pode ter os atributos min , max , step ,e value , além de outros. Embora apenas o Opera pareça dar suporte a
esse tipo de campo, será fantástico quando nós pudermos usar isso de verdade!
Para uma rápida demonstração, vamos construir um votador para que os usuários decidam o quão incrível o lme "Total Recall" é.
Não construiremos uma solução de votação real, mas revisaremos como poderíamos fazer, bem rápido.
Passo 1: Estrutura
Primeiro, criaremos a estrutura HTML.
1 <form method="post">
2 <h1> Votador de Grandiosidade do "Total Recall" </h1>
3 <input type="range" name="range" min="0" max="10" step="1" value="">
4 <output name="result"> </output>
5 </form>
Note que, além de atribuir os valores de min e max , podemos especi car qual o tamanho do passo ( step ) de cada trnasição. Se o
step tiver o valor de 1 , teremos 10 valores a escolher. Nós, também, lançamos mão do novo elemento output que aprendemos na
dica anterior.
Passo 2: CSS
Depois, estilizaremos um pouco. Nós utilizaremos os pseudo-elementos :before e :after para avisar ao usuário quais são os
valores min e max atuais. Muito obrigado ao Remy e Bruce por ensinarem esse truque, via "Introducing HTML5."
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 12/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
01 body {
02 font-family: 'Myriad-Pro', 'myriad', helvetica, arial, sans-serif;
03 text-align: center;
04 }
05 input { font-size: 14px; font-weight: bold; }
06
07 input[type=range]:before { content: attr(min); padding-right: 5px; }
08 input[type=range]:after { content: attr(max); padding-left: 5px;}
09
10 output {
11 display: block;
12 font-size: 5.5em;
13 font-weight: bold;
14 }
Criamos, acima, conteúdo antes e depois do campo range , e fazemos seus valores iniciais serem iguais aos atribuídos a min e
max , respectivamente.
Passo 3: O JavaScript
Por último, nós:
Determinamos se o navegador atual sabe o que é um campo do tipo range . Se não, alertamos o usuário que a demonstração
não funcionará.
Atualizamos o elemento output dinamicamente, de acordo com que o usuário mexe o slider.
Prestamos atenção para quando o usuário tirar o mouse de cima do slider, podermos salvar o valor e salvá-lo no
armazenamento local.
Então, a próxima vez que o usuário recarregar a página, o campo range e o elemento output já estarão, automaticamente,
con gurados com os valores selecionados da última vez.
(function() {
var f = document.forms[0],
range = f['range'],
result = f['result'],
cachedRangeValue = localStorage.rangeValue ? localStorage.rangeValue : 5;
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 13/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
}, false);
})();
Pronto para o mundo real? Provavelmente, não. Mas, ainda assim, é legal de brincar e de se preparar!
Baixe o código fonte, e tente por conta própria. Mas, lembre-se de usar um navegador moderno e atualizado.
Obrigado pela leitura! Falamos sobre muita coisa, mas apenas cobrimos só o topo do iceberg. O HTML5 é bastante poderoso!
Espero que esse artigo tenha sevido como uma bela introdução!
Advertisement
Jeffrey Way
I used to be the editor of Nettuts+ and head of web development courses at Tuts+.
jeffrey_way
Email Address
Update me weekly
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 14/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
Advertisement
Translations
Envato Tuts+ tutorials are translated into other languages by our community members—you can be involved too!
Powered by
1 COMENTÁRIO Nettuts+
1 Iniciar sessão
Nome
Advertisement
ENVATO TUTS+
HELP
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 15/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
© 2018 Envato Pty Ltd. Trademarks and brands are the property of their respective owners.
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 16/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 17/18
11/02/2018 28 Recursos, Dicas e Técnicas Para HTML5 Que Você Deve Saber
https://code.tutsplus.com/pt/tutorials/28-html5-features-tips-and-techniques-you-must-know--net-13520 18/18