HTML5_CSS3

April 13, 2018 | Author: itatiano | Category: Xhtml, Html, Hypertext Transfer Protocol, Java Script, Html5
Share Embed Donate


Short Description

llll...

Description

HTML5 e CSS3

Index Capítulo 1: Web 1.1 História 1.2 Timeline 1.3 Google em 1997 1.4 Camadas 1.5 Front-end 1.6 Back-end 1.7 Requsições 1.8 Integrações EP: Integrações 1.8 Domínio 1.9 Hospedagem 1.10 Página HTML 1.11 Versões HTML 1.12 Versões CSS 1.13 Linguagens de Progamação 1.14 Padrões HTML 1.15 Navegadores EP: Navegadores 1.16 Engines 1.17 Engines Timeline 1.18 Browsers Timeline 1.19 Cross-browser Capitulo 2: Introdução à Linguagem 2.1 Editores de Texto e IDE 2.2 Sublime Text EP: Sublime Text 2.3 HTML 2.4 XHTML 2.5 XML 2.6 Tags 2.7 Estrutura Básica HTML 2.9 Indentação 2.9.1 Código sem Indentação 2.9.2 Código com Indentação 1

EP: Tags 2.10 Comentários EP: Comentários 2.11 Documentação Online Capítulo 3: Elementos e Atributos 3.1 Conceito 3.2 Elementos EP: Elementos 3.3 Atributos 3.4 Atributos Globais 3.5 Elementos e Atributos EP: Elementos e Atributos 3.6 Estrutura HTML 3.7 DOCTYPE EP: Estrutura HTML 3.8 Estrutura Básica HTML 3.9 Interpretação do Navegador Capítulo 4: Tags de Cabeçalho 4.1 4.1.1 4.1.2 4.1.2.1 Atributo name EP: 4.1.2.2 Demais Atributos de 4.1.2.3 Atributo http-equiv EP: http-equiv 4.1.2.4 Atributo charset 4.1.2.5 Encoding 4.1.2.6 ISO e UTF EP: Econding 4.1.2.7 Entidades de Encoding EP: Entidades de Encoding 4.1.3 EP: 4.1.4 EP: 4.1.5 EP: 2

4.1.6 EP: Capítulo 5: Tags de Exibição 5.1 Sobre 5.2 Block & Inline 5.2.1 Block 5.2.2 Inline 5.3 5.4 ... EP: ... 5.5 EP: 5.6 5.7 5.8 5.9 5.10 EP: Textos 5.11 EP: 5.12 EP: 5.13 Listas 5.13.1 5.13.2 5.13.3 EP: Listas 5.14 EP: 5.15 5.15.1 Navegação 5.15.2 Âncora 5.15.3 target EP: Capítulo 6: Tags Semânticas 6.1 Sobre 6.2 Tags 6.2.1 3

6.2.2 6.2.3 6.2.4 EP: Tags Semânticas Capítulo 7: Tags de Formulário 7.1 Formulários 7.2 EP: 7.3 Principais Elementos 7.4 EP: 7.5 EP: 7.6 EP: 7.7 EP: 7.8 EP: Capítulo 8: Novos Tipos de Formulário 8.1 Novos Tipos 8.2 Suporte dos Navegadores 8.3 Vantagens do Uso EP: Novos Tipos Capítulo 9: Conceitos de Requisições HTTP 9.1 Front-end & Back-end 9.2 Requisição 9.3 Header 9.4 URL Encoding EP: URL Encoding 9.5 Serviços 9.6 Caixa Preta 9.7 REST 9.8 Métodos 9.9 GET EP: GET 9.10 POST 9.11 Segurança 4

9.12 Ferramentas Capítulo 10: Formulários HTML 10.1 Métodos vs Formulários 10.2 Objeto do Formulário 10.3 10.4 method 10.5 name EP: Objeto do Formulário Capítulo 11: Validação 11.1 Papel do Front-end 11.3 Validação 11.3.1 Validações mais Comuns 11.3.2 Validação HTML5 11.3.2.1 Atributos de Validação 11.3.2.2 Tipos que Validam EP: Validação 11.3.2.3 Customização Capítulo 12: Recursos Externos 12.1 EP: 12.2 EP: 12.3 EP: 12.4 Considerações EP: Considerações Capítulo 13: Mídias HTML5 13.1 Áudio 13.1.1 Suporte dos Navegadores 13.1.2 Arquivos de Áudio 13.1.3 EP: 13.1.4 EP: 13.2 Vídeo 13.2.1 Suporte dos Navegadores 13.2.2 Arquivos de Vídeo 13.2.3 5

EP: Capítulo 14: SVG 14.1 Visão Geral 14.2 Formato XML 14.2.1 Desmenbrando SVG 14.3 Usando SVG EP: SVG Capítulo 15: Tabela 15.1 15.2 Criando Tabelas EP: 15.3 Email Marketing 15.3.1 Regras Essenciais EP: Email Marketing Capítulo 16: Fundamentos CSS 16.1 CSS 16.2 Reutilização de Estilos 16.3 Sintaxe 16.4 Cometários Capítulo 17: Seletores 17.1 Element Selector EP: Element Selector 17.2 id Selector EP: id Selector 17.3 Class Selector EP: Class Selector 17.4 Universal Selector EP: Universal Selector 17.5 Declaração de Seletores 17.6 Combinando Seletores EP: Combinando Seletores Capítulo 18: Precedência CSS 18.1 Nomenclatura de Vínculo 18.2 Precedência CSS EP: Precedência CSS 18.3 Execução de Precedência EP: Execução de Precedência Capítulo 19: Seletores Avançados 6

19.1 Hierarquia HTML 19.1.1 Descendant Selector EP: Descendant Selector 19.1.2 Child Selector EP: Child Selector 19.1.3 Adjacent Sibling Selector EP: Adjacent SIbling Selector 19.1.4 General Sibling Selector EP: General Sibling Selector 19.1.5 Consolidado dos Seletores Hierárquicos 19.2 Atributos HTML 19.2.1 Attribute Selector EP: Attribute Selector 19.2.1 Attribute Selector (cont.) EP: Attribute Selector (cont.) 19.3 Pseudo-class EP: Pseudo-class (link) 19.3 Pseudo-class (cont.) EP: Pseudo-class (form) 19.3 Pseudo-class (cont.) EP: Pseudo-class (others) 19.4 Pseudo-class Avançado EP: Pseudo-class Avançado 19.5 Peseudo-elements EP: Pseudo-elements 19.6 Vendor Properties Capítulo 20: Cores CSS 20.1 Cores 20.2 Hexadecimal 20.3 Web Safe Colors 20.4 RGB 20.5 RGBA 20.6 HSL 20.7 HSLA Capítulo 21: Fontes 21.1 Sobre 21.2 font-family 21.3 Fontes não Carregadas 7

EP: font-family 21.4 Web Safe Fonts 21.5 Sans-serif vs Serif 21.6 Proportional vs Monospace 21.7 Fontes Carregadas 21.8 @font-face EP: @font-face Capítulo 22: Propriedades CSS 22.1 Unidades de Medida CSS 22.2 Propriedades CSS 22.3 Valor das Propriedades 22.4 Shorthand EP: Propriedades CSS 22.5 overflow 22.6 background 22.6.1 background-color EP: background-color 22.6.2 background-clip EP: background-clip 22.6.3 background-image EP: background-image 22.6.4 background-repeat EP: background-repeat 22.6.5 background-position EP: background-position 22.6.6 background-size EP: background-size 22.6.7 background-attachment EP: background-attachment 22.6.8 background-origin 22.7 border 22.7.1 Shorthand Border 22.7.2 border-style 22.7.3 CSS3 Border EP: border 22.8 padding EP: padding 22.9 margin 8

EP: margin 22.10 Texto 22.10.1 CSS3 Text EP: Texto 22.11 list-style 22.11.1 list-style-type 22.11.2 list-style-position 22.11.3 list-style-image EP: list-style 22.12 Colunas EP: Colunas Capítulo 23: At Rules 23.1 Sobre 23.2 Principais 23.3 @charset 23.4 @import EP: @import 23.5 @font-face 23.5.1 Suporte de Fontes EP: @font-face 23.6 @media EP: @media Capítulo 24: Box Model 24.1 Sobre 24.2 Áreas 24.3 Espaçamento do Conteúdo 24.4 Largura e Altura EP: Tamanho do Elemento 24.5 CSS Reset EP: CSS Reset Capítulo 25: Posicionamento 25.1 Dimensões 25.1.1 Valores das Dimensões 25.1.2 Propriedades de Dimensões 25.2 display 25.2.1 inline vs block EP: inline vs block 25.2.2 Modificando a Exibição 9

EP: Modificando a Exibição 25.2.3 Removendo da Exibição 25.2.4 Visibilidade EP: Exibição vs Visibilidade 25.3 position 25.3.1 static EP: static 25.3.2 relative EP: relative 25.3.3 absolute EP: absolute 25.3.4 fixed EP: fixed 25.3.5 z-index EP: z-index 25.3.6 Ancorando Elementos EP: Ancorando Elementos 25.4 Flutuando Elementos 25.4.1 float EP: float 25.4.2 clear EP: clear 25.4.3 Flutuação vs Proximidade EP: Flutuação vs Proximidade 25.4.4 Clearfix EP: Clearfix 25.5 Alinhamento 25.6 Centralizando EP: Centralizando 25.7 Outras Técnicas EP: Outras Técnicas Capítulo 26: Tipos de Layout 26.1 Fixo EP: Fixo 26.2 Líquido EP: Líquido 26.3 Híbrido EP: Híbrido 10

26.4 Responsivo EP: Responsivo Capítulo 27: Layout Responsivo 27.1 Sobre 27.2 Media Query 27.2.3 Media Type 27.2.4 Media Features EP: Media Query 27.3 Operadores Lógicos 27.3.1 and 27.3.2 not 27.3.3 only 27.4 Instrução Completa EP: Operadores Lógicos

11

12

Capítulo 1: Web 1.1

História



Necessidade de comunicação militar



Internet vem do conceito de computadores globais interligados ○

Existe o termo intranet o qual refere-se a uma rede de computadores fechada interligada



1.2

World Wide Web, é criado para facilitar a comunicação e integração na rede

Timeline



60 à 70: guerra fria dá origem às redes



70 à 80: surge o termo internet



80 à 90: criadas as grandes redes de computadores



90 à 00: "boom" world wide web



00 à atualmente: web 2.0 e 3.0

13

1.3

Google em 1997

1.4

Camadas

14

1.5

Front-end



Também chamado de "client-side"



Na web é composto por páginas HTML





+CSS



+JavaScript



+ Recursos adicionais (imagens, fontes, etc)

Sua principal função e exibir dados e enviá-los para o servidor quando necessário





1.6 ●



Nunca deve lidar com regras de negócio ○

Apenas envia e recebe dados através de requisições HTTP



Não acessa banco de dados diretamente



Baixa segurança

Necessita de um servidor ○

Hospeda o site



Gerencia as requisições recebidas pelos serviços web



Lida com as regras de negócio

Back-end Disponibiliza os serviços web ○

Lida com as requisições HTTP



Recebe e envia dados



Gerencia as regras de negócio e inteligência do sistema



Pode integrar-se com outros servidores via serviços web

Acessa o banco de dados e efetua sua manipulação ○

Lista, adiciona, atualiza e apaga registros

15

1.7 ●

Linguagem

Servidor

PHP

Apache

Java

Tomcat, JBoss, GlassFish

.NET / ASP

Windows Server

CFML

ColdFusion

Ruby

Puma, Phusion Passenger

JavaScript

NodeJS

Requsições HTTP - Hypertext Transfer Protocol ○

Protocolo de comunicação mais comum na Web



Essencialmente a transmissão de dados ocorre enviando textos



Existem outros protocolos como SSH e FTP

16



Segurança das informações transferidas é baixa ○







Dados criptografados



Necessário o uso de certificados digitais

Toda requisição possui "headers" ○

1.8

Existe a opção de HTTPS para maior segurança

Cabeçalhos com informações sobre a requisição e os dados transmitidos

Integrações Web Services ○

Permite que o "client" se integre com o "server"



Servidor também pode se integrar com outros servidores via serviços



A transmissão de dados ocorre através de requisições HTTP



Comunicação é mantida por alguns instantes ○

Tempo necessário para o servidor receber a requisição e enviar a resposta



"Stateless" ○

Cada invocação do "client" gera uma nova requisição para o servidor



Servidor não guarda informações do "client"



Segurança é garantida através de sessão ou "tokens" enviados na requisição



Para o "client" não importa o que acontece com a requisição quando recebida pelo servidor ○

Qual o sistema operacional do servidor



Quais os recursos de infra estrutura envolvidos ■

Quantos servidores existem



Quais as camadas de seguranças aplicadas



Qual hardware utilizado

17

EP:

Integrações

1.

Abra o Google Chrome na página www.google.com.br

2.

Clique com o botão direito sobre alguma área vazia

3.

Selecione a opção "Inspecionar Elementos"

4.

Selecione a aba "Network"

5.

Atualize a tela

6.

Perceba os arquivos carregados e o tempo necessário

7.

Use a barra de rolagem e vá para o primeiro item da lista

8.

Clique sobre ele

9.

Na aba "Headers" estão as informações enviadas da página HTML para o servidor

10.

Identifique a informação "Server" e seu valor

1.8

Domínio



Nome para localizar e identificar conjuntos de computadores na rede ○

Foi concebido com o objetivo de facilitar a memorização dos endereços de computadores na Internet

○ ●

1.9

Sem ele seria necessário memorizar uma sequência de números

Necessário registrar um endereço para sua utilização ○

No Brasil os registros podem ser feitos através do registro.br



Registro ".com" pode ser feito pela Verisign

Hospedagem



Contratação de um servidor que conterá os arquivos do "site"



O domínio deve estar configurado para apontar para o endereço IP do servidor de hospedagem



Os arquivos do "site" devem ser colocados na pasta pública do servidor 18

1.10 Página HTML ●

Exibida quando o endereço do domínio é invocado



Contém todos os recursos necessários para a exibição ○

Essencialmente deve possuir um arquivo ".html"



Opcionalmente poderá conter os arquivos do tipo ".css", ".js", ".jpg", ".png", ".gif", ".woff", ".mp3", ".mp4", etc

1.11 Versões HTML

19

1.12 Versões CSS

1.13 Linguagens de Progamação ●

Na página HTML podem ser usadas as seguintes linguagens de programação: ○

HTML → marcação de texto



CSS → estilo do texto marcado com HTML



JavaScript → controle e manipulação HTML e CSS



SVG → exibição de imagens vetoriais

1.14 Padrões HTML ●

W3C - World Wide Web Consortium



Grupo de empresas fabricantes de software



Mantém HTML desde 1996



Define os rumos do HTML e a padronização da linguagem ○

Interpretação igual nos navegadores

20

1.15 Navegadores ●

IE (Internet Explorer)



Firefox



Opera



Safari



Chrome

EP: 1.

Navegadores Navegue para os endereços abaixo e verifique as estatísticas: a. Navegadores b.

http://www.w3schools.com/browsers/browsers_stats.asp Telas

c.

http://www.w3schools.com/browsers/browsers_display.asp Sistema Operacional http://www.w3schools.com/browsers/browsers_os.asp

1.16 Engines ●

Interpretam os códigos HTML, JavaScript, CSS e SVG do documento



Cada navegador pode ter um "engine" diferente



Podem haver diferenças na interpretação ○

Um "engine" quer ter um diferencial competitivo dentre os demais

21

Engine

Browser

Blink

Chrome e Opera

Webkit

Safari

Gecko

Firefox

Trident

Internet Explorer

1.17 Engines Timeline

22

1.18 Browsers Timeline

1.19 Cross-browser ●



Código deve funcionar igual em mais de um navegador em mais de uma versão ○

Principal problema da programação HTML



Preocupação tanto no "desktop" quanto no "mobile"



Flash não possuía este problema, pois o interpretador era único

Código sem interpretação ○



Versão do navegador pode não suportar as funcionalidades do HTML5

Diferença dos "engines" ○

Pode "quebrar" o layout de uma página, empurrando elementos para fora da área visível do usuário



Necessário ○

Identificar o público alvo e principal navegador utilizado



Testar em mais de um navegador e mais de uma versão

23

24

Capitulo 2: 2.1 ●





Introdução à Linguagem

Editores de Texto e IDE Editores de Texto ○ Bloco de notas ○ Adobe Dreamweaver ○ Sublime Text ○ Notepad++ IDEs ○ Eclipse/Aptana ○ Webstorm ○ Netbeans Cloud ○ JSFiddle ○ Codenvy ○ Koding ○ Codepen

25

2.2 ●

Sublime Text Um dos editores mais utilizados pela comunidade de desenvolvedores ○



Multi plataforma ○



Windows, Mac e Linux

Leve e versátil com relação as funcionalidades ○



Para diversas linguagens de programação

Customizável conforme a necessidade do desenvolvedor

Pacotes podem ser adicionados ○

Novas funcionalidades estarão disponíveis



Enriquecimento dos recursos nativos



Instalação pode ser manual ou automatizada com a ajuda do "Package Control"

EP: 1.

Sublime Text Baixe e instale o Sublime Text 3 a.

2.

3.

Busque no Google o endereço

Abra o Sublime e adicione um projeto a.

Clique no menu superior "Project > Add Folder to Project"

b.

Selecione a pasta do seu projeto

c.

Perceba a barra lateral que se abriu

Baixe e instale o Package Control a.

Busque no Google por "package control sublime text 3"

b.

Identifique no site a página de instalação

c.

Copie o código exibido na tela (atenção para a versão do Sublime)

4.

Abra o Sublime Text 3

5.

Clique no item "View" do menu superior do Sublime

6.

Selecione a opção "Show Console"

7.

Cole o código copiado do site e tecle enter

26

a.

Verifique o andamento da instalação na barra de status no canto inferior esquerdo do Sublime

8.

Feche a visualização do console a.

9.

Repita os passos 5 e 6, porém selecione "Hide Console"

Digite o atalho CTRL + SHIFT + P a.

No Mac use CMD ao invés de CTRL

b.

Ou use a opção do menu "Tools > Command Pallete"

c.

Uma janela flutuante será exibida

10.

Digite "install"

11.

Selecione a opção "Package Control: Install Package" a.

12.

Uma lista com todos os pacotes disponíveis para o Sublime será exibida

Digite "emmet" e selecione a opção com este nome a.

Perceba a barra de status do Sublime no canto inferior esquerdo com o andamento da instalação

b.

Alguns pacotes exibem uma mensagem no próprio Sublime quando terminam a instalação (caso do Emmet)

c. 13.

Veremos as funcionalidades do Emmet posteriormente

Clique com o botão direito do mouse sobre a pasta do projeto na barra lateral e veja quantas opções existem

14.

Repita os passos de 9 à 12 e instale o pacote "Sidebar Enhancements" a.

Aguarde o término da instalação

b.

Verifique as novas opções existem quando clicar com o botão direito do mouse sobre a pasta do projeto

27

2.3

HTML



Hypertext Markup Language



Criada por Tim Berners Lee em 1993



Linguagem de marcação de texto através de "tags"



Texto marcado poderá ser manipulado por JavaScript e ou estilizado por CSS

2.4 ● ● ●



2.5

XHTML EXtensible Hypertext Markup Language Definido a partir da versão 4.01 em 2000 Baseada na linguagem XML ○ Estrutura hierárquica ○ Mesmas regras de aninhamento Árvore de elementos ○ Declarados como "tags" ○ Um elemento pode ou não ter subelementos aninhados ○ "Branches and leafs"

XML



Serialização de dados bastante comum



Geralmente usada para configuração



Contém dados definidos em forma de "nodes" (nós) ketchup mustard

28

2.6

Tags



Estruturas de linguagem de marcação



Existem aproximadamente pouco mais de 100 "tags" HTML5



Outras linguagens também usam o conceito de "tags"





XML



IDML



CFML

Elementos do documento HTML ○

Marcam uma característica



Conteúdo aninhado dentro destas são vinculadas as características das "tags" de abertura e fechamento

2.7



"Case insensitive"



Maioria das "tags" HTML5 tem o par de fechamento

Estrutura Básica HTML Declaração

Descrição



Navegador identificar o tipo do documento



Principal "tag" do documento ("root tag")



Possuirá "tags" para configuração do documento (título, descrição, autor, palavras-chaves, etc)



Praticamente tudo que será exibido para o usuário na tela do navegador

29

2.8

Aninhamento das Tags Título do Documento Tudo que será visualizado no navegador

2.9 ●

Indentação A identificação de qual "tag" é "pai" ou "filho" é essencial para entendimento do código





Uma das técnicas usadas para clareza do código é a indentação ○

"Filhos" ficam recuados à direita dos pais



"Netos" ("bisnetos" e sucessivamente) ficarão aninhados aos "filhos"

Para a máquina não importa se o código está indentado ou não ○

Basta apenas estar aninhado corretamento, sem erros de sintaxe



Os códigos a seguir são exatamente idênticos

2.9.1 Código sem Indentação My TitleMy content

30

2.9.2 Código com Indentação My Title My content

EP:

Tags

1.

Crie um arquivo de nome "basic.html"

2.

Adicione a informação ao navegador do tipo do documento a.

Deve ser o primeiro código do documento

3.

Abaixo da declaração anterior, crie a "root tag" HTML:

4.

Dentro de aninhe as "tags" e : a.

Atenção ao aninhamento e a indentação

5.

Escreva um texto dentro de

31

My first page ! 6.

Salve e teste no navegador

7.

Adicione a "tag" como filha de : a.

Altere a indentação para melhor leitura do código

Oh yeah!!! 8.

Salve e teste novamente no navegador

9.

Altere o texto de adicionando quebras de linhas entre as palavras com a tecla ENTER: My first page !

10.

Salve e teste, verificando se as quebras de linha foram respeitadas

11.

Altere o código colocando tudo em uma única linha, porém marcando com a "tag" My first page !

12.

Repita o último teste

2.10 Comentários ●

Comentários são instruções de código ignoradas pelo interpretador do 32

navegador ●

São úteis para descrever alguma funcionalidade



Comentário HTML é multilinhas ○

Tudo que estiver dentro das "tags" de abertura e fechamento será comentado

Título do Documento Tudo que será visualizado pelo usuário

EP: 1. 2.

Comentários Abra o arquivo "basic.html" do EP anterior Adicione um comentário mencionando que o HTML respeita o código de marcação e não a forma como as informações são dispostas a. Avalie e identifique o melhor local para colocar seu comentário

não existe

Text

3.2

Elementos



Um documento HTML é definido por elementos HTML



Cada elemento faz uma marcação no documento ○

O conteúdo do elemento será marcado pela "tag" que o envolve



Maioria das "tags" sempre são definidas pela de abertura e de fechamento, mas há exceções



Se uma "tag" não contiver a de fechamento, o navegador tentará interpretar da melhor forma possível, mas comportamentos estranhos podem acontecer



Um elemento, pode ter conteúdo ou não ○



As que não possuem conteúdo não precisam ser fechadas no HTML5

Como exemplo, a "tag" marca o texto com o formato para cabeçalho ○

Se não for fechada o formato de cabeçalho será aplicado à tudo mais que estiver na sequência

My Header

36

EP:

Elementos

1.

Crie um novo arquivo de nome "elements.html"

2.

Adicione a estrutura HTML essencial:

3.

Dentro da "tag" adicione o seguinte código: My Header This is my content

4.

Salve e teste no navegador

5.

Remova a "tag" de fechamento : My Header This is my content

6. 7.

Salve, teste e perceba que todo o texto recebeu o formato de cabeçalho Desfaça o passo anterior e mantenha a "tag" de fechamento: My Header This is my content

37

3.3 ●

Atributos Atributos configuram um elemento ○

Definem valores para que uma "tag" tenha um determinado comportamento



Os atributos podem variar de "tag" para "tag" ○



Alguns podem ser comuns, outros podem ser exclusivos

Na documentação HTML é possível identificar e esclarecer o funcionamento de cada um deles



No exemplo abaixo a "tag" possui o atributo "align" que configura o estilo do alinhamento do texto: My Header

Nota: o atributo "align" está depreciado no HTML5 e deve ser evitado mesmo em versões anteriores do HTML, uma vez que todo o estilo deve ser aplicado através de CSS.

3.4

Atributos Globais



São os atributos que podem ser adicionados a qualquer "tag" HTML



Existem em versões anteriores do HTML e também os novos com funcionamento apenas no HTML5



HTML: ○ acesskey ○ class ○ dir ○ id ○ lang ○ style ○ tabindex ○ title

38



3.5

HTML 5: ○ contenteditable ○ data-* ○ draggable

Elementos e Atributos Item

Exemplo

Elemento

Tag

Atributo

Configuração de uma tag

Conteúdo

Informações das tags

39

EP: 1.

Elementos e Atributos Navegue para o endereço abaixo e verifique os elementos HTML: http://www.w3schools.com/tags/ref_byfunc.asp https://developer.mozilla.org/en-US/docs/Web/HTML/Element

2.

Agora verifique os atributos: https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes

3.

Finalmente identifique os atributos globais: http://www.w3schools.com/tags/ref_standardattributes.asp https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes

3.6 ●

Estrutura HTML Um documento HTML segue um padrão estrutural definido pelo W3C, chamado de DOM - Document Object Model



Esta estrutura define: ○

Nós de elementos 40





Regras hierárquicas



Acesso e manipulação dos objetos

Todas as "tags" possuem o conceito de "pai" e "filho" My Header

Child Tags: tem como filho tem como filho

Parent Tags: tem como pai tem como pai



Cada elemento HTML é considerado um nó ("node")



A hierarquia está definida dentro de uma árvore de elementos HTML ("nodes")





Os pais são chamados de "parent nodes" e os filhos de "child nodes"



A indentação do código é fundamental para o entendimento

Um documento HTML deve ter uma estrutura de nós válidos para que possa ser exibido corretamente



A estrutura essencial para exibição é: ○

Sendo que o conteúdo que será exibido pela página sempre fica aninhado dentro de



Fortemente recomendado o uso de



41



Porém muitas vezes é desejado configurar mais informações no documento HTML ○



Novas "tags" e novos aninhamentos devem ser feitos

No exemplo a seguir a página possuirá um título ○

Maioria das configurações da página ficam dentro de

My Page Title My page content...

3.7

DOCTYPE



Document Type Definition



Informa ao navegador o tipo do documento a ser renderizado



Deve ser colocada na 1ª linha do documento HTML

My Page Title My page content...

42

EP:

Estrutura HTML

1.

Crie um arquivo de nome "structure.html"

2.

Adicione a estrutura essencial HTML com conteúdo: My page content...

3. 4.

Salve e teste no navegador Adicione a instrução "doctype":

5.

6.

... Salve e teste novamente a. Perceba que nada ocorreu b. Identifique o título que está sendo exibido na aba do navegador (o nome do arquivo) Adicione e dentro de My Title ...

7. 8.

Salve e teste, identificado o título na aba do navegador Volte ao código dentro de e adicione quebras de linha entre as palavras: My page content...

9.

Salve e teste a.

Observe se as quebras foram respeitadas 43

10.

Volte o código da forma inicial e adicione Mypagecontent...

11.

Salve e teste

3.8

Estrutura Básica HTML

Tag

Descrição

Conteúdo do Elemento



"Root tag" do documento HTML define contêiner para a árvore de elementos DOM

Tudo, exceto outra "tag" HTML



Inclui o "cabeçalho" do documento como título, metadados, estilos e "scripts"



Conteúdo do documento



Tudo, exceto as anteriores, porém pode incluir a "tag" de "script"

44

3.9 ●

Interpretação do Navegador O navegador interpreta o código existente no documento HTML de cima para baixo





"doctype" informa o tipo de documento a ser interpretado



Navegador começa a fazer o "parse" das "tags" HTML

"Parse" pode ser entendido* como: ○

Interpretação de todo o código



Execução das configurações definidas em



Renderização do conteúdo

Nota: sequência real dos processos é diferente da apresentada aqui, a qual tem apelo apenas didático.

45

46

Capítulo 4: 4.1

Tags de Cabeçalho





Aninhada dentro de



Recebe praticamente todas as "tags" de configuração da página ○

Título



Metadados



"Encoding"



Estilo



Script

4.1.1 ●

Identifica o título da página, o qual é utilizado para ○

Janela (ou aba) do navegador



Página adicionada aos favoritos



Resultados de busca na Internet

My Title

47

4.1.2 ●

A "tag" define os metadados do documento ○

Aninhada dentro da "tag"



Não possui "tag" de fechamento para HTML5



Pode ser utilizada mais de uma vez



Metadados são usados pelo navegador





Conjunto de caracteres usados no conteúdo ("encoding")



Recarregar a página em determinados intervalos de tempo

Também são usados por: ○

Ferramentadas de indexação de "sites" (SEO - Search Engine Optimization)

○ ●

Serviços na web

Especificam informações sobre o documento antes da renderização do conteúdo ○

Geralmente são informações que não serão exibidas na tela



Ex: descrição, autor, palavras chaves, última data de modificação

● Quando usada para metadados descritivos, possui duas propriedades, "name" e "content" ○

Representa o nome da característica e seu valor



O interpretador (seja do navegador, seja do SEO ou qualquer outro) obterá o seguinte resultado: author=John



48



Também podem ser configurada com informações proprietárias ○

Muito provavelmente, apenas a empresa proprietária conseguirá interpretar a informação



Ex: informações referentes a configurações de dispositivos móveis da Apple

4.1.2.1

Valor

author

description

keywords

Atributo name

Descrição

Nome do autor

Descrição da página, geralmente utilizado por buscadores na exibição de seus resultados

Lista de palavras chaves separadas por vírgulas, geralmente usado por buscadores para identificar o conteúdo da página

49

EP: 1. 2.

Crie um arquivo de nome "meta.html" Adicione a estrutura básica HTML, com título: Página de São Paulo

3.

Adicione ainda o texto em : São Paulo ganhará uma nova canção...

4.

Salve e teste a.

Perceba que os caracteres do título e do corpo não foram exibidos corretamente

5.

Adicione o seguinte código em :

6.

Salve e repita o teste a.

7.

Verifique se os caracteres estão incorretos

Adicione o metadado referente ao autor:

8.

Salve e teste a.

9.

Perceba que nenhuma mudança visual ocorreu para o usuário

Adicione os demais metadados descritivos: a.

Descrição

b.

Palavras chaves

50

4.1.2.2

Demais Atributos de

Atributo

Valor

Descrição

charset

utf-8

Define o "encoding" da página

content

Texto

Conteúdo relativo ao valor utilizado em "name"

http-equiv

content-type default-style refresh

Informação do "header" (informação e valor) da requisição HTTP quando a página é invocada pelo navegador

name

application-name author description generator keywords

Especifica o nome do metadado

51

4.1.2.3

Atributo http-equiv

Valor

Descrição

Define o "encoding" da página, apesar de não estar depreciado recomenda-se usar a opção "charset" ou invés deste formato content-type

refresh

Especifica o intervalo de tempo em segundos no qual o navegador deve atualizar a página

EP:

http-equiv

1.

Crie um arquivo de nome "http_equiv.html"

2.

Adicione a estrutura HTML básica

3.

Adicione a "tag" com o seguinte atributo:

4.

Salve e teste a.

Perceba a atualização a cada 2 segundos

52

4.1.2.4 ●

Atributo charset

Define o "encoding" do documento ○

Permite que os caracteres usado na página sejam exibidos corretamente



Conjunto de caracteres de um idioma



Ex: a á à ã â A Á À Ã Â

4.1.2.5 ●



Encoding

Conjunto de caracteres ○

Latinos



Japoneses



Árabes



Cirílicos

Evolução: ASCII → ANSI → ISO-8859-1 → UTF-8





HTML4 utilizava o ISO-8859-1 ○

Maioria dos países utilizava o este conjunto de caracteres



Muito similar ao ANSI, que possui 32 caracteres adicionais

HTML5 deve ser usado o UTF-8 ○

Mais abrangente para outros idiomas



Abrange quase todos os caracteres, potuações e símbolos no mundo

4.1.2.6 ●

ISO e UTF

ISO ○

International Standards Organization



Organização que define os conjuntos de caracteres padrões para os diferentes alfabetos

53



EP: 1.

UTF ○

Unicode Transformation Format



Tem maior utilização e vem substituindo o ISO



Os primeiros 256 caracteres UTF correspondem aos 256 ISO

Econding Navegue para o endereço abaixo e verifique os caracteres disponíveis para ASCII a.

Perceba a pequena quantidade de caracteres disponíveis e a ausência dos acentuados (ã Ã, é É, etc)

http://www.w3schools.com/charsets/ref_html_ascii.asp 2.

Verifique o valor "Entity Name" do sinal de maior > e menor < para ANSI e para ISO-8859-1/UTF-8: http://www.w3schools.com/charsets/ref_html_ansi.asp http://www.w3schools.com/charsets/ref_html_entities_4.asp

4.1.2.7 ●

Entidades de Encoding

Cada conjunto de caracteres define um número e um nome para as entidades ○

Ex: o sinal de maior pode ser escrito através do nome da entidade > ou seu número >



A entidade possui a seguinte assinatura: & + nome + ; & + # + número + ;

54





Seu uso é essencial dentro do código HTML quando necessário usar o sinal de maior ou de menor ○ Evita o interpretador confundir com abertura e fechamento de "tags" <h1> Idealmente deve-se utilizar o nome da entidade ao invés do número para facilitar a leitura do código <h1>

EP:

Entidades de Encoding

1.

Crie um novo arquivo de nome "entities.html"

2.

Adicione a estrutura básica a.

3.

Lembre-se sempre de utilizar UTF-8 na estrutura básica

Adicione o seguinte texto em :

4.

Salve e teste, verificando se o texto "" foi exibido

5.

Altere o código de para: <h1>

6.

Salve e repita o teste

7.

Abra a página do endereço abaixo http://www.w3schools.com/charsets/ref_html_entities_4.asp

8.

9.

Adicione os nomes e os símbolos dos naipes de baralho dentro de : a.

♠ espadas

b.

♣ paus

c.

♥ copas

d.

♦ ouros

Escreva as entidades a seguir e descubra a palavra: Coração

55

4.1.3 ●

Permite definir as informações de estilo do documento ○

CSS → Cascading Style Sheets



Define como os elementos devem ser renderizados no documento

h1 { color: blue; } ●

Possui dois atributos (além dos globais): ○

"media" → especifica qual a mídia que será aplicado o estilo



"type" → "mime type"

h1 { color: blue; }

EP:



1.

Crie um novo arquivo de nome "style.html"

2.

Adicione a estrutura básica HTML

3.

Dentro de adicione : My Header

4.

Salve e teste a.

Atenção para a cor que está sendo exibida

56

5.

Dentro de adicione uma "tag" com: h1 { color: blue; }

6.

Salve e teste

7.

Altere a "tag" adicionando o atributo "media": h1 { color: blue; }

8.

Salve e teste a. Imprima a página e verifique a cor do texto

4.1.4 ●

Vincula o documento HTML com outro externo ○

Carrega um recurso externo, como CSS



Pode ser utilizada mais de uma vez



Não possui "tag" de fechamento



57

Atributo

Valor

Descrição

href

URL

Especifica o caminho do arquivo externo

media

all print

Define em qual aparelho a arquivo externo será exibido

rel

icon stylesheet

type

text/css

Valor obrigatório que define qual o relacionamento do documento com o arquivo externo

Opcional no HTML5, especifica o "MIME type" do arquivo externo

EP: 1.

Navegue para o endereço abaixo e baixe o ícone com o nome "favicon.ico" a.

Salve em uma pasta apropriada

http://www.favicon.cc/?action=icon&file_id=686403 2.

Crie um novo arquivo de nome "favicon.html"

3.

Adicione o seguinte código em : a.

Coloque o caminho correto como valor de "href"

4.

Salve e teste a.

5.

Observe o ícone ao lado do título da página

Crie um novo arquivo de nome "link.css" e "link.html"

58

6.

Adicione o seguinte código CSS e salve o arquivo: h1 { color: blue; }

7.

Volte ao arquivo HTML "link.html"

8.

Adicione a "tag" em : My Header

9.

Adicione a "tag" em :

10.

Salve e teste

11.

Adicione o atributo "media":

12.

Salve e teste a impressão

4.1.5 ●

Define o código JavaScript do documento



Pode ser usada como:





Contêiner para código



Apontar para arquivo JavaScript externo utilizando o atributo "src"

Quando usado o atributo "src" a "tag" deve ser vazia ○

Não é possível apontar para arquivo externo e possui conteúdo ao mesmo tempo



Pode ser usado nas "tags" e 59



Recomendado utilizar no final da "tag" ○

Melhora a performance do carregamento da página



Navegador tem menos informação para interpretar antes de exibir a página



Existem casos na qual a biblioteca deve ser carregada na "tag" para que possa funcionar corretamente

alert('Hello HTML5');

Atributo

Valor

Descrição

charset

pt-br

Especifica o "encoding" do arquivo externo

src

URL

Especifica o caminho do arquivo externo

type

text/javascript

Opcional no HTML5, especifica o "MIME type" do arquivo externo

60

EP:



1.

Crie um arquivo de nome "script.html"

2.

Adicione o seguinte código dentro de : alert('Hello HTML5');

3.

Salve e teste

4.

Crie um novo arquivo de nome "script.js" dentro da mesma pasta que contém o arquivo "script.html"

5.

Adicione o seguinte código JavaScript:

document.write('Hello from JS'); 6.

Salve o arquivo e volte para o arquivo HTML "script.html"

7.

Adicione o seguinte código em :

8.

Salve e teste a.

Perceba o texto escrito via JavaScript com a formatação "h1"

61

4.1.6 ●

Define um conteúdo alternativo para navegadores que foram definidos para não usarem JavaScript ou não tem suporte a linguagem ○



Seu conteúdo será mostrado apenas nesta condição

Pode ser usado nas "tags" e alert('Hello HTML5'); This site requires JavaScript enabled.

EP:



1.

Crie documento HTML de nome "noscript.html"

2.

Adicione o código em , salve e teste: alert('Hello HTML5') This site requires JavaScript enabled.

3.

4.

Desabilite o JavaScript do navegador e este novamente a.

Abra "Settings" do Google Chrome

b.

Procure por "javascript" no campo de busca das configurações

c.

Clique em "Content Settings"

d.

Clique em "Do not allow any site to run JavaScript"

Habilite novamente o JavaScript do navegador

62

63

Capítulo 5:

5.1 ●

Sobre São as "tags" que marcam algum conteúdo ○



Tags de Exibição

Será visualizado pelo usuário quando acessar a página HTML

Muitas delas possuíam atributos de estilo (como alinhamento de texto, cor de fundo, etc) nas versões anteriores do HTML

5.2 ●



Estes atributos foram depreciados no HTML5



Idealmente, estilos devem ser feitos apenas com CSS

Block & Inline São as formas mais comuns de exibição HTML ○



Podem ser modificadas através de CSS

Define como o próximo conteúdo seguinte a “tag” será exibido ○

Na mesma linha e na sequência após o fechamento da “tag”



Próxima linha após o fechamento da “tag”

5.2.1 Block ●

Ocupa toda a largura disponível, limitado ao seu "parent elment"



Conteúdo seguinte à "tag" estará na próxima linha

5.2.2 Inline ●

Ocupa somente o espaço necessário para sua exibição



Conteúdo seguinte à "tag" estará na sequência

64

5.3





"Corpo" do documento HTML



Contêiner para quase todos os elementos HTML



Pode conter elementos que serão renderizados na tela ou não ○

5.4

Principal uso são para elementos a serem exibidos pelo navegador

...



Marca conteúdo que será exibido como cabeçalho (título) da página



Não possui atributos (exceto globais)



Navegadores podem renderizar o texto de forma diferente



Em geral são textos em negrito



Tamanho da fonte varia conforme a "tag" utilizada



EP:



Quanto menor o número da "tag" maior o texto



Ex: tem o tamanho da fonte maior que

Exibição “block”

...

1.

Crie um novo arquivo de nome "h1.html"

2.

Dentro da "tag" adicione as seguintes "tags": My H1 text My H2 text My H3 text My H4 text My H5 text My H6 text

65

3.

5.5

Salve e teste no navegador





Define um parágrafo que será exibido na página



Ênfase pode ser dada combinado outras "tags" com exibição “inline”:





→ negrito



→ itálico



→ diminui o texto

Exibição “block” This is a bold and italic text

EP: 1.

No arquivo de nome "paragraph.html" e adicione o seguinte código My first paragraph.

2.

Salve e teste no navegador

3.

Adicione ênfase no texto "first" adicionando as "tags": My first paragraph.

4.

Salve e teste

5.

Adicione as demais "tags" de ênfase no texto "first", testando uma por vez: a.



b.



66

5.6 ●



Marca algum conteúdo ○

Não aplica qualquer mudança visual no elemento



Ideal para marcar um conteúdo que receberá um estilo

Pode substituir as “tags” de ênfase, por permitir estilo com maior flexibilidade ○



5.7

Não faz sentido marcar com e remover o negrito !

Exibição “inline”





Marca o elemento que será tachado



Exibição “inline” This text are going to be striked

5.8





Marca o elemento que será subscrito



Exibição “inline” This paragraph has subscripted text

5.9 ●

Marca o elemento que será elevado ○



Ex: exibição de raíz quadrada

Exibição “inline” This paragraph has superscripted text

67

5.10 ●

Marca o elemento que será pré formatado



Preserva espaços e quebra de linha



Utiliza a fonte “Courier”



Exibição “inline” This text

is

pre

formated



EP:

Textos

1.

Crie um arquivo de nome “texts.html”

2.

Adicione o seguinte conteúdo, salve e teste: Paragraph is block display but span is inline display and the next content will be placed high after the last one

3.

Logo abaixo do último código adicione:

This text are going to be striked This paragraph has subscripted text This paragraph has superscripted text 4.

Salve e teste

5.

Finalmente, adicione o código abaixo, salve e teste: 68

This text is pre

formated



5.11 ●

Usada para carregar imagens no documento HTML ○

Podem ser recursos locais ou externos



Não são tecnicamente inseridas no documento, um "link" e um espaço para exibição são criados



Não possui "tag" de fechamento



Exibição “inline”



Pode receber os atributos de largura e altura ○

Podem distorcer, serrilhar ou perder qualidade visual da imagem



Se utilizado apenas um dos atributos de tamanho, a imagem manterá a proporção visual



69

Atributo

Valor

alt

My text

height

10

src

URL

usemap

#myMapTagId

width

10

EP:

Descrição

Texto alternativo para a imagem exibido antes do carregamento

Define em "pixels" a altura da imagem

Endereço URL para a imagem

Define as coordenadas das áreas clicáveis de uma imagem

Define em "pixels" a largura da imagem



1.

Crie o arquivo "img.html" com a estrutura básica

2.

Adicione em a "tag" conforme abaixo: Salve e teste a.

4.

Atualize a página e perceba a imagem mudando randomicamente

Adicione o atributo de largura e altura com um valor para distorcer a imagem: a.

A imagem utilizada possui 900 pixels de altura e largura 70

Remova o atributo "height", salve e teste a.

6.

Repita o teste removendo "width" e mantendo apenas "height"

(Opcional) Adicione em a "tag" para que a página seja atualizada automaticamente a cada 3 segundos

5.12 ●

Marca o conteúdo de que receberá a formatação visual e a funcionalidade de um botão ○

Não é recomendado seu uso dentro de um formulário, devido ao problema de "cross-browser"



Existem botões específicos para formulário



Exibição “inline”



Pode receber texto e imagem ○

Principal diferença para os botões de formulário



Apesar de existir o atributo "align", alinhamento deve ser feito via CSS



Apesar de poder utilizar com o botão, é mais eficiente aplicar a imagem como fundo do botão através de CSS

Save Delete

71

EP:



1.

Crie um arquivo de nome "button.html"

2.

Adicione em o seguinte código: Save

3.

Salve e teste

4.

Baixe o ícone do endereço abaixo na mesma pasta do arquivo "button.html": http://iconfindr.com/1eWqAml

5.

Renomeie o arquivo para "icon_save_48x48.png"

6.

No arquivo HTML adicione o ícone: Save

7.

Salve e teste

8.

Utilize o atributo "width" da imagem e reduza o tamanho do ícone para 16 pixels: Save

9. 10.

Salve e teste Utilize o atributo "autofocus" do botão: a.

Mantenha o código anterior do botão



72

11.

12.

Salve e teste a.

Perceba que o botão recebe foco quando a página é carregada

b.

Pressione a barra de espaços do seu teclado

Repita o teste com o atributo "disabled" do botão

5.13 Listas ●

Elementos de lista são bastante úteis para criar desde lista simples até menus ○

Quando estilizados, podem perder os marcadores e ficar na horizontal para simular um menu



Podem receber qualquer elemento HTML ○

Podem ter outras "tags" aninhadas para criar uma lista de produtos com imagens e descrição, tanto na horizontal como vertical, conforme o código de estilo







HTML possui duas "tags" para estilos ○

→ "ordered list"



→ "unordered list"

Cada "tag" define um tipo de marcador diferente ○

O tipo do marcador por sua vez pode ser definido por estilo



Ex: letras, números, números romanos, etc

Ambas possuem exibição “block”

73

5.13.1





"Ordered List"



Cria uma lista do tipo ordenada



Estilo pode ser numérico, alfabético ou número romano





Decimais - 1,2,3…(padrão)



Alfabético - a,b,c…(minúsculo e maiúsculo)



Romanos - i, ii, iii...(minúsculo e maiúsculo)

Possui ainda o atributo "reversed" que reverte a numeração ○

Numeração será em ordem descendente ao invés de ascendente



Não altera a ordem dos itens

5.13.2





"Unordered List"



Cria uma lista do tipo desordenada



Estilo podem ser "bullets" ○

Disco (padrão)



Quadrados



Círculo

5.13.3 ●



"Tag" responsável por criar o "list item" ○



Tanto quanto devem possuir como "child element"

O tipo do marcador (números, "bullets") é definido pelo "parent element" ○

Se o "pai" for aparecerá "bullets", se for aparecerá numerais

74

EP:

Listas

1.

Crie um novo arquivo de nome "list.html"

2.

Adicione o seguinte código HTML: Ordered Item 1 Ordered Item 2

3.

Salve e teste

4.

Adicione o atributo "reversed" em Ordered Item 1 Ordered Item 2

5.

Salve e teste a.

6.

Perceba que os itens permaneceram na mesma posição

Adicione o código abaixo do anterior: Unordered Item 1 Unordered Item 2

7.

Salve e teste

75

5.14 ●

Contêiner para seu conteúdo



Não possui qualquer alteração visual ○



Exceto quando estilizado

Estilos podem ser usados para aplicação de cores, imagens de fundo, posicionamento e layout ○

Todo o conteúdo do elemento acompanhará o posicionamento da "pai"



Deve-se ter o cuidado de utilizar somente a quantidade necessária ○

Por não implicar em qualquer mudança visual, é comum existirem mais "divs" do que as necessárias



Eleva o consumo de processamento e memória, principalmente quando a tela for redimensionada (navegador tem de calcular o posicionamento de cada elemento)



Geralmente recebem o atributo "id" com os valores "container", "main", "header", "content", "footer" ○



EP: 1. 2.

Por serem bastante utilizadas para posicionamento e layout

Exibição “block”

Abra o arquivo "list.html" Envolva com : a. Mantenha todo o código anterior de …

3.

Salve, teste e verifique se houve alguma mudança visual

76

5.15 ●

Faz a marcação de âncora ○



Tanto dentro da própria página, como para uma página externa

Seu atributo "target" configura se uma nova página (ou aba do navegador) será aberta ou não







"_self" → na própria página (padrão)



"_blank" →nova página

As cores padrão de um "link" são: ○

Azul → não visitado



Violeta → visitado



Vermelho → ativo (clique ou "tab")

Exibição “inline”

Atributo

Valor

Descrição

href

URL #elementId

Endereço externo no qual o "hyperlink" está direcionando ou "id" de um elemento interno HTML

target

_self _blank

Especifica onde abrir o documento no qual o "link" direciona

77

5.15.1 ●

Navegação

O Atributo "href" pode receber o valor de um endereço ○

Pode ser uma página do seu projeto ou uma página na Internet

Home Google 5.15.2 ●

Âncora

O atributo "href" também pode receber o "id" de um elemento HTML na própria página criando uma âncora ○

Faz a rolagem (“scroll”) da página até o ponto em que o elemento estiver, desde que a barra de rolagem esteja presente



Deve ser acompanhado do caractere # com o "id"



Ex: href="#elementId"

More Info ... More info is here...

5.15.3 ●

target

Especifica onde abrir o documento no qual o "link" direciona ○

_self → no próprio documento



_blank → em uma nova página (ou aba do navegador)



_parent → "parent frame"



_top → todo o corpo da janela



"nome do iframe"

78

EP:



1.

Crie o arquivo de nome "anchor.html" insira o seguinte código

2. 3.

Google Salve e teste Adicione o atributo "target" com o valor "_self" Google Nenhuma mudança ocorreu pois usamos o padrão

5.

Mude o valor de "target" para "_blank": target="_blank"

6.

Salve e teste

7.

Insira “lorem ipsum”, após o código atual, o suficiente para que as barras de rolagem apareçam

8.

Adicione como última “tag” de (antes do fechamento) a “tag” : More info is here...

9.

Como primeira “tag” de (após abertura) adicione: More Info

10.

Salve e teste, clicando em “More info” a.

11.

Se necessário, redimensione a janela para gerar barras de rolagem

(Opcional) Faça a âncora reversa a.

Clicando no final da página e rolando para o topo

79

80

Capítulo 6: Tags Semânticas

6.1 ●

Sobre Criadas para uso no HTML5 ○

Navegadores antigos não as reconhecem e simplesmente as ignoram



Não é recomendado seu uso para aplicação de estilos, posicionamento ou layout



Permitem a criação de "sites semânticos" ○

Informam o tipo de conteúdo existente



Ex: conteúdo de cabeçalho do site



Importantes para indexação das ferramentas de busca



Praticamente não possuem nenhuma mudança visual para o usuário ○

Exceto as "tag" e



Dependendo do navegador as demais "tags" podem ficar posicionadas de forma ligeiramente diferente

6.2

Tags

Tag

Agrupa Informações



Cabeçalho



Navegação

81



Conteúdos em geral



Conteúdos não relacionados à página







Barra lateral da página, esquerda ou direita (pode conter outras "tags" semânticas, como , , )

"Tags" de cabeçalho ...

Detalhes de algum conteúdo



Imagem de qualquer tipo (gráficos, thumbs, fotos, etc)



Aninhada dentro de , exibe informação sobre a imagem





Rodapé

Sumário, resumo ou conclusão de algum conteúdo

82



Marca o texto (similar a uma caneta marca texto)



Data, hora, período, momento de algum conteúdo

6.2.1 ●

"Cabeçalho" a ser exibido na página HTML ○

Geralmente são usadas "tags" relativas a marcação de "cabeçalhos" () e a navegação ()



Utilizado por ferramentas de busca para indexar a página ○

Muitas vezes o logotipo da empresa é definido como "background" de , para otimizar a indexação da página (SEO)

My Company ... 6.2.2 ●

Define blocos de informações independentes ○

Muitas vezes independente do conteúdo da própria página



Ex: blog, fórum, notícias, etc

Latest News ...

83

6.2.3 ●

Bloco de marcação com características de rodapé da página ○

Ex: direitos autorais, desenvolvedor do site, "links" do menu em texto

2014 - All rights are reserved

6.2.4 ●

Define a seção de conteúdos HTML ○

Geralmente com "tags" semânticas de conteúdo aninhadas

... ... ...

EP: Tags Semânticas 1.

Crie um novo arquivo de nome "semantics.html"

2.

Adicione o código dentro de : This is my header This is my section This is my footer

3.

Salve, teste e observe o resultado visual da página

84

4.

Envolva as "tags" da seguinte forma: a.

com

b.

com

c.

com

5.

Salve, teste e verifique se houve alguma mudança visual na página

6.

Seu código deve estar similar à: This is my header This is my section This is my footer

7.

Envolva o conteúdo de com conforme a seguir: This is my section

8.

Salve e teste

9.

Dentro de e abaixo de adicione o seguinte código: This is my section Surfing on Hawaii

10.

Salve e teste

85

86

Capítulo 7: 7.1 ●

Tags de Formulário

Formulários São contêineres que possuem algumas funcionalidades embutidas ○

Usados desde páginas de contados em sites, até aplicações corporativas mais robustas



7.2

Geralmente um formulário envia dados através de elementos especiais chamados de controles ("controls") ○ Ex: campos de texto, botões, etc





“Tag” que conterá todos os “controls”



Lida com os dados inseridos pelo usuário na página HTML



é a principal “tag” usada em um formulário ○

Conforme o valor do seu atributo “type” pode se tornar desde um campo de texto até botões ou mesmo outros tipos de controles



Possui exibição “inline”

First name: Last name:

87

EP: 1.

Crie um novo arquivo de nome “form.html”

2.

Adicione o seguinte código: First name: Last name:

3.

7.3

Salve e teste a.

Insira algum valor no formulário

b.

Pressione o botão “Reset”

Principais Elementos

































7.4 ●

Exibição pode variar conforme o atributo "type"

88



Controle no qual o usuário interagir ○



Se usado dentro de um seus dados são gerenciados por este ○



Adicionar, alterar ou remover uma informação Ex: capturados no "submit", apagados no "reset", etc

Seu atributo “type” especifica o tipo de formulário e como este parecerá visualmente para o usuário ○

Atualmente existem pouco mais de 20 tipos diferentes



Todos os tipos são relacionados à formulário



Muitos dos atributos de fazem sentido com o tipo correto



Ex: “checked” faz sentido (e funciona) apenas com o tipo “radio” ou “checkbox”



Os tipos mais comuns são os já existentes em versões anteriores do HTML: ○

button



checkbox



file



hidden



image



password



radio



reset



submit



text

89

Atributo

Valor

Tipo

Define

accept

video/* image/*

file

autocomplete

on off

*

Habilita/desabilita a funcionalidade de autocompletar

autofocus

---

*

Foco ao elemento quando a página carregar

checked

---

disabled

---

*

list

datalist_id

text number

O elemento que contém os valores pré definidos para o

maxlength

7

text number

Número máximo de caracteres que o usuário pode inserir

multiple

---

file

Se o usuário pode selecionar múltiplos arquivos

name

text

*

Nome do elemento, deve ser o mesmo usado no servidor quando o formulário enviar dados

placeholder

text

text number

“MIME-type” do arquivo que será carregado

checkbox Se o elemento estará pré selecionado radio

Se o elemento estará desabilitado

“Dica” que é mostrada ao usuário antes do seu preenchimento

90

readonly

---

*

Impede que o usuário modifique o valor do elemento

size

8

text number

Largura do elemento definido pelo número de caracteres

value

text

*

Valor do elemento, o qual poderá ser usado no servidor (se submetido)

type

button checkbox color date datetime datetime-local email file hidden

*

Tipo do elemento, se não declarado o valor padrão será do tipo “text”

type

image month number password radio range reset search submit tel text time url week

*

Tipo do elemento, se não declarado o valor padrão será do tipo “text”

EP:



1.

Abra o arquivo “form.html”

2.

Adicione antes do botão, o do tipo “password”: Password: 91

3.

Salve e teste a.

4.

Digite qualquer valor neste campo

Após o último código, adicione o tipo “file”: Select a file:

5.

Salve e teste

6.

Adicione o atributo “multiple” no tipo “file”

7.

Salve e teste a.

8.

Verifique a múltipla seleção

Adicione o atributo “accept” no tipo “file”:

9.

Salve e teste a.

Tente selecionar um arquivo diferente de imagem

b.

(Opcional) Aplique o filtro para aceitar apenas imagens “jpg”

c.

(Opcional) Crie uma nova “tag” com filtro para arquivo “pdf”

10.

Adicione um novo do tipo “checkbox”:

11.

Send me spam Salve e teste

12.

Adicione o atributo “checked” ao :

13.

Send me spam Salve e teste

14.

Adicione dois novos do tipo “radio”: I am a man I am a woman

15.

Salve e teste a.

16.

Tente selecionar ambos os

Adicione o atributo “name” com o mesmo valor para os do tipo “radio”: 92

I am a man I am a woman 17. 18.

Salve e teste a. Tente novamente selecionar ambos os Adicione o atributo “placeholder” no : First name:

19.

Salve e teste

20.

Adicione também o atributo “title”: a.

Faça o mesmo para os demais de texto

21.

Salve e teste a.

Mantenha o ponteiro do mouse sobre o campo para visualizar o valor do atributo “title”

22.

Crie um novo de texto com o atributo “value”: Input with value:

23.

Salve e teste a.

Perceba que “value” sobrescreve “placeholder”

b.

Na página HTML, apague o valor do e perceba que o valor do “placeholder” aparecerá

93

24.

Adicione outro com o atributo “readonly”: Read only input:

25.

Salve e teste a.

26.

Tente inserir um novo valor no

Adicione outro com o atributo “disabled”: Disabled input:

27.

Salve e teste a.

Note a diferença entre “readonly” e “disabled”

b.

(Opcional) Coloque como valor de “title” com o texto “readonly” e “disabled” respectivamente em cada

28.

Adicione um novo com o atributo “maxlength”: Max length input: Salve e teste a.

Tente adicionar mais de 3 caracteres no campo

b.

Perceba que o valor de “placeholder” possui mais de 3 caracteres

Adicione o atributo “size” no “maxlength”:

31.

Salve e teste a.

Perceba que o texto do “placeholder” não está visível

32.

Adicione o atributo “autofocus” no primeiro

33.

Salve e teste a.

Perceba que o está com foco e pronto para a digitação

94

7.5





Utilizada em conjunto com a "tag"



Quando o usuário clica no texto da "tag" o é selecionado ○

Auxilia na usabilidade do usuário



O atributo "for" deve fazer referência ao valor do "id" da "tag"

First name:

EP: 1.

Volte ao arquivo "form.html"

2.

Adicione o atributo "id" às "tags"

3.

Envolva os textos ao lado das "tags" com a.

Atributo "for" deve ter o mesmo valor do atributo "id" da "tag"

First name: Last name: 4.

Salve e teste a.

Clique exatamente sobre a palavra dentro de e perceba o foco no

95

7.6





Cria um elemento com lista de itens para seleção do usuário



O atributo “multiple” permite selecionar múltiplos itens ○



Altera visualmente o elemento

A “tag” define os itens do elemento ○

Deve estar aninhada dentro de

Item 1 Item 2 Item 3

EP: 1.

Abra o arquivo “form.html” e adicione: Options: Item 1 Item 2 Item 3

2. 3.

Salve e teste Adicione o atributo “multiple”:

4.

Salve e teste a.

Utilize a tecla “CTRL” e selecione mais de um elemento

96

7.7





Elemento para inserção de texto



Similar ao porém para múltiplas linhas ○



Possui muitos dos atributos de do tipo texto

Principais atributos são: ○

cols → largura



row → altura

Default value

EP: 1.

Abra o arquivo “form.html” e adicione: Description: Default value

2.

Salve e teste

97

7.8





Agrupa elementos relacionados em um



Desenha um quadrado em volta dos seus elementos



O elemento adiciona um "título" na linha do quadrado desenhado My Form First name:

EP: 1.

No arquivo "form.html" adicione logo após a "tag" com fechamento antes de …

2.

Salve e teste

3.

Adicione a "tag" dentro de : My Form …

4.

Salve e teste novamente 98

99

Capítulo 8: 8.1

Novos Tipos



HTML5 define novos tipos para



Alguns modificam visualmente o elemento



Novos Tipos de Formulário



Deve-se ter um cuidado maior com o problema de "cross-browser",



A exibição incorreta pode comprometer a experiência do usuário

Podem validar o valor do campo conforme seu tipo ○

Geralmente antes do envio dos dados do formulário para o servidor

Tipo

Suporte

Define

color

Elemento para seleção de cor ("color picker")

date

Controle de data com ano, mês e dia (sem horário)

datetime

Similar ao tipo "date", porém com controle adicional para horário (hora, minuto, segundo) com base na zona de horário UTC

datetime-local

Similar ao tipo "date", porém com base no horário UTC

email

Elemento para inserção de email

month

Similar ao tipo "date", porém par mês e ano

100

Elemento para inserção de número com botões internos para aumentar e reduzir o valor

number

range

Elemento para a definição de valor ("slider")

search

Elemento para inserção de texto, auxiliado por botão interno para apagar o valor inserido

tel

---

time

Elemento para inserção de hora

url

Elemento para inserção de URL Similar ao tipo "date", porém para semana e ano

week

8.2 ●

Elemento para inserção de número telefônico

Suporte dos Navegadores "Cross-browser" ainda é bastante limitado ○

Mesmo para navegadores modernos



Navegadores antigos ignoram o novo tipo renderizando o padrão texto



Dependendo do caso, em produção, o recomendável é utilizar jQuery UI ou biblioteca similar



Tipos que não tem grande interferência visual no elemento podem ser usados sem maiores problemas ○

Mesmo que for exibido como tipo texto, não impedirá (ou atrapalhará) o usuário de interagir com o elemento



Ex: tipos "email", "search", "tel", etc

101

8.3 ●

Vantagens do Uso O uso dos novos tipos auxilia na interação do usuário com o elemento ○

No caso de dispositivos móveis, o tipo do teclado do dispositivo exibido ao usuário muda conforme o tipo do



Ex: tipo "email" abre o teclado com teclas que facilitam a inserção do email (ponto, arroba, etc)

EP:

Novos Tipos

1.

Crie um novo arquivo de nome "form_new_types.html"

2.

Adicione a "tag"

3.

Dentro de adicione o seguinte código: Date & Time

4.

Abaixo de adicione os tipos de datas: Date: Date Time: Date Time Local: Time:

102

Week: Month: 5.

Salve e teste a.

Abra também com outros navegadores além do Chrome e verifique se a visualização é a mesma

6.

Adicione mais um conjunto de "tags" dentro de : Numerics:

7.

Dentro de adicione: Number: Range:

Telephone: 8.

Salve e teste

9.

Adicione mais um conjunto de "tags" dentro de : Others:

103

10.

Dentro de adicione: E-Mail:

URL: 11.

Dentro de adicione: Search:

Color: 12.

Salve e teste

104

105

Capítulo 9: 9.1 ●

Front-end & Back-end São camadas que se integram através de requisição ○



Conceitos de Requisições HTTP

Geralmente requisição HTTP - Hypertext Transfer Protocol

Página HTML faz uma requisição para um endereço válido no qual o servidor responde ○

Pode retornar desde uma página HTML ou apenas dados



O servidor deve estar adequadamente configurado e preparado para receber a requisição





9.2

Cada camada tem seu papel bem definido e distinto ○

“Front-end” envia, recebe e exibe os dados do “server”



“Back-end” processa e retorna os dados processados para o “client”

Os papéis de cada camada nunca devem ser invertidos ○

“Front-end” gerencia a exibição dos dados



“Back-end” gerencia as regras de negócios

Requisição



Transmissão de dados entre a página HTML e o servidor



Os dados são enviados como texto ○

Cada requisição envia informações adicionais no “header”



Toda vez que uma página é invocada dados são enviados e recebidos, independente de um formulário ter sido submetido

106

9.3

Header

9.4

URL Encoding





Dados são convertidos automaticamente para o formato ASCII ○

Somente este formato é aceito na transmissão



Diferente do “encoding” da página, a qual exibe os dados para o usuário

Caracteres não seguros são convertidos utilizando: % + hexadecimal Ex: São Paulo Header→ S%C3%A3o%20Paulo URL→São%20Paulo

107

EP: 1.

URL Encoding Abra o endereço abaixo: http://www.url-encode-decode.com/

2.

Digite o texto “São Paulo” e clique no botão “Url Encode” a.

9.5

Observe o resultado

Serviços



Servidores configurados para receber e processar os dados da requisição



Os principais tipos de “webservices” são: ○

RPC - Remote Procedure Call



SOAP - Simple Object Access Protocol



REST - Representational State Transfer

108

9.6

Caixa Preta



O “client” não deve ter informações específicas ou detalhadas do “server”



Apenas configurações essenciais devem existir para o “client”:



9.7



Endereço



Método



Nome para os parâmetros

Para o “client” não importa a infra estrutura usada ○

Quantidade de máquinas



Camadas



Linguagem de programação



Sistema operacional

REST



Serviço Web bastante comum e utilizado atualmente



Estilo de arquitetura ○



Sistemas que seguem os princípios “REST” são chamados de “RESTful”

Efetua uma operação com base em uma ação ○

Ação deve resultar em um estado final



Como (se presume) que a aplicação se comportará a seguir, ou o estado no qual se encontrará após a ação

109

9.8 ●



Métodos São “verbos” de ações para uma requisição HTTP ○

Enviados no “header” da requisição HTTP



Em REST, representam o estado final no qual a ação resultará

Podem representar manipulações de CRUD ○

Create



Read



Update



Delete

Método GET

Obtém valor(es)

HEAD

Obtém apenas o cabeçalho (“header”) da requisição

POST

Adiciona valor(es)

PUT

Atualiza valor(es)

PATCH

Atualiza valor(es)

DELETE

Apaga valor(es)

OPTIONS



Utilização

Retorna os métodos HTTP disponíveis

Tecnicamente qualquer método pode ser usado para transmitir ou receber dados ○

Porém o servidor que estiver configurado adequadamente, seguindo a arquitetura REST, utilizará a ação invocada pelo método para executar algum procedimento



Ex: requisição com o método DELETE apagará o registro

110

9.9 ●

GET Efetua a requisição transmitindo dados pela URL ○

Único método que utiliza URL



Os dados podem ser visualizados e manipulados pelo usuário



Dados são enviados no formato “nome” e “valor”



Essencialmente tem o objetivo de obter dados ○

Mas muitas vezes é utilizada para outras ações em sistemas que não seguem a arquitetura REST (não recomendado)





Caracteriza-se por: ○

Permitir salvar a URL como favorito



Manter a URL (requisição) no histórico de navegação



Possui restrição de tamanho da URL (cerca de 3000 caracteres)

Os dados transmitidos tem a seguinte assinatura: ...url/server_pag.ext?name1=value1&name2=value2 Item

Exemplo

Descrição

server_pag.ext

search.php

?

list.jsp?category=dvd

Separador do endereço da página do servidor e o(s) parâmetro(s) enviado(s)

name1=value1

item=dvd

Nome da propriedade e seu valor enviado como parâmetro

&

product.asp?category=dvd&id=123

Separador de parâmetros (quando existir mais de um)

Endereço da página do servidor

111

EP:

GET

1.

Abra o endereço www.google.com.br

2.

Digite no campo de buscas a palavra “restful”

3.

Observe a URL gerada

4.

Identifique o parâmetro digitado na URL a.

5.

Analise também os demais parâmetros enviados na requisição

Modifique o parâmetro na URL para “html5” a.

Não utilize o campo de buscas, modifique no campo de endereços do navegador

b. 6.

Perceba a alteração da busca

(Opcional) Navegue para um site de compras tradicional na Web a.

Navegue por alguma categoria existente como “dvd”

b.

Observe a URL gerada e os parâmetros enviados

9.10 POST ●

Método que permite o envio de dados sem utilizar a URL do navegador



Mais segura para o envio de dados ○

Porém pode a requisição e os dados transmitidos podem ser capturados e manipulados com alguns “softwares” comuns



Essencialmente deve ser utilizada para inserir dados ○

Se o serviço não seguir os princípios REST também pode ser usada para atualizar e ou apagar dados



Caracteriza-se por: ○

Não permite a manipulação direta e explícita do usuário



Não permite armazenar a chamada nos favoritos ou no histórico



Não possui problemas com relação a quantidade de parâmetros enviados

112

9.11 Segurança ●

Nenhuma requisição tem algum mecanismo próprio de segurança



Para maior segurança recomenda-se o uso de HTTPS ○

Conexão criptografada com protocolo SSL/TLS (camada de segurança)



Utiliza certificados digitais para verificar a autenticidade do cliente e servidor



Porta padrão utilizada pelo navegador é a 443

9.12 Ferramentas ●

Existem muitas ferramentas que permitem inspecionar um requisição ○



São bastante úteis para o desenvolvimento e depuração da requisição

As mais comuns são: ○

Google Chrome/Network → recurso disponível como parte do Chrome Developer Tools



Advanced Rest Client → Extensão para o Google Chrome



Charles Proxy → software instalado na máquina

113

114

Capítulo 10:

Formulários HTML

10.1 Métodos vs Formulários ●



O formulário HTML suporta apenas os métodos GET e POST ○

Utilizando Ajax, é possível efetuar requisições com outros métodos



HTML5 previa suporte para PUT e DELETE, mas foram cancelados

Alguns navegadores em versões específicas fizeram algumas implementações para mais métodos ○

Não recomendado, por ser específico e por gerar dependência

10.2 Objeto do Formulário ●

Os dados do formulário são enviados através de um objeto criado automaticamente por ○

Objeto é criado automaticamente quando existir um do tipo “submit” e o usuário clicar no botão



Os dados são enviados para o caminho configurado no atributo “action” da “tag” utilizando o método definido



Formulário deve estar configurado adequadamente com o atributo “name” com valor esperado pelo servidor ○

O atributo “name” será usado como nome do parâmetro e seu valor será o dado inserido pelo usuário no formulário

115

First name: Last name:



url/form.jsp?firstName=John&lastName=Wayne

10.3 Atributo

Valor

action

URL

autocomplete

on off

method

get post

name

myFormName

Descrição

Caminho no qual os dados serão submetidos

Especifica se um formulário pode ter a funcionalidade de autocompletar do navegador

Método HTTP no qual os dados serão submetidos

Nome do formulário

116

novalidate

---

target

_blank _self

Formulário não deve ser validado quando submetido

Especifica onde a resposta será exibida após submissão

10.4 method ●

Configura como o formulário enviará os dados ○

Servidor deve estar configurado para receber os dados utilizando um dos métodos



Os “verbos” de ação suportados pelo formulário são: ○

GET



POST

10.5 name ●

Atributo no qual é utilizado para enviar os dados ao servidor



Servidor deve estar configurado adequadamente para receber os dados ○



Com valor correto do atributo "name" e método adequado de envio

Seu valor deve ser o mesmo usado no servidor ○

Se os valores forem diferentes não funcionará

117

EP:

Objeto do Formulário

1.

Crie o arquivo de nome "form_submit.html"

2.

Adicione a "tag" :

3.

Dentro dela adicione duas "tags" : First name: Last name:

4.

Salve e teste

5.

Ainda dentro da "tag" adicione o botão para enviar os dados:

6.

Salve e teste novamente a.

Perceba que ao clicar no botão a URL muda e os valores do atributo "name" são utilizados na URL pelo método padrão GET

7.

Adicione o seguinte atributo à "tag" :

8.

action="http://httpbin.org/get" Seu código deve estar similar à: First name: Last name:

9.

Abra o Chrome Developer Tools e verifique os dados enviados a.

Antes de enviar abra a ferramenta

b.

Entre na aba “Network”

c.

Adicione as informações no formulário e clique para enviar

118

d.

Clique no primeiro item (“arquivo) de nome “get”

e.

Clique na sub aba “Headers” e verifique os dados em “Query String Parameters”

10.

Altere os atributos de para:

11.

Salve e teste a.

Faça o mesmo teste anterior usando o Chrome Developer Tools

119

120

Capítulo 11:

Validação

11.1 Papel do Front-end ●



Responsável pela exibição de dados ○

Recebe e envia dados



Ex: exibir lista de produtos com valor e descrição

Opcionalmente, pode ajudar na validação de algum campo para evitar a requisição ○

Diminui o tráfego de dados e a quantidade de requisições para o servidor lidar

○ ●

Ex: validar se um campo foi preenchido

Deve possuir código que gerencie apenas a visualização dos dados e nunca regras de negócio ou inteligência do sistema





Facilmente manipulável e passível de ataque



Ex: nunca verificar se o usuário e senha estão corretos

Nunca acessa banco de dados diretamente, requer servidor para isso

11.2 Papel do Back-end ●

Gerencia os dados enviados e transmitidos para o “front-end”



Deve possuir toda a inteligência do sistema ○

Sempre validará os dados, mesmo que a validação tenha sido aplicada no “front-end”

○ ●

Persistência dos dados geralmente ocorre em um banco de dados ○



Garante a integridade dos dados e consequentemente do sistema Somente o “back-end” tem acesso ao banco de dados

Opcionalmente pode se integrar com um ou mais servidores terceiros ○

Permite a integração entre sistemas

121

11.3 Validação ●

Processo de validação é importante para reduzir o tráfego desnecessário de dados na rede ○



Opcional no “ front-end” e obrigatório no “back-end”

Não faz sentido gerar uma requisição para o servidor para identificar se um campo foi preenchido ou não ○

11.3.1

Gera consumo de recursos desnecessários

Validações mais Comuns

Tipo Campo obrigatório

Validação Se o campo foi preenchido pelo usuário

Email

Usuário inseriu uma informação de email, como utilização do caractere arroba, se a palavra contém caracteres válidos para email, se fez uso de “.com”

Número

Se o valor inserido é um número, podendo ainda verificar se o valor está dentro de um limite máximo e mínimo, ou ainda se é inteiro ou real

Números específicos Seleção

Se o valor preenchido contém o dado desejado, como data, CPF, cep, telefone, etc Um item da lista foi selecionado () ou ainda se o usuário escolheu uma opção ( tipo radio e checkbox)

Nota: usando como exemplo o tipo “email”, perceba que não é feita a verificação real se o email existe ou não, isso é inteligência do sistema e deve ser feita pelo servidor, porém é verificado se o valor digitado é um email, ou seja, possui o caractere @ e “.com” no texto inserido pelo usuário.

122

11.3.2 ●

Validação HTML5

Os formulários do HTML5 permitem fazer uma validação simples ○

Seu uso é recomendado apenas para formulários simples que sejam visualizados em navegadores modernos



Ainda assim existem alguns navegadores modernos e atuais que não suportam alguns tipos de validação





Recurso nativo do HTML5 ○

Não necessita de código JavaScript



Tem escopo limitado e reduzido

Validação do formulário ocorre com base no tipo do utilizado e ou em sua configuração ○

Se utilizado um tipo “email” apenas valores que contiverem um e-mail serão aceitos na validação



Os dados são validados no momento em que o usuário clica no do tipo “submit” ○

possui o atributo “novalidate” que controla se todo o formulário será ou não validado



possui o atributo “formnovalidate” que controla se apenas este elemento será ou não validado

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF