Softblue Ebook HTML
Softblue Ebook HTML
Softblue
ndré Milani
Softblue
Sumário
Apresentação .............................................................................................................................4
Disclosure ...................................................................................................................................5
1. Introdução ..........................................................................................................................6
2. História da Internet ...........................................................................................................7
3. O que é HTML? .................................................................................................................9
4. O que é o CSS? ................................................................................................................. 11
5. Estrutura básica de páginas HTML ............................................................................... 12
5.1. Conteúdo hipertexto .................................................................................................... 12
5.2. Cabeçalho de uma página ........................................................................................... 14
5.3. Título da janela ............................................................................................................. 14
5.4. Configurando a codificação dos caracteres ............................................................... 15
5.5. Corpo do conteúdo....................................................................................................... 17
5.6. Integrando a página com estilos CSS ......................................................................... 18
6. Trabalhando com textos ................................................................................................. 24
6.1. Parágrafos, quebras de linha e espaços em branco .................................................. 25
6.2. Agrupamento de elementos (trechos de textos) ....................................................... 27
6.3. Negrito, itálico, sublinhado e riscado ........................................................................ 29
6.4. Textos com maior relevância semântica .................................................................... 31
6.5. Texto subscrito e sobrescrito ....................................................................................... 35
6.6. Títulos em conteúdos de texto .................................................................................... 36
7. Trabalhando com artigos e seções ................................................................................. 38
7.1. Organizando artigos em seções .................................................................................. 39
7.2. Trabalhando com links (pontos de acesso)................................................................ 42
8. Trabalhando com imagens ............................................................................................. 44
8.1. Trabalhando com vídeos ............................................................................................. 47
9. Trabalhando com listas ................................................................................................... 49
9.1. Listas não numeradas .................................................................................................. 49
9.2. Listas numeradas .......................................................................................................... 50
10. Trabalhando com tabelas ............................................................................................ 51
11. Trabalhando com formulários ................................................................................... 54
11.1. Formulário ................................................................................................................... 54
11.2. Legendas ...................................................................................................................... 54
11.3. Pontos de interação entre o formulário e o usuário ............................................... 55
12. Trabalhando com painéis ........................................................................................... 60
13. Semântica avançada da estrutura do site ................................................................. 62
14. Exemplo de página macro estruturada semanticamente........................................ 65
14.1. Estrutura básica da página ........................................................................................ 65
14.2. Construindo o topo da página .................................................................................. 68
14.3. Conteúdo principal .................................................................................................... 72
14.4. Conteúdo lateral ......................................................................................................... 75
14.5. Rodapé da página ....................................................................................................... 77
14.6. Código na íntegra ....................................................................................................... 78
15. Ufa, chegamos ao final de uma jornada! .................................................................. 83
Lista de Figuras ....................................................................................................................... 84
Lista de Códigos-Fonte ........................................................................................................... 85
Índice Remissivo ..................................................................................................................... 86
4
Apresentação
A Softblue é uma empresa de cursos online na área de programação. Fundada em 2003
na cidade de Curitiba-PR, a empresa conta atualmente com um grande portfólio de
cursos e dezenas de milhares de alunos espalhados em dezenas de países pelo mundo.
Este e-book foi criado por André Milani, sócio fundador da Softblue. André Milani é
formado em Ciência da Computação pela PUC-PR, pós-graduado em Business
Intelligence pela mesma instituição e possui diversas certificações na área de TI. É
também autor de vários livros na área de informática, entre eles o Programando para
iPhone e iPad, MySQL - Guia do Programador e Construindo Aplicações Web com PHP &
MySQL, todos pela editora Novatec. Atua desde 2003 com desenvolvimento web e
treinamentos de profissionais. Também é desenvolvedor de aplicativos para o
ambiente iOS da Apple, possuindo aplicações que juntas somam mais de 50.000
downloads na AppStore.
5
Disclosure
Este e-book foi elaborado pela Softblue e é de uso exclusivo de seu destinatário. Seu
conteúdo não pode ser reproduzido ou distribuído, no todo ou em parte, a qualquer
terceiro sem autorização expressa.
1. Introdução
Para construir um site ou uma solução web que possa ser acessada por meio de um
navegador (programa de acesso a páginas na internet), é necessário ter conhecimentos
em HTML. Fique tranquilo: se você ainda não sabe é que é um site, web ou HTML, este
e-book lhe ensinará esses conceitos.
2. História da Internet
Apesar da demanda militar ser o fator que originou a internet, muitos cientistas
também começaram a usufruir dessa invenção. Com o passar do tempo, a demanda
científica se tornou maior que a militar e a tecnologia continuou passando por
constantes evoluções, sendo subsidiada pela Fundação Nacional de Ciência dos
Estados Unidos até 1994. Além dos militares e cientistas, a internet também começou a
ser utilizada pela população para fins civis e comerciais, seja para troca de e-mails ou
para outros tipos de comunicações de softwares. Com o passar do tempo, observou-se
uma falta de padronização nos conteúdos disponibilizados entre quem a utilizava. Foi
o suficiente para dar força para alguns projetos, entre eles o do HTML, uma linguagem
de marcação de hipertexto, utilizada até os dias de hoje.
SITE: Local na internet que pode ser acessado a partir de um nome de domínio
(endereço virtual), constituído de páginas com conteúdos construídos por meio do
uso de conteúdos marcados via hipertexto (HTML).
Com o tempo a internet ganhou cada vez mais força e muitos adeptos pela sua
facilidade de utilização, por reduzir distâncias e diversas outras inovações
tecnológicas, sendo cada vez mais utilizada por diversas áreas como entretenimento,
educação, cultura e negócios.
8
Cada vez mais popular e informativa, a internet continua evoluindo até hoje. Um
conjunto de mudanças significativas tem se propagado no que se chama da nova web
2.0, transformando não o conteúdo da atual web, mas sim, em como ela se relaciona
com seus usuários. Alguns especialistas afirmam que a web original (1.0) conectava
computadores, e que a web 2.0 conecta pessoas. Redes sociais, de todos os tipos, têm
sido a grande marca da web 2.0, aproximando cada vez mais as pessoas, ao invés de
apenas computadores.
9
3. O que é HTML?
Um exemplo simples de código HTML e o site gerado a partir deste conteúdo pode
ser visualizado a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Softblue</title>
06 </head>
07 <body>
08 <table>
09 <tr>
10 <td>
11 <img src='[Link]'>
12 <br>
13 <br>
14 <h1>Site em construção</h1>
15 <br>Para maiores informações, envie um e-mail para contato@[Link]
16 </td>
17 </tr>
18 </table>
19 </body>
20 </html>
4. O que é o CSS?
Você provavelmente já deve ter ouvido falar de CSS. Essas letras representam as folhas
de estilo, ou do inglês, Cascading Style Sheets. Esse recurso não faz parte do HTML.
Trata-se de uma tecnologia própria que pode ser utilizada de forma integrada com o
HTML ou com outros tipos de formatos, como por exemplo arquivos XML.
Por meio do uso de CSS é possível definir estilos de formatação de conteúdo. Isso
implica em poder alterar tipo de fonte, tamanho, cor, margens, bordas e dezenas de
outras propriedades por meio dessa tecnologia. A grande pergunta que você pode
estar se fazendo neste momento é a seguinte: “Por qual motivo eu devo optar pelo CSS, se
eu posso alterar a cor do fundo da minha página utilizando o próprio HTML?”. Se você se fez
essa pergunta, ou se essa pergunta fez sentido para você, é porque você ainda não
conhece os benefícios do uso do CSS.
Suponha que você pretenda construir um site com várias páginas HTML: a página
principal, a página de produtos e a página de contato com a empresa. Se todas as suas
páginas tiverem o fundo na cor azul, você precisará informar a cor em três arquivos
HTML separados, na respectiva marcação HTML responsável por isso. Caso
futuramente a cor de fundo de sua página precise ser alterada de azul para vermelho,
você precisará realizar essa alteração em três lugares. Considere que existem sites com
centenas ou até mesmo milhares de páginas. Já pensou o trabalho para alterar em todas
elas? Para facilitar esse tipo de manutenção, você pode fazer uso do CSS.
Arquivos CSS são diferentes dos arquivos HTML. É possível criar um arquivo cuja
extensão seja .css e, neste, criar os estilos de formatação, incluindo o estilo que definirá
a cor de fundo de uma página. Dessa forma, todas as páginas do seu site poderão fazer
referência a este arquivo e utilizá-lo livremente, por meio dos nomes dos estilos
criados. Se futuramente for necessário alterar a cor de todas as páginas, e considerando
que todas as páginas fazem referência ao arquivo CSS criado a parte, basta alterar a cor
somente no CSS, para que todas as páginas reflitam essa alteração.
Não se preocupe se todos esses conceitos ainda parecem confusos para você. Eles
ficarão mais claros com a construção dos primeiros exemplos deste e-book.
12
Os arquivos HTML possuem um formato básico de estrutura que deve ser respeitado
em todas as páginas web, por meio das marcações de definição estrutural das páginas
hipertexto. Antes de um navegador interpretar os códigos de diagramação de
conteúdo, geralmente existem outros comandos que informam ao navegador dados
importantes, que nem sempre ficam expostos aos olhos do visitante do site.
Informações estruturais e semânticas sobre o idioma da página, conjunto de caracteres,
e diversas outras, podem (e devem) ser definidas, mesmo que não apareçam na janela
do navegador, pois são tão importantes quanto todo o resto do conteúdo.
As primeiras marcações HTML que serão apresentadas são as que dizem respeito à
estrutura das páginas web, como mostram os próximos tópicos. A partir deste ponto,
serão apresentadas as principais marcações do HTML5. Algumas apresentam
resultados visíveis na tela, outras não, mas são igualmente importantes. Não se
preocupe com o uso isolado de algumas marcações estruturais ou de semântica. Seus
usos ficarão mais claros ao serem integrados com outras marcações no decorrer deste e-
book.
Logo em seguida, a marcação <html> deve ser aberta e, antes de seu fechamento,
todo o conteúdo da página deve ser organizado e apresentado, como mostra o exemplo
a seguir.
01 <!DOCTYPE html>
02 <html>
03 <!-- Conteúdo do HTML -->
04 </html>
Como é possível notar, este comando utilizado isoladamente não exibe nenhuma
informação na tela, nem mesmo na barra de título da janela. Ele apenas define o início
e fim do conteúdo que será inserido dentro de suas marcações como conteúdo de uma
página HTML. Mesmo que algumas outras marcações funcionem mesmo sem o uso da
abertura e fechamento da marcação <html>, é importante utilizá-las, pois os algoritmos
de buscadores como o Yahoo e o Google avaliam os códigos das páginas e códigos
incompletos ou mal construídos são avaliados como menos relevantes, o que pode
impactar na posição em que o seu site aparece na relação de busca desses sites.
A marcação HTML pode ser complementada com o atributo lang, utilizado para
informar ao navegador e também aos algoritmos dos buscadores o idioma do conteúdo
da página, no seu formato de sigla ISO. No caso do idioma português brasileiro, a sigla
utilizada deve ser a pt-br. O código-fonte com essa alteração pode ser visualizado a
seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <!-- Conteúdo do HTML -->
04 </html>
O cabeçalho de uma página faz parte do conteúdo hipertexto. Por este motivo, as
marcações de abertura e fechamento do cabeçalho <head> devem estar dentro das
marcações de abertura e fechamento do arquivo <html>.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <!-- Conteúdo do cabeçalho -->
05 </head>
06 </html>
O título de uma janela é uma informação do cabeçalho do arquivo, e por este motivo
as marcações de abertura e fechamento do título <title> devem estar dentro das
15
marcações de abertura e fechamento do cabeçalho <head>, que por sua vez devem estar
dentro das marcações <html>.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <title>Capítulo HTML</title>
05 </head>
06 </html>
O título foi associado com a janela do navegador. Mas dependendo dos caracteres
envolvidos e do tipo da codificação utilizada para salvar o seu arquivo, problemas nos
caracteres especiais, como acentuações e cedilhas, podem ser apresentados. Isso ocorre
por existirem diferentes codificações que podem ser utilizadas nos arquivos de
computador, sendo recomendado que você informe no HTML qual delas você está
utilizando. No exemplo apresentado foi utilizada a codificação UTF-8, portanto isso
deve ser configurado, como será visto no próximo tópico.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
16
06 </head>
07 </html>
A marcação <meta> também pode ser utilizada para definir outras propriedades
importantes do arquivo HTML, para que os algoritmos de busca possam catalogar com
mais detalhes sua página, a fim de melhorar o posicionamento do seu site nos sites de
busca.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <meta name="description" content="Site de cursos online">
06 <meta name="keywords" content="Java, PHP, HTML, Android, iOS">
07 <meta name="author" content="André Milani (Softblue)">
08 <title>Capítulo HTML</title>
09 </head>
10 </html>
Com a estrutura atual do arquivo, estamos quase prontos para começarmos a inserir
conteúdos visíveis na tela. Para isso, precisamos conhecer mais uma marcação
importante da estrutura básica de um arquivo HTML: a marcação <body>, abordada a
seguir.
O corpo de uma página faz parte do arquivo principal. Por este motivo, as
marcações de abertura e fechamento do corpo <body> devem estar dentro das
marcações de abertura e fechamento do arquivo <html>, preferencialmente depois do
fechamento do cabeçalho </head>.
Todo o conteúdo do site como tabelas, textos, imagens e links, que serão vistos mais
adiante, deverão estar obrigatoriamente dentro da marcação <body> para terem seu
correto funcionamento assegurado. Observe um exemplo de utilização da marcação
<body> e as demais marcações que compõem a estrutura básica de uma página:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 </head>
07 <body>
08 Conteúdo da página
09 </body>
10 </html>
Vimos até o momento um código básico HTML que cria uma página com um texto
simples, mas já existem várias propriedades que podem ser formatadas visualmente,
como tipo de fonte, tamanho, cor, entre outras. Portanto vamos trabalhar com alguns
conceitos básicos do CSS.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 </head>
07 <body style="margin-left: 100px; margin-top: 50px;">
08 Conteúdo da página
09 </body>
10 </html>
Observe na linha 7 o uso do atributo style na marcação <body>. Entre as aspas que
delimitam o início e o fim do atributo style deve aparecer a formatação CSS desejada
para esta marcação. Existem centenas de formatações CSS que podem ser utilizadas e
19
você vai conhecer boa parte das principais no decorrer deste e-book, não se preocupe.
Por enquanto vamos considerar o uso da formatação de espaçamento para a margem
esquerda, que pode ser configurada pela propriedade margin-left, neste caso definida
com 100px (px é a sigla do CSS para pixels); e da margem superior, configurada pela
propriedade margin-top e definida com 50 pixels (50px). Observe que as propriedades
CSS são atribuídas por meio do operador dois pontos (:) e com um ponto e vírgula (;)
para finalizar a operação, podendo apresentar outras formatações na sequência. Este
código-fonte, quando interpretado pelo navegador, apresenta o resultado apresentado
na Figura 5-4.
Essa forma de associação entre marcações HTML e formatações CSS não é a mais
apropriada, pois dificulta a manutenção caso a formatação seja utilizada em outras
marcações da própria página. Suponha que uma determinada formatação CSS seja
utilizada em cinco momentos isolados na página, como em cinco parágrafos ou em
diferentes marcações. Seria necessário repetir a definição da formatação cinco vezes e,
caso futuramente seja necessário trocar o valor para todas elas, cinco alterações serão
necessárias.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <style>
07 .meuEstilo
08 {
09 margin-left: 100px;
10 margin-top: 50px;
11 }
12 </style>
13 </head>
14 <body class="meuEstilo">
15 Conteúdo da página
20
16 </body>
17 </html>
Por último, é necessário incluir o atributo class nas marcações que forem utilizar o
estilo criado anteriormente, indicando o nome do estilo, como ocorre na linha 14 para a
marcação <body>. Neste formato de associação entre HTML e CSS, caso existam várias
marcações fazendo referências a um estilo por meio do atributo class, basta alterar
uma única vez a formatação diretamente entre as linhas 8 e 11 para que todas as
marcações HTML que façam uso deste estilo reflitam as alterações. O resultado da
interpretação deste conteúdo HTML é o mesmo apresentado na Figura 5-4.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <style>
07 body
08 {
09 margin-left: 100px;
10 margin-top: 50px;
11 }
12 </style>
13 </head>
14 <body>
15 Conteúdo da página
16 </body>
17 </html>
operador ponto (.) utilizado no exemplo anterior. Dessa forma a marcação <body> não
precisa fazer uso do atributo class, pois a referência entre a marcação HTML e o estilo
CSS ocorre automaticamente. Para estilos de formatação específicos, e que vão se
repetir sempre para a mesma marcação, este formato pode ser utilizado.
Ainda, se para uma mesma marcação HTML você precise de diferentes estilos e
queira utilizar os nomes das marcações HTML para os diferentes estilos, você pode
fazer de uma terceira forma no CSS, que é a seguinte:
p#grande
{
font-size: 20pt;
}
p#pequeno
{
font-size: 10pt;
}
Neste caso, a marcação <p> com o atributo id definido com grande, procurará no
arquivo CSS pela formatação da tag <p>, seguido do operador # e seguido do nome
definido pelo atributo id, que no caso é grande. Ou seja, procurará pelo estilo p#grande.
O mesmo vale para p#pequeno.
Pergunta comum neste momento: “Qual formato devo utilizar?”. Depende de cada
caso. Se o seu estilo puder ser utilizado por diferentes marcações HTML, é indicada a
nomenclatura com o ponto (.) no início do nome, pois ela não faz relação com
nenhuma marcação específica. Já se a formatação em questão for utilizada
exclusivamente por apenas um tipo de marcação do HTML, é recomendado utilizar a
nomenclatura que faz uso do nome da marcação HTML. E se houver diferentes
formatações para a mesma marcação HTML, o terceiro modo é o mais indicado, pois
usa o nome da marcação e ainda permite definir o título do estilo após o operador #.
Mas ainda temos um problema que pode ser resolvido: a grande maioria dos sites
na internet não possui apenas uma página, mas sim dezenas ou até mesmo centenas.
22
Neste caso será necessário repetir a marcação <style> em todos eles e, quando for
necessário mudar uma propriedade, alterar em todos os arquivos. Isso não parece uma
coisa prática, certo?
Para contornar este problema, o CSS pode (e deve) ser mantido em um ou mais
arquivos a parte, separado das páginas HTML. Dessa forma é possível criar referências
para os arquivos CSS a partir das páginas, mantendo as formatações em um único
lugar, facilitando a manutenção.
Para fazer isso, primeiro vamos separar o CSS do HTML. Crie um novo arquivo,
chamado [Link], com o conteúdo apresentado no Código-Fonte 5:11.
01 .meuEstilo
02 {
03 margin-left: 100px;
04 margin-top: 50px;"
05 }
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body class="meuEstilo">
09 Conteúdo da página
10 </body>
11 </html>
deste e-book várias formatações serão apresentadas, relacionadas aos itens e marcações
HTML abordadas em cada momento.
Agora que você já tem uma base da estrutura fundamental de um arquivo HTML e
da integração com CSS, vamos dar sequência com as principais marcações e suas
propriedades de formatação mais populares.
24
Outra curiosidade importante para quem está tendo seu primeiro contato com o
HTML é que abrir um arquivo hipertexto em um editor como o Microsoft Word e
colorir seus parágrafos não faz com que esses resultados sejam repassados para o
conteúdo hipertexto, nem mesmo serem interpretados no navegador. Isso quer dizer
que até mesmo a quebra de linha (tecla <ENTER>) deixa de funcionar se não houver a
marcação HTML apropriada para ela no seu conteúdo hipertexto, assim como espaços
em branco redundantes. Observe o código-fonte apresentado a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 Conteúdo da página.
10 Segunda linha de conteúdo.
11 E mais conteúdo.
12 </body>
13 </html>
Figura 6-1. Textos com quebras de linhas e espaços em branco sem marcações
Observe na Figura 6-1 que as linhas aparecem todas em uma única linha. Isso se
deve ao fato do HTML necessitar de marcações inclusive para representar parágrafos e
quebras de linha. Ainda, os espaços em branco redundantes – quando aparecem dois
ou mais espaços em branco juntos – nas linhas 9 e 11, que no código-fonte mantêm o
ponto final de cada frase alinhados na mesma posição, são ignorados ao serem
interpretados pelos navegadores web.
Existem várias marcações específicas para estruturas de texto no HTML, e com elas
será possível contornar as situações mencionadas neste tópico. Você vai conhecer as
principais a partir de agora.
Existe ainda a marcação <br> que executa uma quebra de linha, podendo ser
utilizada inclusive fora das marcações que definem um parágrafo, ou dentro delas.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
26
Figura 6-2. Textos com quebras de linhas e espaços em branco com marcações
.alinhadoDireita
{
text-align: right;
}
.alinhadoEsquerda
{
text-align: left;
}
.alinhadoCentralizado
{
text-align: center;
}
.alinhadoJustificado
{
text-align: justify;
}
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <p class="alinhadoDireita">Meu parágrafo alinhado a direita.</p>
10 <p class="alinhadoEsquerda">Meu parágrafo alinhado a esquerda.</p>
11 <p class="alinhadoCentralizado">Meu parágrafo centralizado.</p>
12 <p class="alinhadoJustificado">
13 Meu parágrafo justificado. Ele deve ser grande o suficiente para
14 que quebras de linhas sejam necessárias para que o efeito
15 justificado possa ser visto.
16 </p>
17 </body>
18 </html>
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <p>
10 Este parágrafo possui uma
11 <span class='textoEstilo1'>parte de seu texto</span>
12 formatado utilizando a marcação span.
13 </p>
14 </body>
15 </html>
Para que essa marcação <span> funcione adequadamente, é necessário que exista
uma formatação CSS no arquivo de estilos chamada .textoEstilo1. Observe ainda que o
nome do estilo não precisa apresentar o caractere ponto (.) quando vinculado ao
atributo class nas marcações HTML. Uma opção de formatação para esse estilo pode
ser visualizada no código-fonte a seguir, que deve fazer parte do arquivo CSS.
.textoEstilo1
{
color: #FF0000;
font-size: 16;
font-family: Arial;
}
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <b>Negrito</b>
10 <i>Itálico</i>
11 <u>Sublinhado</u>
12 <s>Riscado</s>
13 Texto <b>misturando <i>estilos</i></b>
14 </body>
15 </html>
.formatoNegrito
{
font-weight: bold;
}
.formatoItalico
{
font-style: italic;
}
.formatoSublinhado
{
text-decoration: underline;
}
.formatoRiscado
{
text-decoration: line-through;
}
01 <!DOCTYPE html>
02 <html lang="pt-br">
31
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <span class="formatoNegrito">Negrito</span>
10 <span class="formatoItalico">Itálico</span>
11 <span class="formatoSublinhado">Sublinhado</span>
12 <span class="formatoRiscado">Riscado</span>
13 Texto <span class="formatoNegrito">misturando
14 <span class="formatoItalico">estilos</span></span>
15 </body>
16 </html>
Por exemplo: considere um site que apresenta um e-book de HTML como produto
principal a ser divulgado. Pode ser interessante nesta página ressaltar as palavras e-
book e HTML de alguma forma, para que os algoritmos dos buscadores da web (Yahoo,
Google e outros) possam priorizar essas palavras nessa página. Assim, as chances da
página aparecer nos primeiros resultados dos buscadores em casos de busca por
termos como e-book de HTML aumentam potencialmente. Esta página poderia ser
construída como mostra o código-fonte a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 Este texto é sobre <strong>HTML</strong>,
32
Figura 6-6. Textos com formatações clássicas via marcações HTML com relevância semântica
.formatoNeutro
{
font-weight: normal;
}
A utilização do estilo que remove o negrito pode ser visualizado no arquivo HTML
apresentado a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 Este texto é sobre <strong class="formatoNeutro">HTML</strong>.
10 </body>
11 </html>
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <p>
10 Esta página apresenta trechos de códigos do <strong>algoritmo
11 de busca binária</strong>.
12 </p>
13 <p>
14 O nome da busca vem do inglês <em>binary search algorithm</em>.
15 </p>
16 <code>
17 <pre>
18 public static int buscaBinaria(int[] array, int valor){
19 int inicio = 0;
20 int fim = [Link]-1;
21
22 while(inicio <= fim){
23 int meio = (inicio+fim)/2;
24
25 if(array[meio] == valor){
26 return meio;
27 }
28 if(valor > array[meio]){
29 inicio = meio+1;
34
30 } else {
31 fim = meio-1;
32 }
33 }
34 return -1;
35 }
36 </pre>
37 </code>
38 <p>
39 O algoritmo inicia criando as variáveis <var>inicio</var>
40 e <var>fim</var>. O programa iniciará quando o usuário
41 pressionar a tecla <kbd>ENTER</kbd>, e apresentará o
42 resultado no final, que pode ser <samp>5 BUSCAS</samp>.
43 </p>
44 </body>
45 </html>
são marcadas para que tenham maior relevância nos sites de busca, quando um
estudante de programação, por exemplo, buscar pelo termo algoritmo de busca binária
em um buscador da web.
Para forçar a interpretação das quebras de linhas no HTML, foi utilizada a marcação
<pre>, aberta na linha 17 e fechada na linha 36, dentro da marcação <code>. A marcação
<pre> pode ser utilizada tanto com a marcação <code> como em conjunto com outras.
Sua funcionalidade é apresentar textos pré-formatados, forçando a impressão de
quebras de linhas e espaços em branco existentes nos textos delimitados por esta
marcação.
A marcação <sub> apresenta o texto delimitado por ela alinhado abaixo do texto
padrão, enquanto a marcação <sup> tem um efeito similar, mas alinhando o texto acima
36
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <p>
10 A fórmula da água é: H<sub>2</sub>O
11 </p>
12 <p>
13 A fórmula da hipotenusa é: a<sup>2</sup> = b<sup>2</sup> + c<sup>2</sup>
14 </p>
15 </body>
16 </html>
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <h1>Titanic</h1>
10 <h2>O maior navio do mundo</h2>
11 <p>
12 O Titanic foi construído para ser o maior do mundo.
13 </p>
14 <p>
15 Este navio ficou famoso por causa de seu acidente na viagem inaugural.
16 </p>
17 </body>
18 </html>
Para ficar mais claro o uso das marcações <article> e <header> e os conceitos
abordados neste tópico, considere uma página web cujo conteúdo seja sobre o navio
Titanic. Essa página geralmente vai conter um título e um texto. Dessa forma, a mesma
poderia ser construída como mostra o código-fonte apresentado a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <article>
10 <header>
11 <h1>Titanic</h1>
12 <h2>O maior navio do mundo</h2>
13 </header>
14 <p>
15 O Titanic foi construído para ser o maior do mundo.
16 </p>
17 <p>
18 Este navio ficou famoso por causa de seu acidente na viagem inaugural.
19 </p>
20 </article>
21 </body>
22 </html>
É dentro da marcação <header> que os títulos do artigo devem ser informados, a fim
de que tenham ainda maior relevância pelos algoritmos dos buscadores da internet.
Após isso, o cabeçalho <header> pode ser encerrado e, entre o fechamento da marcação
</header> e o fechamento da marcação </article>, o conteúdo do artigo (da página)
deve ser apresentado.
Dessa forma, eventuais menus do site (tema que será abordado no decorrer deste e-
book) ou outras estruturas não terão seus conteúdos misturados com o tema principal
da página, além de também possuírem marcações específicas para serem organizadas,
que serão abordadas mais adiante.
Suponha um site de notícias, que vai apresentar em sua página principal um resumo
do dia, com artigos de esporte, negócios e entretenimento. Neste caso é recomendado
criar uma seção para cada tema que seja diferente de outro e, dentro de cada seção,
apresentar os artigos relacionados àquela seção.
Seções podem ser criadas a partir da marcação <section>, sendo que cada seção pode
apresentar um ou mais artigos, geralmente de assuntos relacionados entre si de alguma
forma. Por exemplo, considere o código-fonte apresentado a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
40
08 <body>
09 <section>
10 <header>
11 <h1>Esportes</h1>
12 </header>
13 <article>
14 <header>
15 <h2>F1</h2>
16 </header>
17 <p>A temporada de Fórmula 1 começou.</p>
18 </article>
19 <article>
20 <header>
21 <h2>Futebol</h2>
22 </header>
23 <p>Veja os gols da rodada.</p>
24 </article>
25 </section>
26 <section>
27 <header>
28 <h1>Economia</h1>
29 </header>
30 <article>
31 <header>
32 <h2>Inflação</h2>
33 </header>
34 <p>A inflação permanece igual ao mês anterior.</p>
35 </article>
36 <article>
37 <header>
38 <h2>Bolsa de Valores</h2>
39 </header>
40 <p>2% foi o aumento na bolsa hoje no Brasil.</p>
41 </article>
42 </section>
43 </body>
44 </html>
Uma página pode conter quantas seções e artigos o seu autor desejar.
42
A marcação <a> informa que o conteúdo entre sua abertura e fechamento, quando
clicado, levará o acesso do usuário para algum endereço virtual específico. Já o
endereço em questão deve ser indicado pelo atributo href, disponível para essa
marcação. A seguir, alguns exemplos da utilização da marcação <a>.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <a href='[Link] para acessar o Google.
10 <br>
11 <a href='[Link]'>Clique</A> para acessar outra página.
12 </body>
13 </html>
Outro exemplo de utilização da marcação <a> pode ser conferida na linha 11. Neste
caso, o acesso direciona o usuário para outra página na mesma pasta onde o arquivo
atual se encontra. Ou seja, para funcionar adequadamente, é necessário constar na
43
Quando um endereço virtual for utilizado para apontar para outro site, é importante
que o endereço seja completo, começando pelos caracteres http. Quando o endereço for
para outra página do mesmo site, mesmo domínio de internet, apenas o endereço de
pastas é necessário.
44
Até o momento muito já foi abordado sobre texto e suas principais marcações. Mas não
é apenas de textos que as páginas web vivem e, por este motivo, imagens podem fazer
parte do conteúdo dos sites.
A inserção simples de imagens pode ser realizada por meio da marcação <img>, que
pode apresentar dois atributos: src, com o endereço virtual do arquivo de imagem para
ser exibido; e alt, com um texto que é apresentado na tela quando o usuário mantém o
cursor do mouse sobre a imagem por alguns segundos, ou até mesmo em casos onde a
imagem não carrega por algum motivo. O código-fonte a seguir apresenta um uso
simples desta marcação:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <img src="[Link]
10 alt="Mapa do Brasil">
11 </body>
12 </html>
Apesar da inserção de imagens por meio da marcação <img> ser bastante simples, ela
por si só não atende todos os critérios semânticos atualmente recomendados na
internet. Para que atenda, é necessário utilizar essa marcação em conjunto com outras
quando sua imagem apresentar conteúdo relevante. As outras marcações são a <figure>
e <figcaption>.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <figure>
10 <img src="[Link]
11 alt="Mapa do Brasil">
12 <figcaption>Softblue: de Curitiba para todo o Brasil.</figcaption>
13 </figure>
14 </body>
15 </html>
Observe a marcação <figure>, aberta na linha 9 e fechada na linha 13. Entre essas
linhas, a marcação <img> na linha 10 apresenta uma imagem que fará parte da marcação
<figure>, pois está entre a abertura e fechamento dessa marcação. Ainda dentro da
marcação <figure>, na linha 12, a marcação <figcaption> apresenta uma legenda para a
imagem. Como ambas as marcações <img> e <figcaption> estão dentro da mesma
marcação <figure>, isso caracteriza o relacionamento entre elas, associando a legenda
em questão, para a imagem informada no conjunto.
Uma dúvida bastante comum sobre este processo é: qual a diferença semântica entre
o texto apresentado no atributo alt da marcação <img> e o texto da legenda da imagem,
representado pela marcação <figcaption>? A diferença é que o texto apresentado no
atributo alt da marcação <img> deve descrever o conteúdo da imagem em si, enquanto
que a legenda da imagem é um texto de livre expressão, construído sobre qualquer
assunto relacionado à imagem.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <video width="320" height="180" controls>
10 <source src="seuVideo.mp4" type="video/mp4">
11 Seu navegador não suporta vídeos.
12 </video>
13 </body>
14 </html>
executado, e o atributo type com a definição do tipo de vídeo. Observe que é necessário
que o caminho do vídeo aponte diretamente para o arquivo do vídeo, e não para uma
página que tenha um vídeo, como páginas do YouTube por exemplo.
Ainda, é possível definir uma mensagem de texto caso o navegador do usuário não
suporte a marcação <video>, que é nova no HTML5, ou caso não suporte o tipo de vídeo
informado. Neste caso, a frase deve ser inserida entre a abertura e fechamento da
marcação <video>, como realizado na linha 11.
49
Outro recurso existente nos principais programas de edição de texto que também pode
ser utilizado no HTML é a criação e apresentação de listas de conteúdos, numeradas ou
não.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <ul>
09 <li> Item 1
10 <li> Item 2
11 <li> Item 3
12 </ul>
13 </body>
14 </html>
Observe no Código-Fonte 9:1 que a lista não numerada é aberta na linha 8 por meio
da marcação <ul> e fechada na linha 12. Todo o conteúdo presente entre essas linhas
será considerado como conteúdo da lista. Entre essas linhas, ainda, três itens foram
apresentados, cada um com sua respectiva marcação <li>, que não precisa ser fechada.
Como se trata de uma lista de itens, a quebra de linha ocorre automaticamente junto
com a marcação <li>.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <ol>
09 <li> Item 1
10 <li> Item 2
11 <li> Item 3
12 </ol>
13 </body>
14 </html>
Código-Fonte 9:[Link]
Outro recurso que permite organizar dados em massa em um site são as tabelas,
recurso que já estamos acostumados a utilizar por causa dos programas de edição de
texto e programas de planilhas.
Para manipular uma tabela em HTML, é necessário ter conhecimento de cinco novas
marcações HTML, que serão utilizadas de forma integrada umas com as outras. São
elas:
<table>: determina o início e o fim de uma tabela.
<caption>: determina a legenda da tabela.
<tr>: determina o início e o fim de uma linha da tabela.
<th>: determina o início e o fim das células do cabeçalho da tabela.
<td>: determina o início e o fim de uma célula da tabela.
Ainda, existem dois atributos que serão abordados neste tópico, relacionados ao
recurso de mesclar células. São eles:
colspan: define quantas colunas a célula deve ocupar, para funções de mesclar células.
rowspan: define quantas linhas a célula deve ocupar, para funções de mesclar células.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <table border=1>
10 <caption>Dados do relatório</caption>
11 <tr>
12 <th>Coluna 1</th>
13 <th>Coluna 2</th>
14 <th>Coluna 3</th>
15 </tr>
16 <tr>
52
17 <td rowspan='2'>A</td>
18 <td>B</td>
19 <td>C</td>
20 </tr>
21 <tr>
22 <td>E</td>
23 <td>F</td>
24 </tr>
25 <tr>
26 <td>G</td>
27 <td colspan='2'>H</td>
28 </tr>
29 </table>
30 </body>
31 </html>
A marcação <th>, por considerar o conteúdo da célula como título de uma coluna da
tabela, formata o conteúdo com negrito. Mas essa formatação, bem como qualquer
outra da tabela, pode ser alterada utilizando CSS, associando um estilo à célula em
questão.
A primeira célula da primeira linha é construída na linha 12, com o título Coluna 1.
Em seguida a segunda célula da primeira linha é construída na linha 13 e a terceira na
linha 14.
A segunda linha da tabela é apresentada entre as linhas 16 e 20. Essa linha também
apresenta três células, construídas respectivamente nas linhas 17, 18 e 19. As células
foram construídas por meio da marcação <td>, que é similar a marcação <th>, mas é
voltada para células que não apresentem o título das colunas, ou seja, é muito comum
o uso de <th> apenas na primeira linha da tabela e <td> nas demais.
Por último, a quarta linha da tabela é construída entre as linhas 25 e 28. Essa linha
pode definir novamente três colunas, mas define apenas duas, nas linhas 26 e 27. Em
particular, a célula apresentada na linha 27 faz o uso do atributo colspan, que mescla a
célula com outras da mesma linha. Neste caso, a segunda célula (linha 27) é definida
para ocupar o espaço de duas colunas, portanto ela aparece mesclada no resultado
final da página com o que seria a terceira célula desta linha da tabela.
54
11.1. Formulário
A primeira marcação referente a formulários é a que define um. Todos os campos de
um formulário devem estar declarados dentro da marcação <form>. Os principais
atributos da marcação <form> são:
method: define o tipo de envio dos dados do formulário para o servidor. As seguintes
opções podem ser utilizadas:
o get: transmite os dados na própria URL de destino do formulário, o que é
considerado menos seguro por apresentar os dados de forma desprotegida ao
enviar a requisição, mesmo no uso de HTTPS.
o post: transmite os dados na requisição do destino do formulário. Os dados ficam
ocultos, sendo mais seguro que o método GET. Se utilizado em conjunto com o
protocolo HTTPS, garante a segurança e sigilo dos dados.
action: define o endereço de destino dos dados do formulário para serem processados.
11.2. Legendas
A maioria dos formulários apresentam campos para o usuário preencher com valores
e, para a maior parte desses campos, é necessário informar ao usuário o conteúdo que
precisa ser preenchido, como o nome do usuário, idade e outros. Existe uma marcação
55
Para completar o time inicial das marcações voltadas para formulários no HTML,
existe a marcação <select>, que também apresenta um campo de interação com o
usuário. Neste caso, a marcação <select> apresenta para o usuário uma lista de valores
pré-definidos, para que o usuário possa selecionar um deles. Cada opção apresentada
por esta marcação deverá ser informada por meio de uma marcação <option>.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <form method="post" action="">
56
10 <label>Nome:</label>
11 <input type="text" name="campoNome"><br>
12 <label>Idade:</label>
13 <input type="number" name="campoIdade" min="1" max="95"/><br>
14 <label>Sexo:</label>
15 <input type="radio" name="campoSexo" value="M"> Masculino
16 <input type="radio" name="campoSexo" value="F"> Feminino<br>
17 <label>Deseja receber e-mails:</label>
18 <input type="checkbox" name="campoReceber"><br>
19 <label>Estado civil:</label>
20 <select name="campoCivil">
21 <option value="solteiro">Solteiro(a)</option>
22 <option value="casado">Casado(a)</option>
23 <option value="divorciado">Divorciado(a)</option>
24 <option value="viuvo">Viúvo(a)</option>
25 </select><br>
26 <input type="reset" value="Limpar dados">
27 <input type="submit" value="Enviar formulário">
28 </form>
29 </body>
30 </html>
A primeira informação que o usuário deve preencher é o seu nome, que é informado
por meio da marcação <label> apresentada na linha 10. O primeiro campo construído
no formulário, depois da apresentação <label> que apresenta o campo para o usuário,
está na linha 11, por meio da marcação <input> do tipo text (atributo type). Este campo
representa o nome do usuário para preenchimento. Ainda, um nome é atrelado ao
57
campo por meio do atributo name, definindo o nome do campo como campoNome. Essa
informação não aparece na tela para o usuário, mas é utilizada internamente para
enviar os dados para processamento por alguma linguagem de programação web
posteriormente. Observe que a marcação <input> não apresenta uma marcação
específica de fechamento. Ela deve ser utilizada como já foi apresentado para a
marcação <link> e <!DOCTYPE html>, ou seja, sem fechamento.
Para que o usuário possa informar o campo idade foi utilizada a marcação <input>
do tipo number na linha 13, previamente apresentada na tela pelo texto Idade: que
utilizou a marcação <label> para informar o nome do campo para o usuário. Este
campo recebeu o nome campoIdade para ser referenciado posteriormente. Campos do
tipo number restringem os valores de preenchimento para o campo, ou seja, apenas
números poderão ser utilizados. Ainda, é possível definir o valor mínimo e máximo
que possa ser preenchido por meio dos atributos min e max. Neste caso, somente valores
entre 1 e 95 serão aceitos por este campo.
Observe que o valor a ser enviado para ser processado posteriormente pelo
formulário é definido por meio do atributo value para este tipo de campo, para cada
uma das opções. Se o usuário marcar Masculino, o servidor web receberá M para este
campo; ou então F para a opção Feminino.
Existem ainda os campos de checagem, que podem ser construídos por meio da
marcação <input> do tipo checkbox, como mostra a linha 18. Neste caso, nenhum valor
precisa ser definido por meio do atributo value, pois cada campo de checagem deve
apresentar um nome de campo próprio, para cada opção existente no formulário,
sendo enviado ao servidor caso seja marcado ou não enviado caso não seja marcado.
Dessa forma, a linguagem de programação web, no servidor que irá processar o
formulário, avalia o recebimento ou não do campo, para saber se o mesmo foi marcado
(quando é enviado) ou não. Maiores detalhes sobre este processo podem ser
58
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <form method="post" action="">
10 Nome: <input type="text" name="campoNome" value="André" disabled><br>
11 Idade: <input type="number" name="campoIdade" min="1" max="95"/><br>
12 Sexo:
13 <input type="radio" name="campoSexo" value="M" checked> Masculino
14 <input type="radio" name="campoSexo" value="F"> Feminino<br>
15 Deseja receber e-mails:
16 <input type="checkbox" name="campoReceber" checked><br>
17 Estado civil:
18 <select name="campoCivil">
19 <option value="solteiro">Solteiro(a)</option>
20 <option value="casado" selected>Casado(a)</option>
21 <option value="divorciado">Divorciado(a)</option>
22 <option value="viuvo">Viúvo(a)</option>
23 </select><br>
24 <input type="reset" value="Limpar dados">
25 <input type="submit" value="Enviar formulário">
59
26 </form>
27 </body>
28 </html>
A primeira delas está na linha 10, por meio do uso do atributo disabled, que
desabilita o campo de nome para preenchimento do usuário. Observe ainda que o
atributo value foi utilizado nesta mesma linha para preencher automaticamente o
campo com um valor pré-definido, no caso o nome André.
Outra novidade nesta versão do formulário está na linha 13, utilizando o atributo
checked no campo do tipo rádio para a opção Masculino. O atributo checked informa que
o campo deve já aparecer marcado quando o formulário for carregado pelo navegador.
Esse mesmo atributo pode ser utilizado também na marcação <input> do tipo checkbox,
como ocorre na linha 16, já marcando esta opção como preenchida ao exibir o
formulário para o usuário.
O processamento de formulários não será abordado neste e-book, pois não faz parte
do HTML, mas sim das linguagens de programação web utilizadas por casa site.
60
Painéis do tipo <div> são áreas que organizam conteúdos dentro de si, com
formatações visuais específicas, separando diferentes áreas do site em painéis distintos.
A grande vantagem do uso da marcação <div> é justamente a facilidade de formatação
visual de seus elementos por meio do CSS. É muito mais prático utilizar painéis do tipo
<div> e formatá-los via CSS para diagramar os conteúdos de sua página, deixando um
conteúdo posicionado acima, do lado, em colunas, ou da forma que você achar mais
interessante.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 <link rel="stylesheet" type="text/css" href="[Link]">
07 </head>
08 <body>
09 <div class="meuDiv1">
10 <h1>Softblue</h1>
11 <p>Qualidade em cursos online</p>
12 </div>
13 </body>
14 </html>
.meuDiv1
{
background-color: #26c4f3;
color: #ffffff;
width: 300px;
height: 100px;
}
Conforme dito neste tópico, painéis do tipo <div> facilitam bastante a diagramação
de um site. Você verá o uso dessas estruturas em ação no exemplo existente no final
deste livro, não se preocupe. Como é importante que o uso da marcação <div> seja
realizado de forma adequada com outras marcações ainda não abordadas, o exemplo
será construído após conhecer essas outras marcações, que serão vistas nos próximos
tópicos.
62
Agora que você conhece um pouco mais do mundo de marcações HTML para criar o
seu site, é importante que seja abordado o tema de semântica estrutural do site de
forma mais aprofundada. Você já viu como organizar o conteúdo da sua página
utilizando a marcação <article>, <section> e várias outras, mas ainda existem outros
detalhes e marcações que devem ser considerados.
Analisando a maior parte dos sites na internet, com a evolução do tempo constatou-
se que eles possuíam algumas estruturas em comum, como por exemplo: topo da
página, menu de opções, conteúdo lateral secundário e rodapé.
A primeira das marcações macro estruturais com funções semânticas é a que define
onde começa e termina o topo do seu site, geralmente com o logotipo da empresa e
outras informações comuns entre as diferentes páginas do seu site. Essa marcação é a
<header>, que você já utilizou em conjunto com a marcação <article> anteriormente
neste e-book. Contudo, para representar o topo da página, a marcação <header> deve
estar apresentada separadamente de qualquer marcação <article> que o seu site venha
a ter, e depois da abertura da marcação <body>. Um exemplo prático será construído
logo mais adiante para ilustrar essa situação, assim que as demais marcações
estruturais forem apresentadas.
Outro ponto em comum entre diversos sites na internet são seus menus de
navegação. Eles podem aparecer no topo, na lateral ou em outras áreas. O importante
mesmo é que o menu de opções seja construído entre a abertura e fechamento da
marcação <nav>, que organiza semanticamente o conteúdo, avaliando-o como menu de
opções do site. Portanto os links do seu site que são comuns entre diversas páginas, tais
63
como a página principal do site, página de contato e outras, devem ser apresentados
entre a abertura e fechamento da marcação <nav>.
Caso a sua página venha a apresentar algum conteúdo lateral com menor relevância
do que o assunto principal da página, o mesmo deve ser estruturado entre a abertura e
fechamento da marcação <aside>.
Várias marcações macro estruturais com funções semânticas foram vistas neste
tópico. Para ilustrar o uso das mesmas, considere o código-fonte apresentado a seguir:
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <title>Capítulo HTML</title>
06 </head>
07 <body>
08
09 <header>
10 <!-- Aqui vai o topo da página -->
11 </header>
12
13 <nav>
14 <!-- Aqui vai o menu da página -->
15 </nav>
16
17 <section>
18 <article>
19 <!-- Aqui vão os conteúdos da página -->
20 </article>
21 </section>
22
23 <aside>
24 <!-- Aqui vai o conteúdo lateral da página -->
25 </aside>
26
27 <footer>
28 <!-- Aqui vai o rodapé da página -->
29 </footer>
30 </body>
31 </html>
Caso o seu site apresente conteúdo lateral, a marcação <aside> deve ser utilizada,
como mostra o exemplo apresentado entre as linhas 23 e 25. Essa marcação por si só
não realiza a diagramação do seu site apresentando o conteúdo na lateral para o
usuário. Isso deve ser feito via CSS e veremos como realizar esta formatação ainda
neste e-book, mais adiante.
Calma, muita calma nessa hora. Foram muitas marcações abordadas neste e-book, e
várias delas neste último tópico. Então por que não buscar um cafezinho para
recarregar as suas energias e visualizarmos estas marcações sendo utilizadas em
conjunto em um exemplo maior? É exatamente isso que será feito no próximo tópico
deste e-book.
65
Neste tópico será abordado um exemplo de página de internet, construída com boa
parte das marcações abordadas neste livro, organizadas semanticamente. O exemplo
fictício que será apresentado neste tópico é a construção de uma página do site da
Softblue. O objetivo principal deste exemplo é abordar o uso das marcações HTML e os
conhecimentos ensinados neste e-book, podendo o exemplo ser aprofundado e
adaptado para outras versões por você, posteriormente.
O exemplo de página que será construída pode ser visualizado na Figura 14-1.
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <meta name="description" content="Site de cursos online">
06 <meta name="keywords" content="Java, PHP, HTML, Android, iOS">
07 <meta name="author" content="André Milani (Softblue)">
08 <title>Softblue</title>
09 <link rel="stylesheet" type="text/css" href="css/[Link]">
10 </head>
11 <body>
12 <div id="raiz">
13 <!-- Aqui serão construídas as estruturas do site -->
14 </div>
15 </body>
16 </html>
A página apresentada inicia informando que o seu conteúdo é HTML por meio da
marcação <!DOCTYPE html> apresentada na linha 1, posteriormente abrindo o bloco
<html> com o atributo lang="pt-br" representando o idioma português do Brasil para o
conteúdo que será construído.
Ainda nessa primeira estrutura apresentada para a página, a marcação <body> teve
sua abertura e fechamento definidos nas linhas 11 e 15 e, dentro dela, foi criada uma
marcação <div> cuja propriedade id foi definida com o nome raiz. Isso foi feito porque
no arquivo CSS será criado um estilo chamado div#raiz para definir algumas
propriedades desta marcação.
67
Para complementar a primeira parte construída da página, vamos dar uma olhada
no arquivo CSS sugerido para utilização neste exemplo. Crie a subpasta css e, dentro
dela, crie o arquivo [Link]. Inicialmente vamos configurar o arquivo CSS para que o
fundo da página seja na cor azul, tema da Softblue. Para isso, o estilo body pode ser
definido da seguinte forma:
body
{
background-color: #26c4f3;
font-family: Century Gothic;
}
@font-face
{
font-family: Century Gothic;
src: url('/fonts/[Link]');
}
A informação do arquivo de fonte deve ser realizada por meio de estilos chamados
@font-face. Dentro desses estilos, é possível informar o parâmetro src, com o endereço
virtual do arquivo da fonte (geralmente são arquivos com extensão .ttf ou .otf) que
neste caso foram alocadas dentro de uma subpasta do projeto chamada fonts. Observe
que para informar um caminho virtual no arquivo CSS foi utilizada uma função
chamada url, passando como parâmetro o caminho em questão.
Ainda, ao abrir o arquivo da fonte, o mesmo apresenta para você o nome oficial da
fonte, e este nome é o que deve ser definido na propriedade font-family do estilo @font-
face. Se o nome for digitado incorretamente, essa instrução não vai funcionar. Portanto
atenção redobrada neste passo, pois em boa parte dos casos o nome do arquivo
(atributo src do estilo) é diferente de como se escreve por completo o nome da fonte
(atributo font-family).
@font-face
{
font-family: Century Gothic;
src: url('/fonts/[Link]');
font-weight: bold;
}
div#raiz
{
width: 610px;
margin: 0 auto;
}
O estilo div#raiz foi criado com dois objetivos. O primeiro é definir a largura total
do site em 610 pixels e, por este motivo, uma marcação <div> foi criada no arquivo
HTML, com a propriedade id definida como raiz, para fazer uso deste estilo de
formatação somente neste painel, na linha 12 do código HTML. O segundo é
centralizar esse bloco de 610 pixels horizontalmente na tela. Para isso a propriedade
margin foi definida com 0 auto, ou seja, zero pixels de margem; e auto, para centralizar
horizontalmente.
Essa foi a primeira parte da página! Deste momento para frente, construiremos o
topo, menu, corpo, conteúdo lateral e rodapé, todos contidos dentro da marcação <div>
que limita a largura do site em 610 pixels.
e, por este motivo, a marcação <nav>, que representa o menu, estará contida na
marcação <header>, que define o topo da página.
01 <div id="cabecalho">
02 <header>
03 <figure class="imagemMesmaLinhaLogotipo">
04 <img src="images/[Link]"
05 alt="Logotipo da Softblue">
06 </figure>
07
08 <nav>
09 <a href="[Link]">
10 <figure class="imagemMesmaLinhaMenu">
11 <img src="images/[Link]" alt="Empresa">
12 </figure>
13 </a>
14 <img src="images/[Link]"
15 class="imagemMesmaLinhaMenu">
16 <a href="[Link]">
17 <figure class="imagemMesmaLinhaMenu">
18 <img src="images/[Link]" alt="Cursos">
19 </figure>
20 </a>
21 <img src="images/[Link]"
22 class="imagemMesmaLinhaMenu">
23 <a href="[Link]">
24 <figure class="imagemMesmaLinhaMenu">
25 <img src="images/[Link]" alt="Contato">
26 </figure>
27 </a>
28 </nav>
29 </header>
30 </div>
Calma, não fique preocupado, pois cada passo da construção do topo será detalhado
agora para você.
Inicialmente, para facilitar a formatação visual do topo, foi criada uma marcação
<div>, aberta na linha 1 e fechada na linha 30. Será dentro dela que todo o topo será
construído. Para formatar esta marcação, trabalharemos mais para frente com o estilo
div#cabecalho, relacionado com a marcação <div> existente na linha 1, mas por enquanto
vamos deixá-lo de lado.
Após o logotipo da empresa, foi definido que o menu de opções do site seria
apresentado, ainda no topo. O menu deve conter três opções: EMPRESA, CURSOS e
CONTATO. Para cada uma dessas opções foi informada uma imagem. O menu poderia
ser construído utilizando texto, mas, para fins didáticos, optou-se neste momento em
utilizar imagens. Fique tranquilo, haverá outro menu de opções no conteúdo lateral do
site, onde serão abordadas questões voltadas ao uso de textos em menus.
Para informar o início e o fim semântico do menu da página, a marcação <nav> foi
aberta na linha 8 e fechada na linha 28. Dentro do menu, temos basicamente cinco
elementos principais. O primeiro deles é a imagem da opção EMPRESA do menu,
acessada pela marcação <img> na linha 11, semanticamente organizada pela marcação
<figure> entre as linhas 10 e 12. Por último, ainda sobre a imagem EMPRESA, ela foi
devidamente preparada para direcionar o usuário para a página em questão no caso de
clique do mouse, por meio da marcação <a> definida entre as linhas 9 e 13. Observe que
a marcação <figcaption> não foi utilizada, pois, neste momento, para esta imagem de
menu, é desejado que nenhum texto seja apresentado na tela detalhando a imagem.
Entre as opções de menu, foi definido que uma barra seria apresentada separando
as opções. Essa barra também foi fornecida em imagem e é o segundo elemento do
menu, apresentado por meio de uma marcação <img> nas linhas 14 e 15. Observe que
esta imagem em particular não fez o uso da marcação <figure>. O vínculo com uma
marcação <figure> não foi realizado neste caso porque a imagem da barra não
apresenta nenhuma informação relevante no conteúdo da página para os algoritmos de
busca. Por este motivo, optou-se em simplesmente apresentar a imagem sem nenhum
vínculo semântico.
Após a barra que separa as opções do menu ser apresentada, a segunda opção do
menu é construída. Essa opção é a CURSOS e foi construída entre as linhas 16 e 20 da
mesma forma que a opção EMPRESA foi construída anteriormente: organizando
semanticamente a marcação <img> com a marcação <figure> e criando um ponto de
acesso por meio da marcação <a>, apontando para o que pode vir a ser a página de
cursos do site.
71
Observe que as marcações <figure> das opções do menu e as marcações <img> das
barras têm suas propriedades class definidas com o valor imagemMesmaLinhaMenu,
enquanto a marcação <figure> do logotipo do site atrela o valor
imagemMesmaLinhaLogotipo para a propriedade class de sua marcação <figure>. Esses
estilos CSS devem ser criados. Se você visualizar o arquivo HTML neste momento sem
criar estes estilos, você vai observar que as imagens aparecerão uma abaixo da outra,
em uma formatação não muito indicada para o objetivo deste exemplo.
div#cabecalho
{
float: left;
width: 600px;
margin: 5px;
display: block;
clear: both;
background-color: #ffffff;
border-radius: 15px;
}
.imagemMesmaLinhaLogotipo
{
float: left;
margin: 10px;
margin-right: 30px;
}
72
Já para as imagens do menu de opções um novo estilo foi definido. Isso ocorreu
devido ao fato de que o espaçamento entre as imagens do menu apresentarão um valor
diferente para a propriedade de margem. Para as imagens do menu, o seguinte estilo
deve ser definido:
.imagemMesmaLinhaMenu
{
float: left;
margin: 10px;
margin-top: 50px;
}
Com isso, temos o topo da página e o menu de opções prontos para serem
utilizados! Mas ainda há muito a ser feito. Vamos então para a próxima parte: corpo da
página.
01 <div id="conteudo">
02 <section>
03 <article>
04 <header>
05 <h1>Cursos online</h1>
06 </header>
07 <p>
08 Quer aprender com qualidade? Venha fazer parte dos
09 melhores, venha aprender programação na Softblue!
10 Aprenda <strong>HTML</strong> por meio do nosso
11 <strong>e-book de HTML</strong> agora mesmo!
12 </p>
13 <figure>
14 <img src="images/[Link]" alt="E-book HTML">
15 <figcaption>E-book de HTML</figcaption>
16 </figure>
17 </article>
18 </section>
19 </div>
Após o título do conteúdo principal ter sido apresentado, alguns parágrafos com o
conteúdo da página podem ser informados. Neste caso, há apenas um parágrafo, entre
as linhas 7 e 12. Observe que, como o conteúdo principal desta página é sobre os
materiais da Softblue, a marcação <strong> foi utilizada para dar maior relevância a
algumas palavras-chave do conteúdo, entre elas HTML e e-book de HTML, respectivamente
nas linhas 10 e 11.
Apesar de poucas marcações fazerem relação com algum estilo CSS por meio da
propriedade id ou class, várias marcações HTML sofreram alterações no arquivo CSS
neste exemplo, a fim de apresentar uma formatação mais agradável.
div#conteudo
{
74
float: left;
width: 405px;
height: 350px;
margin: 5px;
background-color: #ffffff;
border-radius: 15px 50px 15px 50px;
}
Nesta altura do e-book você já deve estar familiarizado com todas as propriedades
CSS utilizadas no estilo div#conteudo, mas não custa revisar. São elas:
float: left: define que o elemento deve ser alinhado à esquerda em relação aos outros
elementos.
width: 405px: define que a largura do elemento será de 405 pixels.
height: 350px: define que a altura do elemento será de 350 pixels.
margin: 5px: define que a margem do elemento será de 5 pixels.
background-color: #ffffff: define que a cor de fundo do elemento será #ffffff
(branca).
border-radius: 15px 50px 15px 50px: Define que as quinas do elemento serão
arredondadas e, neste caso, com valores diferentes de acordo com cada quina. A
primeira é a quina superior esquerda, em seguida a quina superior direita, inferior
direita e inferior esquerda. Neste caso, duas quinas serão do mesmo tamanho que as
quinas já apresentadas no topo da página, e duas serão maiores.
Alguns outros estilos foram adicionados também no arquivo CSS para formatar
algumas marcações HTML em particular. São eles:
h1
{
color: #26c4f3;
margin-left: 20px;
font-size: 18pt;
}
O estilo h1 irá formatar todas as marcações <h1> no arquivo HTML, colorindo seus
textos com a cor azul #26c4f3 por meio da propriedade color, e aplicará uma margem
na lateral esquerda de 20 pixels, afastando o elemento da lateral esquerda do site, por
meio da propriedade margin-left. Ainda neste estilo, foi definido que o texto terá o
tamanho de 18 pontos, por meio da propriedade font-size com o valor 18pt.
p
{
margin-left: 20px;
}
figure
{
text-align: center;
}
figcaption
{
font-size: 10pt;
}
01 <div id="lateral">
02 <aside>
03 <a href="[Link]">
04 <p id="lateral">Como funciona?</p>
05 </a>
06 <a href="[Link]">
07 <p id="lateral">Certificado</p>
08 </a>
09 <a href="[Link]">
10 <p id="lateral">Nossos instrutores</p>
11 </a>
12 <a href="[Link]">
13 <p id="lateral">Formas de pagamento</p>
14 </a>
15 </aside>
16 </div>
O conteúdo lateral de uma página deve ser apresentado por meio da marcação
<aside>, existente entre as linhas 2 e 15, que organiza semanticamente essa estrutura.
Para apresentá-la, optou-se em criar um <div> próprio, com a propriedade id definida
como lateral, aberta e fechada respectivamente nas linhas 1 e 16, para formatar o
conteúdo lateral posteriormente por meio do arquivo CSS. Neste caso, o seguinte estilo
foi criado:
76
div#lateral
{
float: left;
width: 185px;
margin: 5px;
height: 350px;
background-color: #ffffff;
border-radius: 15px 50px 15px 50px;
}
Talvez o fator mais importante a ser considerado entre os estilos deste exemplo diz
respeito às larguras. Cuidado para não errar na matemática! Se o elemento <div> raiz
do site foi definido para ter 610 pixels de largura, a soma das larguras do elemento
<div> do conteúdo principal e do conteúdo lateral, acrescido de suas margens, não
pode ser superior a este valor. Caso seja, o elemento <div> raiz utilizará quebra de linha
para que o elemento apresentado por último possa ser apresentado com seu tamanho
maior em uma nova linha, ou seja, o conteúdo lateral poderá aparecer abaixo do
conteúdo principal.
p#lateral
{
margin-left: 10px;
}
Para o conteúdo lateral, ficou estipulado que os parágrafos terão uma margem
menor em relação ao lado esquerdo do conteúdo, neste caso definido pela propriedade
margin-left apresentada com o valor 10px.
Outra alteração interessante que pode ser feita com arquivos CSS é a alteração da
cor dos links HTML. Observe os seguintes estilos:
a:link
{
color: #26c4f3;
text-decoration: none;
}
a:visited
{
color: #26c4f3;
text-decoration: none;
}
a:hover
{
text-decoration: underline;
}
O estilo a:link define que os links ainda não visitados no site terão a cor azul por
meio da propriedade color definida com o valor #26c4f3. Ainda, a propriedade text-
decoration definida com o valor none informa que os links do site não devem aparecer
com o tradicional efeito de sublinhado.
A mesma formatação foi aplicada aos links já visitados, por meio do estilo a:visited,
atribuindo as mesmas características. E para adicionar o efeito de sublinhado ao link
somente quando o usuário passar o mouse sobre o mesmo, foi definido o estilo a:hover,
com o efeito text-decoration: underline.
01 <div id="rodape">
02 <footer>
78
div#rodape
{
float: left;
width: 600px;
margin: 5px;
background-color: #ffffff;
text-align: center;
border-radius: 15px;
}
01 <!DOCTYPE html>
02 <html lang="pt-br">
03 <head>
04 <meta charset="utf-8">
05 <meta name="description" content="Site de cursos online">
06 <meta name="keywords" content="Java, PHP, HTML, Android, iOS">
07 <meta name="author" content="André Milani (Softblue)">
08 <title>Softblue</title>
09 <link rel="stylesheet" type="text/css" href="css/[Link]">
10 </head>
11 <body>
12 <div id="raiz">
13
14 <div id="cabecalho">
15 <header>
16 <figure class="imagemMesmaLinhaLogotipo">
17 <img src="images/[Link]"
18 alt="Logotipo da Softblue">
19 </figure>
20
21 <nav>
22 <a href="[Link]">
23 <figure class="imagemMesmaLinhaMenu">
79
86 </div>
87
88 </div>
89 </body>
90 </html>
A seguir o código-fonte do arquivo CSS, que também pode ser baixado no site da
Softblue, na área deste e-book:
01 body
02 {
03 background-color: #26c4f3;
04 font-family: Century Gothic, Tahoma, Arial;
05 }
06
07 @font-face
08 {
09 font-family: Century Gothic;
10 src: url('/fonts/[Link]');
11 }
12
13 @font-face
14 {
15 font-family: Century Gothic;
16 src: url('/fonts/[Link]');
17 font-weight: bold;
18 }
19
20 div#raiz
21 {
22 width: 610px;
23 margin: 0 auto;
24 }
25
26 div#cabecalho
27 {
28 float: left;
29 width: 600px;
30 margin: 5px;
31 background-color: #ffffff;
32 border-radius: 15px;
33 }
34
35 .imagemMesmaLinhaLogotipo
36 {
37 float: left;
38 margin: 10px;
39 margin-right: 30px;
40 }
41
42 .imagemMesmaLinhaMenu
43 {
44 float: left;
45 margin: 10px;
46 margin-top: 50px;
47 }
48
49 div#conteudo
50 {
81
51 float: left;
52 width: 405px;
53 height: 350px;
54 margin: 5px;
55 background-color: #ffffff;
56 border-radius: 15px 50px 15px 50px;
57 }
58
59 h1
60 {
61 color: #26c4f3;
62 margin-left: 20px;
63 font-size: 18pt;
64 }
65
66 p
67 {
68 margin-left: 20px;
69 }
70
71 figure
72 {
73 text-align: center;
74 }
75
76 figcaption
77 {
78 font-size: 10pt;
79 }
80
81 div#lateral
82 {
83 float: left;
84 width: 185px;
85 margin: 5px;
86 height: 350px;
87 background-color: #ffffff;
88 border-radius: 15px 50px 15px 50px;
89 }
90
91 p#lateral
92 {
93 margin-left: 10px;
94 }
95
96 a:link
97 {
98 color: #26c4f3;
99 text-decoration: none;
100 }
101
102 a:visited
103 {
104 color: #26c4f3;
105 text-decoration: none;
106 }
107
108 a:hover
109 {
110 text-decoration: underline;
111 }
112
82
113 div#rodape
114 {
115 float: left;
116 width: 600px;
117 margin: 5px;
118 background-color: #ffffff;
119 text-align: center;
120 border-radius: 15px;
121 }
Não foi fácil, mas certamente foi bastante produtivo. As principais marcações do
HTML5 e ainda várias e várias propriedades do CSS 3 foram abordadas, capacitando
você a trabalhar com essas tecnologias em seus projetos.
Deixo aqui um grande abraço e meus mais sinceros parabéns por você ter concluído
esta etapa! Encontro você em breve nos eventos ou materiais da Softblue. Até mais!
84
Lista de Figuras
Figura 3-1. Exemplo de página HTML .............................................................................................. 10
Figura 5-1. Título da página apresentado no topo da janela do navegador ................................... 15
Figura 5-2. Caracteres corretamente interpretados pelo navegador ............................................... 16
Figura 5-3. Página simples com conteúdo ......................................................................................... 18
Figura 5-4. Formatando margens com CSS ....................................................................................... 19
Figura 6-1. Textos com quebras de linhas e espaços em branco sem marcações ........................... 25
Figura 6-2. Textos com quebras de linhas e espaços em branco com marcações ........................... 26
Figura 6-3. Diferentes tipos de alinhamentos de parágrafos via CSS ............................................. 27
Figura 6-4. Trecho de parágrafo formatado isoladamente ............................................................... 28
Figura 6-5. Textos com formatações clássicas via marcações HTML .............................................. 30
Figura 6-6. Textos com formatações clássicas via marcações HTML com relevância semântica . 32
Figura 6-7. Texto marcado com relevância sem formatação ............................................................ 33
Figura 6-8. Texto marcado com relevância em diferentes situações ............................................... 34
Figura 6-9. Textos com alinhamentos acima e abaixo do padrão .................................................... 36
Figura 6-10. Texto com título principal e subtítulo ........................................................................... 37
Figura 7-1. Artigos organizados por seção ........................................................................................ 41
Figura 7-2. Página com links (pontos de acesso)............................................................................... 42
Figura 8-1. Página com imagem ......................................................................................................... 45
Figura 8-2. Página com imagem marcada de conteúdo relevante e legenda ................................. 46
Figura 8-3. Página com vídeo ............................................................................................................. 47
Figura 9-1. Página com lista sem numeração .................................................................................... 49
Figura 9-2. Página com lista numerada ............................................................................................. 50
Figura 10-1. Tabela construída em HTML......................................................................................... 52
Figura 11-1. Formulário construído em HTML ................................................................................ 56
Figura 11-2. Preenchendo campos e selecionando valores via HTML............................................ 59
Figura 12-1. Página com painel .......................................................................................................... 60
Figura 14-1. Exemplo fictício de página da Softblue para ser construída....................................... 65
85
Lista de Códigos-Fonte
Código-Fonte 3-1. [Link] .................................................................................................. 9
Código-Fonte 5-1. [Link] .............................................................................................. 12
Código-Fonte 5-2. [Link] ....................................................................... 13
Código-Fonte 5-3. [Link] .............................................................................................. 14
Código-Fonte 5-4. [Link] ................................................................................................ 15
Código-Fonte 5-5. [Link] ............................................................................................... 16
Código-Fonte 5-6. [Link] .......................................................... 16
Código-Fonte 5-7. [Link] .............................................................................................. 17
Código-Fonte 5-8. [Link] ........................................................................... 18
Código-Fonte 5-9. [Link] .......................................................................... 20
Código-Fonte 5-10. [Link] ............................................................................ 20
Código-Fonte 5-11. [Link] .......................................................................................... 22
Código-Fonte 5-12. [Link] .......................................................................... 22
Código-Fonte 6-1. [Link] ...................................................................................... 24
Código-Fonte 6-2. [Link] ..................................................................................... 26
Código-Fonte 6-3. [Link] ..................................................................... 27
Código-Fonte 6-4. [Link] ............................................................................... 28
Código-Fonte 6-5. [Link] .................................................. 29
Código-Fonte 6-6. [Link] ............................................................ 31
Código-Fonte 6-7. [Link] .............. 32
Código-Fonte 6-8. [Link] ....................................................... 32
Código-Fonte 6-9. [Link] ............................................................... 34
Código-Fonte 6-10. [Link] .............................................................. 36
Código-Fonte 6-11. [Link] ................................................................................................ 37
Código-Fonte 7-1. [Link] .............................................................. 38
Código-Fonte 7-2. [Link]....................................................................... 40
Código-Fonte 7-3. [Link] .................................................................................................... 42
Código-Fonte 8-1. [Link]................................................................................................. 44
Código-Fonte 8-2. [Link] ............................................................................................ 45
Código-Fonte 8-3. [Link] ............................................................................................. 47
Código-Fonte 9-1. [Link] ................................................................................................... 49
Código-Fonte [Link] .................................................................................................... 50
Código-Fonte 10-1. [Link] ................................................................. 52
Código-Fonte 11-1. [Link] ................................................................ 56
Código-Fonte 11-2. [Link]........................................................... 59
Código-Fonte 12-1. [Link] ............................................................................................... 60
Código-Fonte 13-1. [Link] ............................................................................. 63
Código-Fonte 14-1. [Link] ...................................................................................... 80
Código-Fonte 14-2. [Link] .................................................................................................................. 82
86
Índice Remissivo
@font-face, 67, 68, 80 <option>, 55, 58
<!--, 12, 13, 14, 63, 66 <p>, 21, 25, 28, 33, 34, 36, 37, 38, 73, 74,
<!DOCTYPE html>, 12 76, 78, 79
<a>, 42, 70 <s>, 29
<article>, 38, 39, 40, 62, 63, 64, 73, 79 <samp>, 33, 35
<aside>, 63, 64, 75, 79 <section>, 39, 40, 62, 63, 64, 73, 79
<b>, 29 <select>, 55, 58, 59
<body>, 9, 17, 18, 20, 24, 25, 27, 28, 29, <source>, 47
31, 32, 33, 36, 37, 38, 40, 42, 44, 45, 47, <span>, 27, 28, 30
51, 55, 58, 60, 62, 63, 64, 65, 66, 78 <strong>, 31, 32, 34, 35, 73
<br>, 9, 25, 26, 35, 42, 56, 58 <sub>, 35, 36
<caption>, 51, 52 <sup>, 35, 36
<code>, 33, 35 <table>, 9, 51, 52
<div>, 60, 61, 65, 66, 68, 69, 71, 72, 75, <td>, 9, 51, 53
76, 77 <th>, 51, 53
<em>, 33, 35 <title>, 14, 18, 65, 66
<figcaption>, 45, 46, 70, 73, 75 <tr>, 9, 51, 52, 53
<figure>, 45, 46, 70, 71, 72, 73, 75, 79 <u>, 29
<footer>, 63, 64, 77, 79 <ul>, 49, 50
<form>, 54, 55, 56 <var>, 33, 35
<h1>, 36, 41, 73, 74 <video>, 47, 48
<h2>, 36, 41 -->, 12, 13, 14, 63, 66
<h3>, 36 a:hover, 77
<h4>, 36 a:link, 77
<h5>, 36 a:visited, 77
<h6>, 36 action, 54, 55, 58
<head>, 9, 14, 15, 16, 17, 18, 19, 20, 22, alt, 44, 45, 46, 69, 73, 78, 79
24, 25, 27, 28, 29, 31, 32, 33, 36, 37, 38, author, 16, 66, 78
39, 42, 44, 45, 47, 49, 50, 51, 55, 58, 60, border, 51, 52, 71, 74, 76, 78, 80, 81, 82
63, 65, 66, 78 charset, 9, 15, 16, 17, 18, 19, 20, 22, 24,
<header>, 38, 39, 40, 41, 62, 63, 64, 69, 25, 27, 28, 29, 31, 32, 33, 36, 37, 38, 39,
73, 78, 79 42, 44, 45, 47, 49, 50, 51, 55, 58, 60, 63,
<html>, 12, 13, 14, 15, 17, 18, 65, 66 66, 78
<i>, 29 checkbox, 55, 56, 57, 58, 59
<img>, 44, 45, 46, 70, 71 checked, 58, 59
<input>, 55, 56, 57, 58, 59 class, 19, 20, 21, 22, 27, 28, 31, 32, 60, 61,
<kbd>, 33 69, 71, 73, 78, 79
<label>, 55, 56, 57 color, 28, 61, 67, 71, 74, 76, 77, 78, 80, 81,
<li>, 49, 50 82
<link>, 22, 57, 66 colspan, 51, 52, 53
<nav>, 62, 63, 64, 69, 70, 78 content, 16, 66, 78
<ol>, 50 controls, 47
87
CSS, 10, 11, 14, 18, 19, 20, 21, 22, 23, 24, method, 54, 55, 58
26, 27, 28, 30, 31, 32, 35, 53, 60, 61, 64, name, 16, 55, 56, 57, 58, 66, 78
66, 67, 68, 69, 70, 71, 73, 74, 75, 76, 77, number, 55, 56, 57, 58
78, 80, 83 post, 54, 55, 58
description, 16, 66, 78 radio, 55, 56, 57, 58
disabled, 55, 58, 59 rel, 22, 24, 25, 27, 28, 29, 31, 32, 33, 36,
float, 71, 72, 74, 76, 78, 80, 81, 82 37, 38, 39, 42, 44, 45, 47, 49, 50, 51, 55,
font-family, 28, 29, 67, 68, 80 58, 60, 66, 78
font-size, 21, 28, 29, 74, 75, 81 reset, 55, 56, 58
font-weight, 30, 32, 68, 80 rowspan, 51, 52, 53
get, 54 selected, 58, 59
height, 47, 61, 74, 76, 81 semântica, 10, 12, 16, 31, 32, 46, 62, 69,
href, 22, 24, 25, 27, 28, 29, 31, 32, 33, 36, 78
37, 38, 39, 42, 44, 45, 47, 49, 50, 51, 55, sites de buscas, 10
58, 60, 66, 69, 75, 78, 79 src, 9, 44, 45, 47, 67, 68, 69, 73, 78, 79, 80
HTML, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, style, 18, 19, 20, 22, 30
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, stylesheet, 22, 24, 25, 27, 28, 29, 31, 32,
28, 29, 30, 31, 32, 33, 35, 36, 37, 38, 39, 33, 36, 37, 38, 39, 42, 44, 45, 47, 49, 50,
42, 43, 44, 45, 47, 48, 49, 50, 51, 52, 53, 51, 55, 58, 60, 66, 78
54, 55, 56, 57, 58, 59, 60, 62, 63, 65, 66, submit, 55, 56, 58
68, 71, 72, 73, 74, 75, 76, 77, 78, 79, 83 text, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32,
HTML5, 10, 12, 48, 62, 83 33, 36, 37, 38, 39, 42, 44, 45, 47, 49, 50,
Hyper Text Markup Language, 7 51, 55, 56, 58, 60, 66, 75, 77, 78, 81, 82
id, 21, 66, 68, 69, 71, 73, 75, 76, 77, 78, 79 text/css, 22, 24, 25, 27, 28, 29, 31, 32, 33,
keywords, 16, 66, 78 36, 37, 38, 39, 42, 44, 45, 47, 49, 50, 51,
LATIN1, 17 55, 58, 60, 66, 78
left, 26, 71, 72, 74, 76, 78, 80, 81, 82 text-decoration, 30, 77, 81
marcações, 9 type, 22, 24, 25, 27, 28, 29, 31, 32, 33, 36,
margin, 18, 19, 20, 22, 68, 71, 72, 74, 76, 37, 38, 39, 42, 44, 45, 47, 48, 49, 50, 51,
77, 78, 80, 81, 82 55, 56, 58, 60, 66, 78
margin-left, 18, 19, 20, 22, 74, 77, 81 underline, 30, 77, 81
margin-right, 72 UTF-8, 15, 17
margin-top, 18, 19, 20, 22, 72, 80 value, 55, 56, 57, 58, 59
meta, 9, 14, 15, 16, 17, 18, 19, 20, 22, 24, web 2.0, 8
25, 27, 28, 29, 31, 32, 33, 36, 37, 38, 39, width, 47, 61, 68, 71, 74, 76, 78, 80, 81, 82
42, 44, 45, 47, 49, 50, 51, 55, 58, 60, 63,
65, 66, 78