SlideShare uma empresa Scribd logo
1 de 8
Iniciando em HTML5
O HTML5 veio com a finalidade de preencher necessidades no desenvolvimento das
linguagens de marcação de texto. Necessidades estas que surgiram com o advento de
novas tecnologias e novos paradigmas e padrões. Hoje o HTML não pode simplesmente
ser organizado e bem visto pelos desenvolvedores, existem outros clientes que podem se
beneficiar desta nova arquitetura. Entre as diversas funcionalidade do HTML5, as
principais são: facilitar o desenvolvimento de paginas que estejam de acordo com os
fundamentos dos padrões web, melhorar a semântica das paginas para diversos clientes
e implementar novas funcionalidades.

Neste post vou tentar mostrar algumas novidades do HTML5, exibindo algumas
vantagens, novas tags, atributos, estilos e técnicas de desenvolvimento que facilitam o
que antigamente (ou atualmente) era ser feito com varias linhas de código e envolvendo
outras tecnologias.

Para começar vamos falar um pouco sobre as estruturas das paginas antigas e compara-
las com as que serão usadas futuramente.

Quando a parte HTML de uma pagina era desenvolvovida, a estrutura ficava quase
sempre da seguinte forma:


<divclass="principal">
   <divclass="header"></div>
   <divclass="nav"></div>
   <divclass="conteudo"></div>
   <divclass="footer"></div>

</div>

Reparem que tudo se baseava em torno de div’s (isso quando não se baseava em table =
S) e classes para mapear e fazer o reconhecimento de sessões da pagina. Esta forma de
desenvolvimento é bastante cabível e de certa forma consegue separar os tipos
de conteúdo, deixando a semântica do HTML relativamente organizada. No entanto
com a aplicação do HTML5 esta forma de desenvolvimento vai sofrer algumas
pequenas mudanças. Como já se sabe o HTML5 trouxe consigo algumas novas tags que
podem ajudar não somente o reconhecimento ou a organização ou a visibilidade de um
código HTML. Vejamos algumas novas tags em uma estrutura feita sobre a nova versão
desta linguagem:

<section>
   <header></header>
   <nav></nav>
   <article></article>
   <footer></footer>

</section>

Perceba que todos os nomes das tags sofreram alterações, entretanto a estrutura não.
O conteúdo da pagina não é organizada sobre div’s mas sim sobre uma divisão natural
feita pelas tags. Uma pergunta muito comum ao ver esta diferença é “Mas e daí, qual a
diferença entre isto e div’s?”. Bem, fora as varias funcionalidades que eu mostrarei logo
mais neste post ainda tem o fato de organizar de forma obrigatória e definitiva
a semântica em todos os aspectos. O que estou querendo dizer é que não somente os
desenvolvedores terão o prazer de mapear o código de forma bem mais simples
mastambem o CSS será feito de forma mais especifica e os sites de busca terão mais
facilidade para fazer o mapeamento das paginas.

Um exemplo, vamos supor que a forma de mapeamento do Google seja feita através dos
menus dos sites. Agora vamos supor que o AbasB já esteja em HTML5 e o menu seja
feito utilizando a tagnav. O Google pode se preocupar em começar o mapeamento
pelo conteúdo das tagsnav e fazer um mapeamento bem mais eficiente do que um site
em que o menu esteja dentro de div’s e listas tais quais o resto da pagina.

Bom, agora que já mostrei algumas vantagens das novas tags e estrutura do HTML5
vamos ver algumas novas funcionalidades mais a fundo.

A tagheader pode ser usada tanto na aplicação do header do site, conforme mostrado na
estrutura acima, como pode se usado para representar a header de outras sessões do site.
Por exemplo, o AbasB poderia utilizar a tagheader para guardar informações do
cabeçalho de um post como o titulo, a data de criação, o autor e alguns outros dados.
Vamos à um exemplo:

<article>
   <header>
      <hgroup>
          <h2>Titulo do Post</h2>
          <h3>Autor do Post</h3>
      <hgroup>
      <timedatetime=”2010-11-02 23:00:00”>02 de novembro de 2010</
time>
   </header>

</article>

Duas das tags acima ainda não foram apresentadas, mas não são menos importantes. A
taghgroup tem a finalidade de agrupar todas as tags de cabeçalho h*. A tag “time” como
o próprio nome diz tem a finalidade de armazenar valores de tempo como datas e hóras.

A tagnav pode ser usada para representar determinadas áreas de navegação de um site.
Dois exemplo simples são o menu e mapa do site que normalmente são feitos com
listas. A seguir um exemplo:

<spanstyle="font-size: medium;"><nav>
   <ul>
      <li><arel=”item1” href=”#”>item1</a></li>
      <li><arel=”item2” href=”#”>item2</a></li>
      <li><arel=”item3” href=”#”>item3</a></li>
      <li><arel=”item4” href=”#”>item4</a></li>
   </ul>

</nav></span>
Repare que dentro das ancoras existe um atributo chamado rel. Bem, este atributo
existe apenas para deixar explicito o conteúdo no qual a ancora esta sendo fazendo
referencia. Mais uma vez algo util para o mapeamento dos sistemas de busca, já que
eles podem passar de link em link e ter uma previa do conteúdo que aquela ancora
guarda.

Uma nova tag bastante interessante é a article. Ela permite marcar explicitamente em
que parte do seu HTML estão os artigos e conteúdos em geral. Esta tag foi utilizada
para ilustrar exemplos mais acima.

Deve se ter muito cuidado para não substituir <divclass=”conteudo”> por article.
Mesmo porque o conceito de “conteúdo” varia de desenvolvedor para desenvolvedor, ao
passo que o conceito da tagarticle é único.

Outra tag nova bastante inteligente é a aside. Esta visa guardar todos os links que
podem estar relacionados ao conteúdo principal da pagina ou mesmo ao conteúdo de um
artigo. É bem mais facil entender o funcionamento desta tag através de um exemplo:

<span style="font-size: medium;"><article>
   <!--CONTEUDO DO ARTIGO--->
</article>
<p>Conteudos relacionados:</p>
<aside>
   <ul>
      <li><a rel=” artigo2” href=”#”> artigo2</a></li>
      <li><a rel=” artigo3” href=”#”> artigo3</a></li>
      <li><a rel=” artigo4” href=”#”> artigo4</a></li>
      <li><a rel=” artigo5” href=”#”> artigo5</a></li>
   </ul>

</aside></span>

 Perceba que esta tag pode ser confundida com o uso da tagnav, embora suas
competências sejam nitidamente diferentes.

As tagsaudio e video foram provavelmente uma das mais esperadas pelos
desenvolvedores. Mas a verdade é que apesar de ter facilitado muito (muito mesmo!) a
inclusão destas midias em uma pagina a falta de customização pode acabar diminindo a
utilidade destas tags. Até porque não é dificil pegar a tag de video do YouTube, por
exemplo, e disponibilizar em uma pagina HTML. Mesmo assim a facilidade no uso
destas duas tagssão surpreendentes. Ambas possuem os atributos src e controls. A
primeira se referente ao caminho da musica ou video que a pagina irá rodar. O segundo
se refere ao controles que irão aparecer para que o video/audio possa ser gerenciado
pelo usuario. A tagaudio pode rodar arquivos no formato .mp3 e a tagvideo .webm,
.mp4 e .ogv. Estes provavelmente não são todos os formatos que estas tags suportam. A
medida que encontrar novos tipo de fontes que funcionem atualizo este post.

A ultimatag para ser tratada neste post é a tagfooter. Como o próprio nome diz esta tag
deve ser inserida no final das paginas do site. Geralmente representa o espaço que
contem informações como “Copyright”, um link para a home ou mapa do site.

                       Novas tags de formulario do HTML5 e CSS3
HTML5 e CSS3 trouxeram consigo varias melhorias para o gerenciamento de formularios.
Varios controles que antes eram feitos com a mistura de CSS, HTML e JavaScript já podem ser
substituidos por apenas um controle HTML. Os estilos de validação que eram feito com CSS e
inseridos com JavaScript já podem ser substituidos por estilos de validação via CSS.

Isso é possivel pois o HTML5 dividiu o <input type=”text”/> em vários elementos especificos e
criou outros controles que não existiam mas que eram improvisados. Algumas tags do HTML5
estão listas abaixo:

<input type="date" min="0001-01-01" max="2011-08-14" value="2010-08-14"/>

<input type="tel" placeholder="(XXX) XXX-XXXX" pattern="^(?d{3})?[-s]d{3}[-s]d{4}.*?$"
/>

<input type="color" />

<input type="number" step="1" min="-5" max="10" value="0" />

<input type="email" />

Perceba que na linha 1 o tipo do campo é date o que indica que o campo serve para receber
datas. Neste e em outros campos como o number (utilizado para trabalhar com números) é
possivel definir propriedades como min, max e value.

Na linha 2 o tipo do controle é tel, que significa que aquele campo serve para telefones. O
formato do telefone pode ser definido com o atributo pattern que recebe um regex e verifica
se o valor segue o padrão ali estabelecido. O atributo placeholder pode ser usado em outros
campos e serve para criar uma máscara para o respectivo campo.

Na linha 3 o campo é do tipo color, que como o proprio nome diz serve para validar cores. As
cores podem ser tanto em hexadecimal (#FFF) como descrito em ingles (red).

Outras tags importantes do HTML estão listas abaixo. São elas respectivamente:

        controle do tipo range;

        progressbar que visa informar que um determinado evento está ocorrendo;

        progressbar que informar quanto do tempo de execução de um evento falta para
        acabar.



<input type="range" min="0" max="100" step="1" value="10" />

<progress>working...</progress>

<progress value="75" max="100">3/4 complete</progress>

Já do lado do CSS dois novos seletores facilitam muito a estilização de controles de formulario.
Vale lembrar que nem de longe estas são todas as novas ferramentas que o HTML5 e CSS3
disponibilizam para controles de formulario. É apenas uma prévia para mostrar o basico e para
que saibam da existencia de ferramentas mais simples que fazem o trabalho pesado.

[required] { background-color: lightyellow; }

:invalid { background-color: #FF9; }

A primeira linha do trecho de código acima estiliza todos os elementos de formulário que não
podem sofrer submit com valor vazio. A pergunta é “como o css sabe quais controles
de formulário não podem ficar vazio?”. A resposta é simples, para que o seletor [required]
estilize todos os elementos que não podem estar vazios basta inserir nas tags HTML a
propriedade required. Dessa forma o CSS reconhece que aquele controle não pode estar vazio.

A segunda linha também contempla um novo seletor que estiliza todos os elemenetos
inválidos da pagina. Por exemplo, uma tag com a seguinte configuração <input type=”email” />
fica com a propriedade background-color igual a #ff9 até que o usuário escreva um e-mail
valido dentro da caixa de texto.

Veja que a mistura dos novos campos HTML5 com os novos elementos CSS3 é possivel
incrementar a validação e o gerenciamento do formulario de forma muito poderosa e simples.


Recursos interessantes do CSS3
Na verdade a pouco tempo o AbasB tinha um unico post com tudo de CSS3 e tudo de
HTML5. Faz pouco tempo decidi dividir melhor os temas para facilitar a busca e os
temas do assunto. Neste post tento passar dois elementos que a meu ver são
indispensáveis para quem pretende começar com CSS3.

- Colunas automaticas:

É muito comum em sites a necessidade da divisão de um container em diversas colunas
com o mesmo tamanho, afim de organizar textos, formularios, imagens ou outros
elementos HTML. Antes do surgimento do CSS3 era necessario a criação de classes
com o atributo floatdefinido com o valor left ou rightpara que as divsse organizem
conforme anecessidade. Apartir do CSS3 basta definir três atributos para que as colunas
sejam definidas dentro de um container.

.colunas {

    -webkit-column-count: 3;

    -webkit-column-rule: 1pxdashed#999;

    -webkit-column-gap: 20px;

}

Não vou perder tempo explicando cada atributo pois pelo nome já é possovel identificar
suas responsabilidades. Para visualizar as colunas basta associar a classe colunas a um
container e inserir conteudo. O conteudo inserido será divido de acordo com o
configurado na classe.
- Novos seletores do CSS3:

Este é um assunto extenso que exige um post inteiro. Por isso vou mostrar o que são os
seletores , com o intuito de ilustrar algumas das novas técnicas que visam aumentar o
controle e a produtividade do CSS. Para ver todos os novos seletores do CSS3 clique
aqui.

Os seletores são usados para definir e posteriormente associar classes a um elemento.
Os seletores mais usados são por tag, por classe e por ID. Mutios dos sites hoje utilizam
conceitos de herença e combinam os seletores de tag com classe ou ID.

.classe {}

#id {}

tag{}

tag.classe {}

.classe tag{}

Os novos seletores visam aumentar o controle e a produtividade das folhas de estilo e
dos elementos HTML. Um exemplo de novos seletores que já foram mostrados neste
post foi:

[required] { background-color: lightyellow; }

:invalid { background-color: #FF9; }

tabletr:nth-child(odd) { background: #999; }

Apartir do seletor da linha 2 é possivel adicionar estilo a todos os elementos invalidos
da pagina. Já com o seletor da linha 1 é possivel adicionar estilo em todos o elementos
que possuem o atributo required. O terceiro seletor acessa todos os elementos tr
impares que estão dentro da tagtable e adiciona uma cor de fundo diferenciada. Muito
usado para fazer a alternancia de cores nas linhas de uma tabela.




Borda arredondada, gradiente, sombriamento e espelhamento
no CSS3
Depois de tantos posts sobre CSS3 vamos a parte considerada por muitos a parte mais
interessante de toda a brincadeira. Como os novos atributos são tão intuitivos quanto os
antigos tentarei mostrar a maior quantidade possivel e de forma rapida.

Muitas das formas de desenvolvimento de layout exigiam a inserção de imagens para se
criar uma pagina com visual convidativo, com logo colorido, bordas arredondadas,
degrade, sombras em caixas e textos. Com CSS3 o uso de imagens pode ser reduzido
drasticamente devido a facilidade de se produzir efeitos visuais. Por consequencia as
paginas ficarão muito mais leves, farão menos requests no servidor e não terão mais o
efeito de carregar primeiro os elementos simples do HTML, depois as imagens.

Todos os códigos citados neste post estão dentro da tag<style> e fazem parte de uma
folha de estilo.

- Borda arredondada:

div{border-radius:15px; border:1px solid #000; }

O trecho de código acima arredonda as bordas de todas as div’sda pagina. Além disso
insere uma borda de 1 pixel que acompanha o novo formato da div. O elemento
responsavel pelo efeito é o border-radius que além de prover o estilo arredondado ainda
controla através do valor inserido o nivel da curvatura das bordas.

- Gradiente:

div {

    background: -webkit-gradient(linear, leftbottom, lefttop,

    from(#eee), color-stop(0.50, #fff),

    to(#eee), color-stop(0.50, #fff));

}

Este código insere um degrade de cima para baixo e de baixo para cima em todas as divs
do site, deixando centro da divbranca. É um código diferenciado se comparado com o
primeiro exemplo.

O elemento background recebe qual será o modelo do gradiente. Neste caso foi usado o
linear, no entanto existem outros tipo d gradiente que podem diversificar o visual. Além
do tipo é necessario configurar ainda a cor em que o degrade começa e em qual cor ele
vai parar, tanto de cima para baixo, como é possivel ver na linha 3, quando de baixo
para cima, como é possivel ver na linha 4. Neste caso ele vai de “azul” para “branco” de
forma linear.

- Sombra em caixas e textos:

div{

    /*sombra de texto*/

    text-shadow: #99902px5px;



    /*sombra de container*/

    -moz-box-shadow: 3px3px10px#666666;

    -webkit-box-shadow: 3px3px10px#666666;
box-shadow: 3px3px10px#666666;

}

O código acima adiciona efeito de sombra em todas as divs e em todos os caracteres que
estão dentro das divs. O elemento responsável pelo aombriamento de textos esta na
linha 3. Ele configura a cor, profundidade e lado que a sombra aparecerá. O trechos de
códigos das linhas 6 a 8 são os responsaveis por inserir sombra nas divs.

- Espelhamento de container:

div {

   -webkit-box-reflect: below10px-webkit-gradient(linear, lefttop,
leftbottom, from(transparent), color-stop(0.3, transparent),
to(rgba(255,255,255,0.8)));

}

O código acima insere espelhamento nos containers. É na linha 1 que se configura qual
será a posição e o tipo de reflexo. A linha 2 determina qual será a cor e a opacidade que
o reflexo terá no inicio e fim.

Para maiores informação (muito maiores) acessem este site espetacular.

Mais conteúdo relacionado

Mais procurados

Mais procurados (19)

Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01   Curso de HTML5 - Aula 01
Curso de HTML5 - Aula 01
 
Html5 - Notas de aula
Html5 - Notas de aulaHtml5 - Notas de aula
Html5 - Notas de aula
 
WebDesign AULA 2: Introdução a HTML
WebDesign AULA 2: Introdução a HTMLWebDesign AULA 2: Introdução a HTML
WebDesign AULA 2: Introdução a HTML
 
Html aula 1
Html aula 1Html aula 1
Html aula 1
 
HTML Formatando Textos
HTML Formatando TextosHTML Formatando Textos
HTML Formatando Textos
 
Introdução a HTML5
Introdução a HTML5Introdução a HTML5
Introdução a HTML5
 
E-book sobre HTML 5 (Devmedia)
E-book sobre HTML 5 (Devmedia)E-book sobre HTML 5 (Devmedia)
E-book sobre HTML 5 (Devmedia)
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
 
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEBHTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
HTML5 - UM GUIA DE REFERÊNCIA PARA DESENVOLVEDORES WEB
 
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
 
Apostila html,xhtml e css
Apostila html,xhtml e cssApostila html,xhtml e css
Apostila html,xhtml e css
 
Curso html
Curso htmlCurso html
Curso html
 
Mini curso html5 slides
Mini curso html5   slidesMini curso html5   slides
Mini curso html5 slides
 
HTML Principios Básicos
HTML Principios BásicosHTML Principios Básicos
HTML Principios Básicos
 
Html Básico
Html BásicoHtml Básico
Html Básico
 
Css tutorial
Css tutorialCss tutorial
Css tutorial
 
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
Road Show TI SENAC - HTML5 & CSS 3.0 - O que esperar da próxima web?
 
Curso HTML e CSS
Curso HTML e CSSCurso HTML e CSS
Curso HTML e CSS
 
Html5 Aula 4
Html5 Aula 4Html5 Aula 4
Html5 Aula 4
 

Destaque

Inspirational Images
Inspirational ImagesInspirational Images
Inspirational Imagesbluehammock
 
Projetos e execução de jardins
Projetos e execução de jardinsProjetos e execução de jardins
Projetos e execução de jardinsGabriel Severo
 
Projetos e execução de jardins
Projetos e execução de jardinsProjetos e execução de jardins
Projetos e execução de jardinsGabriel Severo
 
Patagonia Argentina
Patagonia   ArgentinaPatagonia   Argentina
Patagonia Argentinacris
 
MARGARETA Menu voor facebook FLYER op 11 mei 2014
MARGARETA Menu voor facebook FLYER  op  11 mei 2014MARGARETA Menu voor facebook FLYER  op  11 mei 2014
MARGARETA Menu voor facebook FLYER op 11 mei 2014yolande verbeeck
 
Delhi Auto Expo
Delhi Auto ExpoDelhi Auto Expo
Delhi Auto Expotompatrick
 
Universidade federal fluminense
Universidade federal fluminense Universidade federal fluminense
Universidade federal fluminense cen3
 
22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเราพัน พัน
 
Personalidades Assassinas
Personalidades AssassinasPersonalidades Assassinas
Personalidades AssassinasEspaço Holos
 
Karina parte II
Karina parte IIKarina parte II
Karina parte IIAdrinic
 
Union europea
Union europeaUnion europea
Union europeasacaideas
 
No todos Creerán
No todos CreeránNo todos Creerán
No todos Creerániccjcv
 
Dia mundial da água
Dia mundial da águaDia mundial da água
Dia mundial da águatajan10
 
O impacto do twitter no jornal folha de s. paulo
O impacto do twitter no jornal folha de s. pauloO impacto do twitter no jornal folha de s. paulo
O impacto do twitter no jornal folha de s. paulojoyceeline
 

Destaque (20)

Inspirational Images
Inspirational ImagesInspirational Images
Inspirational Images
 
Projetos e execução de jardins
Projetos e execução de jardinsProjetos e execução de jardins
Projetos e execução de jardins
 
O currículo Multirreferncial
O currículo MultirreferncialO currículo Multirreferncial
O currículo Multirreferncial
 
Lance a Lance
Lance a LanceLance a Lance
Lance a Lance
 
Projetos e execução de jardins
Projetos e execução de jardinsProjetos e execução de jardins
Projetos e execução de jardins
 
Fundamentos de diseno
Fundamentos de disenoFundamentos de diseno
Fundamentos de diseno
 
Patagonia Argentina
Patagonia   ArgentinaPatagonia   Argentina
Patagonia Argentina
 
MARGARETA Menu voor facebook FLYER op 11 mei 2014
MARGARETA Menu voor facebook FLYER  op  11 mei 2014MARGARETA Menu voor facebook FLYER  op  11 mei 2014
MARGARETA Menu voor facebook FLYER op 11 mei 2014
 
Delhi Auto Expo
Delhi Auto ExpoDelhi Auto Expo
Delhi Auto Expo
 
Universidade federal fluminense
Universidade federal fluminense Universidade federal fluminense
Universidade federal fluminense
 
Nel fotos superbes
Nel fotos superbes Nel fotos superbes
Nel fotos superbes
 
22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
22ประชาคมอาเซียนมีผลอย่างไรต่อชีวิตของเรา
 
Personalidades Assassinas
Personalidades AssassinasPersonalidades Assassinas
Personalidades Assassinas
 
Karina parte II
Karina parte IIKarina parte II
Karina parte II
 
Union europea
Union europeaUnion europea
Union europea
 
No todos Creerán
No todos CreeránNo todos Creerán
No todos Creerán
 
Dia mundial da água
Dia mundial da águaDia mundial da água
Dia mundial da água
 
DPP Logo Comps Binder1
DPP Logo Comps Binder1DPP Logo Comps Binder1
DPP Logo Comps Binder1
 
Photos folles
Photos follesPhotos folles
Photos folles
 
O impacto do twitter no jornal folha de s. paulo
O impacto do twitter no jornal folha de s. pauloO impacto do twitter no jornal folha de s. paulo
O impacto do twitter no jornal folha de s. paulo
 

Semelhante a Iniciando em html5 seleção gustavo

Semelhante a Iniciando em html5 seleção gustavo (20)

Iniciandoemhtml5 seleogustavo-121106173712-phpapp02
Iniciandoemhtml5 seleogustavo-121106173712-phpapp02Iniciandoemhtml5 seleogustavo-121106173712-phpapp02
Iniciandoemhtml5 seleogustavo-121106173712-phpapp02
 
HTML Básico
HTML BásicoHTML Básico
HTML Básico
 
Html5 primeiros passos
Html5 primeiros passosHtml5 primeiros passos
Html5 primeiros passos
 
Html5 em 15 minutos
Html5 em 15 minutosHtml5 em 15 minutos
Html5 em 15 minutos
 
HTML5
HTML5HTML5
HTML5
 
HTML5
HTML5HTML5
HTML5
 
HTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdfHTML+&+CSS++Fundamentos.pdf
HTML+&+CSS++Fundamentos.pdf
 
Html5 e css3
Html5 e css3Html5 e css3
Html5 e css3
 
Html completo
Html completoHtml completo
Html completo
 
Aula 1 programação web i
Aula 1   programação web iAula 1   programação web i
Aula 1 programação web i
 
Aula 1 programação web i
Aula 1   programação web iAula 1   programação web i
Aula 1 programação web i
 
E-Book de estudos
E-Book de estudosE-Book de estudos
E-Book de estudos
 
Html5 em 15_minutos
Html5 em 15_minutosHtml5 em 15_minutos
Html5 em 15_minutos
 
Manual curso php
Manual curso phpManual curso php
Manual curso php
 
Manual curso php
Manual curso phpManual curso php
Manual curso php
 
Apresentando o HTML
Apresentando o HTMLApresentando o HTML
Apresentando o HTML
 
AULA 01 - Conceitos de HTML.pptx
AULA 01 - Conceitos de HTML.pptxAULA 01 - Conceitos de HTML.pptx
AULA 01 - Conceitos de HTML.pptx
 
Criando e Usando Helpers
Criando e Usando HelpersCriando e Usando Helpers
Criando e Usando Helpers
 
Criação de sites
Criação de sitesCriação de sites
Criação de sites
 
Programação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com DojoProgramação Web com Zend Framework e Ajax com Dojo
Programação Web com Zend Framework e Ajax com Dojo
 

Iniciando em html5 seleção gustavo

  • 1. Iniciando em HTML5 O HTML5 veio com a finalidade de preencher necessidades no desenvolvimento das linguagens de marcação de texto. Necessidades estas que surgiram com o advento de novas tecnologias e novos paradigmas e padrões. Hoje o HTML não pode simplesmente ser organizado e bem visto pelos desenvolvedores, existem outros clientes que podem se beneficiar desta nova arquitetura. Entre as diversas funcionalidade do HTML5, as principais são: facilitar o desenvolvimento de paginas que estejam de acordo com os fundamentos dos padrões web, melhorar a semântica das paginas para diversos clientes e implementar novas funcionalidades. Neste post vou tentar mostrar algumas novidades do HTML5, exibindo algumas vantagens, novas tags, atributos, estilos e técnicas de desenvolvimento que facilitam o que antigamente (ou atualmente) era ser feito com varias linhas de código e envolvendo outras tecnologias. Para começar vamos falar um pouco sobre as estruturas das paginas antigas e compara- las com as que serão usadas futuramente. Quando a parte HTML de uma pagina era desenvolvovida, a estrutura ficava quase sempre da seguinte forma: <divclass="principal"> <divclass="header"></div> <divclass="nav"></div> <divclass="conteudo"></div> <divclass="footer"></div> </div> Reparem que tudo se baseava em torno de div’s (isso quando não se baseava em table = S) e classes para mapear e fazer o reconhecimento de sessões da pagina. Esta forma de desenvolvimento é bastante cabível e de certa forma consegue separar os tipos de conteúdo, deixando a semântica do HTML relativamente organizada. No entanto com a aplicação do HTML5 esta forma de desenvolvimento vai sofrer algumas pequenas mudanças. Como já se sabe o HTML5 trouxe consigo algumas novas tags que podem ajudar não somente o reconhecimento ou a organização ou a visibilidade de um código HTML. Vejamos algumas novas tags em uma estrutura feita sobre a nova versão desta linguagem: <section> <header></header> <nav></nav> <article></article> <footer></footer> </section> Perceba que todos os nomes das tags sofreram alterações, entretanto a estrutura não. O conteúdo da pagina não é organizada sobre div’s mas sim sobre uma divisão natural feita pelas tags. Uma pergunta muito comum ao ver esta diferença é “Mas e daí, qual a
  • 2. diferença entre isto e div’s?”. Bem, fora as varias funcionalidades que eu mostrarei logo mais neste post ainda tem o fato de organizar de forma obrigatória e definitiva a semântica em todos os aspectos. O que estou querendo dizer é que não somente os desenvolvedores terão o prazer de mapear o código de forma bem mais simples mastambem o CSS será feito de forma mais especifica e os sites de busca terão mais facilidade para fazer o mapeamento das paginas. Um exemplo, vamos supor que a forma de mapeamento do Google seja feita através dos menus dos sites. Agora vamos supor que o AbasB já esteja em HTML5 e o menu seja feito utilizando a tagnav. O Google pode se preocupar em começar o mapeamento pelo conteúdo das tagsnav e fazer um mapeamento bem mais eficiente do que um site em que o menu esteja dentro de div’s e listas tais quais o resto da pagina. Bom, agora que já mostrei algumas vantagens das novas tags e estrutura do HTML5 vamos ver algumas novas funcionalidades mais a fundo. A tagheader pode ser usada tanto na aplicação do header do site, conforme mostrado na estrutura acima, como pode se usado para representar a header de outras sessões do site. Por exemplo, o AbasB poderia utilizar a tagheader para guardar informações do cabeçalho de um post como o titulo, a data de criação, o autor e alguns outros dados. Vamos à um exemplo: <article> <header> <hgroup> <h2>Titulo do Post</h2> <h3>Autor do Post</h3> <hgroup> <timedatetime=”2010-11-02 23:00:00”>02 de novembro de 2010</ time> </header> </article> Duas das tags acima ainda não foram apresentadas, mas não são menos importantes. A taghgroup tem a finalidade de agrupar todas as tags de cabeçalho h*. A tag “time” como o próprio nome diz tem a finalidade de armazenar valores de tempo como datas e hóras. A tagnav pode ser usada para representar determinadas áreas de navegação de um site. Dois exemplo simples são o menu e mapa do site que normalmente são feitos com listas. A seguir um exemplo: <spanstyle="font-size: medium;"><nav> <ul> <li><arel=”item1” href=”#”>item1</a></li> <li><arel=”item2” href=”#”>item2</a></li> <li><arel=”item3” href=”#”>item3</a></li> <li><arel=”item4” href=”#”>item4</a></li> </ul> </nav></span>
  • 3. Repare que dentro das ancoras existe um atributo chamado rel. Bem, este atributo existe apenas para deixar explicito o conteúdo no qual a ancora esta sendo fazendo referencia. Mais uma vez algo util para o mapeamento dos sistemas de busca, já que eles podem passar de link em link e ter uma previa do conteúdo que aquela ancora guarda. Uma nova tag bastante interessante é a article. Ela permite marcar explicitamente em que parte do seu HTML estão os artigos e conteúdos em geral. Esta tag foi utilizada para ilustrar exemplos mais acima. Deve se ter muito cuidado para não substituir <divclass=”conteudo”> por article. Mesmo porque o conceito de “conteúdo” varia de desenvolvedor para desenvolvedor, ao passo que o conceito da tagarticle é único. Outra tag nova bastante inteligente é a aside. Esta visa guardar todos os links que podem estar relacionados ao conteúdo principal da pagina ou mesmo ao conteúdo de um artigo. É bem mais facil entender o funcionamento desta tag através de um exemplo: <span style="font-size: medium;"><article> <!--CONTEUDO DO ARTIGO---> </article> <p>Conteudos relacionados:</p> <aside> <ul> <li><a rel=” artigo2” href=”#”> artigo2</a></li> <li><a rel=” artigo3” href=”#”> artigo3</a></li> <li><a rel=” artigo4” href=”#”> artigo4</a></li> <li><a rel=” artigo5” href=”#”> artigo5</a></li> </ul> </aside></span> Perceba que esta tag pode ser confundida com o uso da tagnav, embora suas competências sejam nitidamente diferentes. As tagsaudio e video foram provavelmente uma das mais esperadas pelos desenvolvedores. Mas a verdade é que apesar de ter facilitado muito (muito mesmo!) a inclusão destas midias em uma pagina a falta de customização pode acabar diminindo a utilidade destas tags. Até porque não é dificil pegar a tag de video do YouTube, por exemplo, e disponibilizar em uma pagina HTML. Mesmo assim a facilidade no uso destas duas tagssão surpreendentes. Ambas possuem os atributos src e controls. A primeira se referente ao caminho da musica ou video que a pagina irá rodar. O segundo se refere ao controles que irão aparecer para que o video/audio possa ser gerenciado pelo usuario. A tagaudio pode rodar arquivos no formato .mp3 e a tagvideo .webm, .mp4 e .ogv. Estes provavelmente não são todos os formatos que estas tags suportam. A medida que encontrar novos tipo de fontes que funcionem atualizo este post. A ultimatag para ser tratada neste post é a tagfooter. Como o próprio nome diz esta tag deve ser inserida no final das paginas do site. Geralmente representa o espaço que contem informações como “Copyright”, um link para a home ou mapa do site. Novas tags de formulario do HTML5 e CSS3
  • 4. HTML5 e CSS3 trouxeram consigo varias melhorias para o gerenciamento de formularios. Varios controles que antes eram feitos com a mistura de CSS, HTML e JavaScript já podem ser substituidos por apenas um controle HTML. Os estilos de validação que eram feito com CSS e inseridos com JavaScript já podem ser substituidos por estilos de validação via CSS. Isso é possivel pois o HTML5 dividiu o <input type=”text”/> em vários elementos especificos e criou outros controles que não existiam mas que eram improvisados. Algumas tags do HTML5 estão listas abaixo: <input type="date" min="0001-01-01" max="2011-08-14" value="2010-08-14"/> <input type="tel" placeholder="(XXX) XXX-XXXX" pattern="^(?d{3})?[-s]d{3}[-s]d{4}.*?$" /> <input type="color" /> <input type="number" step="1" min="-5" max="10" value="0" /> <input type="email" /> Perceba que na linha 1 o tipo do campo é date o que indica que o campo serve para receber datas. Neste e em outros campos como o number (utilizado para trabalhar com números) é possivel definir propriedades como min, max e value. Na linha 2 o tipo do controle é tel, que significa que aquele campo serve para telefones. O formato do telefone pode ser definido com o atributo pattern que recebe um regex e verifica se o valor segue o padrão ali estabelecido. O atributo placeholder pode ser usado em outros campos e serve para criar uma máscara para o respectivo campo. Na linha 3 o campo é do tipo color, que como o proprio nome diz serve para validar cores. As cores podem ser tanto em hexadecimal (#FFF) como descrito em ingles (red). Outras tags importantes do HTML estão listas abaixo. São elas respectivamente: controle do tipo range; progressbar que visa informar que um determinado evento está ocorrendo; progressbar que informar quanto do tempo de execução de um evento falta para acabar. <input type="range" min="0" max="100" step="1" value="10" /> <progress>working...</progress> <progress value="75" max="100">3/4 complete</progress> Já do lado do CSS dois novos seletores facilitam muito a estilização de controles de formulario. Vale lembrar que nem de longe estas são todas as novas ferramentas que o HTML5 e CSS3
  • 5. disponibilizam para controles de formulario. É apenas uma prévia para mostrar o basico e para que saibam da existencia de ferramentas mais simples que fazem o trabalho pesado. [required] { background-color: lightyellow; } :invalid { background-color: #FF9; } A primeira linha do trecho de código acima estiliza todos os elementos de formulário que não podem sofrer submit com valor vazio. A pergunta é “como o css sabe quais controles de formulário não podem ficar vazio?”. A resposta é simples, para que o seletor [required] estilize todos os elementos que não podem estar vazios basta inserir nas tags HTML a propriedade required. Dessa forma o CSS reconhece que aquele controle não pode estar vazio. A segunda linha também contempla um novo seletor que estiliza todos os elemenetos inválidos da pagina. Por exemplo, uma tag com a seguinte configuração <input type=”email” /> fica com a propriedade background-color igual a #ff9 até que o usuário escreva um e-mail valido dentro da caixa de texto. Veja que a mistura dos novos campos HTML5 com os novos elementos CSS3 é possivel incrementar a validação e o gerenciamento do formulario de forma muito poderosa e simples. Recursos interessantes do CSS3 Na verdade a pouco tempo o AbasB tinha um unico post com tudo de CSS3 e tudo de HTML5. Faz pouco tempo decidi dividir melhor os temas para facilitar a busca e os temas do assunto. Neste post tento passar dois elementos que a meu ver são indispensáveis para quem pretende começar com CSS3. - Colunas automaticas: É muito comum em sites a necessidade da divisão de um container em diversas colunas com o mesmo tamanho, afim de organizar textos, formularios, imagens ou outros elementos HTML. Antes do surgimento do CSS3 era necessario a criação de classes com o atributo floatdefinido com o valor left ou rightpara que as divsse organizem conforme anecessidade. Apartir do CSS3 basta definir três atributos para que as colunas sejam definidas dentro de um container. .colunas { -webkit-column-count: 3; -webkit-column-rule: 1pxdashed#999; -webkit-column-gap: 20px; } Não vou perder tempo explicando cada atributo pois pelo nome já é possovel identificar suas responsabilidades. Para visualizar as colunas basta associar a classe colunas a um container e inserir conteudo. O conteudo inserido será divido de acordo com o configurado na classe.
  • 6. - Novos seletores do CSS3: Este é um assunto extenso que exige um post inteiro. Por isso vou mostrar o que são os seletores , com o intuito de ilustrar algumas das novas técnicas que visam aumentar o controle e a produtividade do CSS. Para ver todos os novos seletores do CSS3 clique aqui. Os seletores são usados para definir e posteriormente associar classes a um elemento. Os seletores mais usados são por tag, por classe e por ID. Mutios dos sites hoje utilizam conceitos de herença e combinam os seletores de tag com classe ou ID. .classe {} #id {} tag{} tag.classe {} .classe tag{} Os novos seletores visam aumentar o controle e a produtividade das folhas de estilo e dos elementos HTML. Um exemplo de novos seletores que já foram mostrados neste post foi: [required] { background-color: lightyellow; } :invalid { background-color: #FF9; } tabletr:nth-child(odd) { background: #999; } Apartir do seletor da linha 2 é possivel adicionar estilo a todos os elementos invalidos da pagina. Já com o seletor da linha 1 é possivel adicionar estilo em todos o elementos que possuem o atributo required. O terceiro seletor acessa todos os elementos tr impares que estão dentro da tagtable e adiciona uma cor de fundo diferenciada. Muito usado para fazer a alternancia de cores nas linhas de uma tabela. Borda arredondada, gradiente, sombriamento e espelhamento no CSS3 Depois de tantos posts sobre CSS3 vamos a parte considerada por muitos a parte mais interessante de toda a brincadeira. Como os novos atributos são tão intuitivos quanto os antigos tentarei mostrar a maior quantidade possivel e de forma rapida. Muitas das formas de desenvolvimento de layout exigiam a inserção de imagens para se criar uma pagina com visual convidativo, com logo colorido, bordas arredondadas, degrade, sombras em caixas e textos. Com CSS3 o uso de imagens pode ser reduzido drasticamente devido a facilidade de se produzir efeitos visuais. Por consequencia as
  • 7. paginas ficarão muito mais leves, farão menos requests no servidor e não terão mais o efeito de carregar primeiro os elementos simples do HTML, depois as imagens. Todos os códigos citados neste post estão dentro da tag<style> e fazem parte de uma folha de estilo. - Borda arredondada: div{border-radius:15px; border:1px solid #000; } O trecho de código acima arredonda as bordas de todas as div’sda pagina. Além disso insere uma borda de 1 pixel que acompanha o novo formato da div. O elemento responsavel pelo efeito é o border-radius que além de prover o estilo arredondado ainda controla através do valor inserido o nivel da curvatura das bordas. - Gradiente: div { background: -webkit-gradient(linear, leftbottom, lefttop, from(#eee), color-stop(0.50, #fff), to(#eee), color-stop(0.50, #fff)); } Este código insere um degrade de cima para baixo e de baixo para cima em todas as divs do site, deixando centro da divbranca. É um código diferenciado se comparado com o primeiro exemplo. O elemento background recebe qual será o modelo do gradiente. Neste caso foi usado o linear, no entanto existem outros tipo d gradiente que podem diversificar o visual. Além do tipo é necessario configurar ainda a cor em que o degrade começa e em qual cor ele vai parar, tanto de cima para baixo, como é possivel ver na linha 3, quando de baixo para cima, como é possivel ver na linha 4. Neste caso ele vai de “azul” para “branco” de forma linear. - Sombra em caixas e textos: div{ /*sombra de texto*/ text-shadow: #99902px5px; /*sombra de container*/ -moz-box-shadow: 3px3px10px#666666; -webkit-box-shadow: 3px3px10px#666666;
  • 8. box-shadow: 3px3px10px#666666; } O código acima adiciona efeito de sombra em todas as divs e em todos os caracteres que estão dentro das divs. O elemento responsável pelo aombriamento de textos esta na linha 3. Ele configura a cor, profundidade e lado que a sombra aparecerá. O trechos de códigos das linhas 6 a 8 são os responsaveis por inserir sombra nas divs. - Espelhamento de container: div { -webkit-box-reflect: below10px-webkit-gradient(linear, lefttop, leftbottom, from(transparent), color-stop(0.3, transparent), to(rgba(255,255,255,0.8))); } O código acima insere espelhamento nos containers. É na linha 1 que se configura qual será a posição e o tipo de reflexo. A linha 2 determina qual será a cor e a opacidade que o reflexo terá no inicio e fim. Para maiores informação (muito maiores) acessem este site espetacular.