O documento introduz os principais conceitos de HTML5, incluindo: (1) suas novas tags semânticas como <section>, <nav> e <article>; (2) seus novos recursos como vídeo, áudio e armazenamento local; e (3) como substitui o XHTML ao oferecer maior flexibilidade e retrocompatibilidade.
2. HTML
HTML = Hypertext Markup
Language (Linguagem de Marcação
de Hipertexo);
Linguagem Interpretada por um
Browser;
Define o formato do documento e
as ligações com outros
documentos;
8. W3C
World Wide Web Consortium;
Fundado por Tim Berners-Lee;
Visa levar a Web ao seu potencial
máximo;
Fóruns abertos que promovam a
sua evolução e assegurem a sua
interoperabilidade.
11. HTML5
É a nova versão do HTML4;
Necessidade de criar elementos
semânticos;
Ainda está em testes e a versão
final é prometida para 2012;
12. HTML5
Cria novas tags e muda a função de
outras;
Padrão para criação de sessões
comuns como rodapé, cabeçalho,
sidebar e menus.
13. HTML5
Muda a forma de escrever código
e organizar a informação:
Mais semântica e menos código;
Mais interatividade sem plugins e
perda de performance;
Código interoperável, pronto para
futuros dispositivos;
Facilita a reutilização da informação
de diversas formas.
15. HTML5 vs XHTML2
WHATWG vs W3C;
WHATWG (Mozilla, Apple e Opera
em 2004);
W3C -> XHTML2;
WHATWG -> HTML5
Mais flexibilidade;
Integrar Web Forms 2.0 e abandonar
o Web Controls 1.0;
Retrocompatibilidade.
16. HTML5 vs XHTML2
Em 2006 a W3C reconheceu as
vantagens do HTML5;
W3C e WHATWG passaram a
trabalhar em conjunto;
18. Novos Recursos
Controle embutido de conteúdo
multimídia (Áudio e Vídeo);
Desenvolvimento de gráficos
bidimensionais;
Aprimoramento do uso off-line;
Geolocalização;
Validação de Formulários nativa;
Drag and Drop.
20. Estrutura Básica
HTML5
O atributo LANG não é restrito ao elemento HTML, ele
pode ser utilizado em qualquer outro elemento para
indicar o idioma do texto representado.
23. Novos Elementos
<section>
define uma nova seção genérica no
documento (introdução ou destaque,
novidades, etc.);
<nav>
seção da página que contém links
(importantes) para outras partes do
website;
24. Novos Elementos
<article>
parte da página que poderá ser
distribuída e reutilizada em FEEDs por
exemplo (post, artigo, um bloco de
comentários de usuários, etc.);
<aside>
define uma área de conteúdo
relacionado ao seu conteúdo
principal (sidebars em textos
impressos, publicidade, etc.);
25. Novos Elementos
<hgroup>
agrupar elementos de título de H1
até H6 quando eles tem múltiplos
níveis de títulos;
<time>
marcar parte do texto que exibe um
horário ou uma data;
26. Novos Elementos
<header>
grupo de introdução ou elementos de
navegação (índices de conteúdos,
campos de busca ou até mesmo
logomarcas);
<footer>
representa literalmente o rodapé da
página.
27. Novos Elementos
Os novos elementos possibilitaram
uma nitidez maior no código;
É possível diferenciar diretamente
pelo código HTML5 áreas
importantes do site como sidebar,
rodapé e cabeçalho;
28. Novos Elementos
Os buscadores conseguem
vasculhar o código de maneira
mais eficaz;
Guardando informações mais
exatas e levando menos tempo
para estocar essa informação.
34. Formulários
<input />
Novos valores para type
tel (sem formatação ou mascara);
search (mudar a aparência para parecer
com os demais do sistema);
email (validação do email podendo
ainda integrar com a agenda de
contatos);
url (formatação e validação de
endereços web);
35. Formulários
<input />
Novos valores para type
Datas e horas (calendário, um seletor de
horário ou outro auxílio ao
preenchimento);
Number (aceita somente numeros);
range (valores numéricos porém com
uma barra de seleção);
color (paleta de cores com resultado
#000FFF)
36. Formulários
Mais recursos
autofocus
o foco será colocado neste campo
automaticamente ao carregar a página;
<input name="login" autofocus/>
Placeholder text
texto padrão do campo antes do foco ir
para ele;
<input name="q" placeholder="Pesquisa"/>
41. API Storage
Um dos grandes desafios de usabilidade
é criar uma navegação consistente
ações locais do usuário numa página fossem
refletidas na próxima.(Menu em árvore);
histórico com o uso de Ajax.
42. API Storage
Soluções:
Histórico de Sessão
elemento history;
localStorage e sessionStorage
Antes
Cookies (Interface complexa e Limite de
armazenamento);
Agora
localStorage(armazena os dados no client sem
expiração definida) ;
sessionStorage(armazena os dados durante a sessão
atual de navegação).
45. Midias com HTML5
Áudio
<audio controls="true" autoplay="true">
<source src="mus.oga" />
<source src="mus.mp3" />
<source src="mus.wma" />
<p>Faça o <a href="mus.mp3">download da música</a>.</p>
</audio>
O valor de controls define se um controle de áudio, com botões de play,
pause, volume, barra de progresso, contador de tempo, etc. será
exibido na tela;
O estilo dos botões é definido pelo browser.
46. Midias com HTML5
Vídeo
<video controls="true" autoplay="true" width="400“ height="300">
<source src="u.ogv" />
<source src="u.mp4" />
<source src="u.wmv" />
<p>Faça o <a href="u.mp4">download do vídeo</a>.</p>
</video>
50. Midias com HTML5
Elemento device
Webcam
<device type="media">
interface solicitando ao usuário acesso a sua
webcam. Se ele tiver mais de uma, também será
permitido que ele escolha que webcam usar;
Stream
basta trocar o valor “media” por “fs”.
51. Canvas
A Canvas API permite a você desenhar na
tela do navegador via Javascript. O único
elemento HTML existente para isso é o
elemento canvas, o resto todo é feito via
Javascript.
<canvas id="x" width="300" height="300"></canvas>
52. Canvas
Com a tag canvas é possível criar gráficos,
games, aplicações web, etc.
57. Geolocation
Há três maneiras populares programa descobrir sua posição global:
Geolocalização IP
É o método usado pela maioria dos navegadores web em computadores. Através
de consultas whois e serviços de localização de IP, vai determinar a cidade ou
região em que você está.
Triangulação GPRS
Dispositivos conectados a uma rede de celulares podem determinar sua posição
pela triangulação das antenas GPRS próximas. É bem mais preciso que o método
baseado em IP, vai mostrar em que parte do bairro você está.
GPS
É o método mais preciso. Em condições ideais, a margem de erro é de apenas 5
metros.
58. Geolocation
navigator.geolocation.getCurrentPosition(showpos)
Onde showpos é uma função callback, que vai receber um objeto
de posicionamento. Veja um exemplo:
function showpos(position){
lat = position.coords.latitude
lon = position.coords.longitude
alert('Your position: '+lat+','+lon)
}