HTML
Prof. Alan Ferreira dos Santos Programação Web
Estrutura Básica
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
</body>
</html>
Doctype
<!DOCTYPE html>
- Deve ser sempre a primeira linha;
- Indica ao navegador como deverá renderizar o código;
- Não é uma tag, mas sim uma instrução para o navegador identificar o que está renderizando;
HTML
<html lang="pt-br">
- É o elemento principal do DOM (Document Object Model);
- O atributo lang define a linguagem principal do documento e pode estar em qualquer elemento;
HEAD
<head>
- É a tag onde fica a parte inteligente da página;
- Local onde ficam as informações sobre a página e o seu conteúdo, chamados de metadados;
Metatag Charset
<head>
<meta charset="UTF-8">
</head>
- Define a tabela de caracteres que a página está utilizando;
- Permite que a página seja visualizada corretamente em todo mundo, em diferentes linguagens;
- UTF-8 é a tabela internacional que supre a necessidade imposta por linguagens do mundo todo, chamada de Unicode;
- Suporta cerca de 1 milhão de caracteres.
Metatag Viewport
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
- Controla e define a área de visualização do navegador;
- Width controla a largura da área de visualização;
- Initial-scale controla o nível de amplificação da página quando carregada;
- Faz o controle de como o pixel será renderizado na tela.
TITLE
<head>
<title>Document</title>
</head>
- Define o título da página;
- É utilizada por navegadores e mecanismos de busca.
- Não é uma metatag e sim um elemento único do HTML.
Modelos de Conteúdo
Modelos de Conteúdo
São regras que definem onde os elementos podem estar, se podem ter filhos ou serem pais e seus comportamentos.
Elementos de Linha
Marcam, na maioria das vezes, textos, formulários e imagens
a - strong - abbr - em - input - span
Elementos de Bloco
São como caixas que dividem o conteúdo em seções do layout
div - section - header - footer
<!-- Cria uma âncora, ligação com outra página ou conteúdo -->
<a href="">
<!-- Parágrafo -->
<p>
<!-- Ênfase -->
<em>
<!-- Forte importância -->
<strong>
<!-- Abreviação -->
<abbr title="">
<!-- Subescrito e Sobrescrito -->
<sub> e <sup>
<!-- Exclusão -->
<del>
<!-- Citação -->
<blockquote>
<!-- Imagem -->
<img src="">
<!-- Pré-formatação -->
<pre> e <code>
<!-- Tamanho reduzido -->
<small>
<!-- Quebra temática, divisor, linha horizontal -->
<hr>
<!-- Títulos, por ordem de importância -->
<h1> - <h6>
<div>
Algumas regras
- Na maioria das vezes, elementos de linha podem conter outros elementos de linha. Exemplo: um label pode conter o elemento a, mas o inverso não é possível;
- Elementos de linha nunca podem conter elementos de bloco;
- Elementos de bloco sempre podem conter elementos de linha;
- Na maioria das vezes, elementos de bloco podem conter outros elementos de bloco.
Categorias
- Conteúdo de metadados;
- Conteúdo de fluxo;
- Conteúdo de seccionamento;
- Conteúdo de cabeçalho;
- Conteúdo fraseado;
- Conteúdo embutido;
- Conteúdo interativo.
Conteúdo de metadados
Modificam a apresentação ou o comportamento do resto do documento, define ligações para outros documentos ou transmite informações por outros meios:
<base>, <command>, <link>, <meta>, <noscript>, <script>, <style> e <title>
Conteúdo de fluxo
Tipicamente contém texto ou conteúdo embutido:
<a>, <abbr>, <address>, <article>, <aside>, <audio>, <b>,<bdo>, <bdi>, <blockquote>, <br>, <button>, <canvas>, <cite>, <code>, <command>, <data>, <datalist>, <del>, <details>, <dfn>, <div>, <dl>, <em>, <embed>, <fieldset>, <figure>, <footer>, <form>, <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <header>, <hgroup>, <hr>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <keygen>, <label>, <main>, <map>, <mark>, <math>, <menu>, <meter>, <nav>, <noscript>, <object>, <ol>, <output>, <p>, <pre>, <progress>, <q>, <ruby>, <s>, <samp>, <script>, <section>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <table>, <template>, <textarea>, <time>, <ul>, <var>, <video>, <wbr>
Exercício
Listas
<!-- Lista desordenada -->
<ul type="">
<!-- Lista ordenada -->
<ol type="">
<!-- Item da lista -->
<li>
<!-- Tipos de estilo de lista -->
<!-- disc, circle, square, decimal, georgian, none, inherit, <string> value: '-' -->
Exercício
Tabelas
<!-- tabela -->
<table>
<!-- Célula de cabeçalho -->
<th colspan="" rowspan="">
<!-- Linha -->
<tr>
<!-- Célula -->
<td colspan="" rowspan="">
<!-- Agrupador de cabeçalho -->
<thead>
<!-- Agrupador -->
<tbody>
<!-- Agrupador de rodapé -->
<tfoot>
Exercício
... de volta aos tipos de conteúdos
Conteúdo de seccionamento
Definem seções principais no código, como rodapés, cabeçalhos, área do texto principal, listas de navegações:
<header>, <footer>, <article>, <aside>, <nav> e <section>
Conteúdo de seccionamento
<!-- Cabeçalho -->
<header>
<!-- Rodapé -->
<footer>
<!-- Links de Navegação -->
<nav>
<!-- Seção genérica, geralmente com título -->
<section>
Conteúdo do cabeçalho
Define o título de uma seção:
<h1>, <h2>, <h3>, <h4>, <h5>, <h6> e <hgroup>
Conteúdo fraseado
Estão nessa categoria elemento que marcam o texto do documento e elementos que marcam este texto dentro de parágrafo:
<a>, <abbr>, <area>, <audio>, <b>, <bdo>, <br>, <button>, <canvas>, <cite>, <code>, <command>, <datalist>, <del>, <dfn>, <em>, <embed>, <i>, <iframe>, <img>, <input>, <ins>, <kbd>, <keygen>, <label>, <link>, <map>, <mark>, <math>, <meta>, <meter>, <noscript>, <object>, <output>, <progress>, <q>, <ruby>, <samp>, <script>, <select>, <small>, <span>, <strong>, <sub>, <sup>, <svg>, <textarea>, <time>, <var>, <video>, <wbr>
Conteúdo embutido
Importam outras fontes de informação para o documento:
<audio>, <canvas>, <embed>, <iframe>, <img>, <math>, <object>, <svg> e <video>
Conteúdo embutido
<!-- Sons -->
<audio>
<!-- Gráficos -->
<canvas>
<!-- Integração com aplicações externas -->
<embed>
<!-- Incorporação de página -->
<iframe>
<!-- Imagem -->
<img>
<!-- Fórumas matemáticas -->
<math>
<!-- Recurso externo -->
<object>
<!-- Vetorização de imagens -->
<svg>
<!-- Vídeo -->
<video>
Conteúdo interativo
São elementos que permitem interação dos usuários:
<a>, <audio>, <button>, <details>, <embed>, <iframe>, <img>, <input>, <keygen>, <label>, <menu>, <object><select>, <textarea> e <video>
Conteúdo interativo
<!-- Botões -->
<a href=""> - <button>
<!-- Entrada de dados com lista opções -->
<select>
<!-- Caixa de texto -->
<textarea>
<!-- Entrada de Dados -->
<input type="">
Tag input
<!-- Tipos -->
<input type="" />
button
checkbox
date
datetime
datetime-local
email
file
hidden
image
month
number
password
radio
range
reset
search
submit
tel
text
time
url
week
<!-- Outos atributos -->
<input />
min
max
value
step
checked
disabled
readonly
max
maxlengh
minlengh
step
placeholder
required
pattern
Tag select
<!-- Seleção em lista -->
<select>
<!-- Opção da lista -->
<option value="">
<!-- Grupo de Opções -->
<optgroup title="">
<!-- Outos atributos -->
<select>
disabled
multiple
required
<!-- Outos atributos -->
<option>
disabled
selected
Formulários
Formulários
Representa uma seção que possui conteúdos interativos
<form>
Tag form
<!-- Atributos -->
<form>
action
name
<form autocomplete="">
on
off
<form method="">
GET
POST
<!-- Outos atributos -->
<form>
disabled
name
Validação
A validação de formulários é um recurso que facilita o trabalho de validação.
Atributos de Validação
<!-- Pattern (Expressão Regular) -->
<input pattern="[a-z]+">
<!-- Title -->
<input title="Mensagem de validação">
<!-- Deixa de validar o formulário -->
<form novalidate>
<!-- Deixa de validar o formulário com base em uma ação -->
<button type="submit" formnovalidate>
Exercício
Na página criada nos exercícios anteriores, criar um formulário dentro do cabeçalho da página para que o usuário informe seu e-mail e sua senha, ambos campos obrigatórios. O formulário também deve possuir um botão para envio das informações utilizando o método POST.
HTML5
By Alan Ferreira dos Santos
HTML5
Programação Web
- 468