Buscar

Livro - Programação Web

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 352 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 352 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 352 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

PROGRAMAÇÃO WEB
Ricardo Sonaglio Albano
Evandro Zatti
Te
cn
o
lo
g
ia
P
R
O
G
R
A
M
A
Ç
Ã
O
 W
E
B
R
ic
ar
d
o 
S
on
ag
lio
 A
lb
an
o
E
va
nd
ro
 Z
at
ti
Curitiba
2017
Programacao
Web
çã
Ricardo Sonaglio Albano 
Evandro Zatti 
Ficha Catalográfica elaborada pela Fael. Bibliotecária – Cassiana Souza CRB9/1501
A321e Albano, Ricardo Sonaglio
Programação web / Ricardo Sonaglio Albano, Evandro Zatti . – .
Curitiba: Fael, 2017.
350 p..: il.
ISBN 978-85-60531-94-3
1. Linguagem de programação 2. Internet I. Zatti, Evandro II. 
Título
CDD 005.1 
Direitos desta edição reservados à Fael.
É proibida a reprodução total ou parcial desta obra sem autorização expressa da Fael.
FAEL
Direção Acadêmica Francisco Carlos Sardo
Coordenação Editorial Raquel Andrade Lorenz
Revisão Editora Coletânea
Projeto Gráfico Sandro Niemicz
Capa Vitor Bernardo Backes Lopes
Imagem da Capa Shutterstock.com/Sentavio
Arte-Final Evelyn Caroline dos Santos Betim
Sumário
 Carta ao Aluno | 5
1. Introdução à Programação Web | 7
2. HTML | 25
3. CSS | 61
4. JQuery | 101
5. Softwares, Frameworks e Bootstrap | 135
6. PHP | 169
7. PHP Orientação a Objeto | 207
8. PHP: Acesso ao Banco de Dados | 243
9. Estudo de caso | 271
10. Estudo de Caso 2 | 313
 Conclusão | 339
 Gabarito | 341
 Referências | 345
Prezado(a) aluno(a),
O mercado de trabalho é carente de bons profissionais na 
área de desenvolvimento de sistemas, visto a deficiência da maioria 
em prover soluções, utilizar as melhores técnicas e implementá-las. 
Essa obra traz conceitos, exemplos e exercícios que buscam promo-
ver uma reflexão sobre o assunto e a importância do conhecimento 
numa área que expõe todas as fragilidades e expertise de negócio, a 
Carta ao Aluno
– 6 –
Programação Web
interface e a interação que é a web. Com mais de vinte anos de atuação na 
área de desenvolvimento de sistemas e banco de dados, reuni nesse material 
parte desse conhecimento, compartilhado com você para auxiliá-lo em seu 
desenvolvimento profissional.
1
Introdução à 
Programação Web
A velocidade do crescimento da internet e de todas as fer-
ramentas e recursos que advêm dessa tecnologia, modificaram 
profundamente não só a forma de comunicação entre as pessoas, 
mas a forma como interagem com um mundo muito mais digital 
e interconectado. E, desta forma, as organizações também se adap-
tam e transformam-se para continuar competitivas e inovadoras no 
seu segmento de atuação, exigindo profissionais capacitados para se 
adaptar aos novos e contínuos desafios tecnológicos.
Nesse contexto, o conhecimento e as habilidades dos desen-
volvedores web têm um papel fundamental na maneira como 
a internet é utilizada e em como isso se dará no futuro. Por esse 
motivo, esses profissionais devem estar sempre atentos às inovações, 
capacitando-se para desenvolver e adotar as últimas tecnologias, 
contribuindo assim com as novas tendências tecnológicas e com o 
futuro do mundo digital.
Ricardo Sonaglio Albano
Programação Web
– 8 –
Neste capítulo, contextualizaremos o mundo web, sua história, apli-
cações, desenvolvimento, as principais arquiteturas utilizadas e tendên-
cias futuras.
1.1 Introdução
A internet possui características que a diferenciam de qualquer outro 
meio de comunicação, e o exame de suas peculiaridades nos fornece impor-
tantes subsídios para melhor conhecer seu impacto e efeitos sobre as relações 
pessoais processadas por meio dela.
Antes de tudo, a internet não é um meio físico de comunicação, tangível 
e com dimensão facilmente determinável. Ela é uma gigantesca rede que com-
preende várias outras redes menores de computadores – é uma rede de redes.
Redes de computadores são constituídas por diversos computadores 
interligados, com o propósito de troca de dados, além de possibilitar a utili-
zação de recursos de computadores e periféricos fisicamente distantes, como 
o acesso à uma impressora instalada em um outro local, ou a pesquisa em 
um banco de dados remoto.
Muitas redes são locais ou fechadas. Algumas são constituídas por 
alguns computadores interligados, em um escritório ou um laboratório, 
por exemplo. Outras, por sua vez, estão conectadas à outras redes maiores 
que funcionam como elo de ligação entre elas e outras com finalidade 
semelhante, de maneira tal que permita a computadores de várias outras 
redes menores compartilhar dados entre si. Uma rede que interconecta 
diversas outras redes em escala global, proporcionando a todo computador 
pertencente a uma subrede o acesso a outro computador de outra subrede, 
é a internet.
1.2 Resumo sobre a evolução 
da Internet – a origem
A seguir será apresentado um breve resumo sobre os pontos mais impor-
tantes na história do mundo web.
– 9 –
Introdução à Programação Web
Quadro 1.1 – Resumo sobre a história da internet
Ano Descrição
1969 Projeto militar norte-americano desenvolvido pela Defense Advan-ced Research Project Agency (DARPA), denominado ARPANET.
1970
A Network Working Group (NWG) conclui o primeiro protocolo 
servidor a servidor (Host-to-Host protocol), chamado Network 
Control Protocol (NCP).
1972 Ray Tomlinson – criação do software básico de e-mail, com as funções de ler e enviar.
1974
Robert Kahn – criação do TCP para substituir o NCP.
Usado até hoje, o conjunto de protocolos Transmission Control 
Protocol / Internet Protocol (TCP/IP) é um padrão de comunica-
ção e endereçamento para toda e qualquer rede de computadores.
1977 Robert Kahn e Vint Cerf conseguiram realizar com sucesso a inter-ligação entre três redes de computadores.
1983 Toda a rede ARPANET adotou o protocolo TCP / IP. A inter-net nasceu.
1990
Tim Berners-Lee desenvolveu as três tecnologias fundamentais que 
continuam sendo a base da web atualmente: HyperText Markup 
Language (HTML), a linguagem de marcação (formatação) para a 
web; Uniform Resource Identifier (URI), mais comumente conhe-
cida como Uniform Resource Locator (URL), endereço único uti-
lizado para identificar cada recurso na web; e Hypertext Transfer 
Protocol (HTTP), o protocolo de transferência de hipertexto, que 
permite a recuperação de sites da web.
Também escreveu o primeiro editor de páginas da web / browser 
(WorldWideWeb.app) e o primeiro servidor web (“httpd”).
No final de 1990, a empresa CERN tornou pública a primeira 
página, utilizando o conceito de World Wide Web.
1995 A exploração comercial da internet é liberada no Brasil.
Fonte: Internet Society (s.d.); Computer History Museum (s.d); World Wide Web Foundation (s.d.).
Programação Web
– 10 –
 Saiba mais
Acesse
<http://www.evolutionoftheweb.com/#/evolution/day> e
<http://ceweb.br/linhadotempo/>
para visualizar a evolução da internet e suas ferramentas.
1.3 Diferenças entre internet, 
intranet e extranet
Os ambientes de comunicação são classificados em três tipos de redes:
 2 Internet − redes de computadores interligadas, seguindo um con-
junto de normas e protocolos para conectar milhões de usuários 
no mundo inteiro. Disponibiliza informação de forma pública, 
ligada a uma grande variedade de tecnologias (mensagens, redes 
sociais, sistemas de gerenciamento, armazenamento em nuvem 
etc.) e, por meio de todas as tecnologias disponíveis, promove 
o surgimento de novas redes corporativas, classificadas pelo seu 
nível de abrangência.
 2 Intranet − rede fechada. Uso exclusivo e restrito a um local físico 
e, portanto, desenvolvida e utilizada apenas internamente em uma 
empresa. Toda a sua estrutura e funcionamento é baseada nos pro-
tocolos, regras e aplicativos da internet. Surgiu com o objetivo de 
centralizar as informações corporativas, melhorar a comunicação, 
diminuir custos e manter o nível de segurança.
– 11 –
Introdução à Programação Web
Figura 1.1 – Exemplo de intranet
Fonte: Elaborada pelo autor.
 2 Extranet − rede formada entre uma ou mais redes, na qual uma 
empresa e seus parceiros (clientes, colaboradores, fornecedores, 
representantes, distribuidores etc.) conectam-se. Esse tipo de cone-xão utiliza-se da internet pública para acessar a Intranet, promo-
vendo o acesso à informação e a interação da empresa com seus 
colaboradores mundialmente.
Programação Web
– 12 –
Figura 1.2 – Exemplo de extranet
Fonte: Elaborada pelo autor.
1.3.1 Comparativo entre redes
Para melhor entendimento, segue comparativo englobando as principais 
características de cada ambiente.
– 13 –
Introdução à Programação Web
Quadro 1.2 – Comparativo geral sobre os tipos de redes e sua abrangência
Acesso Usuários Informação
INTERNET
Público Qualquer usuário Grande gama de infor-
mações disponíveis de 
forma pública
INTRANET
Restrito aos 
funcionários 
da empresa
Usuários da rede 
interna
Rede privada. Compar-
tilhamento ocorre ape-
nas dentro da empresa
EXTRANET
Restrito a 
clientes e 
parceiros
Redes conectadas 
ou autorizadas
Informações comparti-
lhadas entre empresas 
específicas. Rede mista 
(pública e privada)
Fonte: Elaborado pelo autor.
1.4 Web 2.0
Criada em 2004 por Tim O’Reilly (precursor e chefe-executivo da 
O’Reilly Media), a web 2.0 é uma quebra de paradigma, pois apesar de ser uma 
nova versão da internet, não visa à atualização de suas especificações técnicas, 
mas promove e potencializa as formas de tratamento do conteúdo dinâmico no 
que se refere a publicação, gerenciamento, compartilhamento e organização das 
informações, gerando um ambiente de interação, com promoção da colabora-
ção e participação dos usuários como geradores de conteúdo.
A web 2.0 também tem um importante papel na criação e disponibiliza-
ção de novas estratégias mercadológicas e sociais, com ferramentas e serviços 
mais intuitivos e fáceis de usar, como por exemplo as WIKIS (coleções de 
páginas interligadas que possibilitam que o usuário não só as consulte, mas 
também as edite), softwares colaborativos, blogs, redes sociais, fotos e vídeos.
Por causa dessa nova visão, isto é, o conceito de “web como plataforma”, 
para que uma página seja reconhecida como pertencente ao padrão web 2.0, 
deve possuir as seguintes características:
Programação Web
– 14 –
 2 fornecer experiência de conteúdo e dinamismo;
 2 promover a participação e interação do usuário de forma colaborativa;
 2 possibilitar a construção coletiva do conhecimento, promovendo o 
conceito de “inteligência coletiva”.
Esse último aspecto chama a atenção para uma nova tendência presente 
na web 2.0: a internet vista como uma plataforma de desenvolvimento e 
trabalho, com ênfase no desenvolvimento como uma “arquitetura de partici-
pação” (O’REILLY, 2005), que salienta que os desenvolvedores devem apro-
veitar ao máximo as inúmeras possibilidades geradas pela rede de inteligência 
coletiva no desenvolvimento de seus aplicativos.
No que se refere ao efeito da web 2.0 na área de desenvolvimento, 
O’Reilly (2005) salienta algumas características desejáveis que devem estar 
presentes nos aplicativos:
 2 versão Beta contínua (“The Perpetual Beta”) − todos os apli-
cativos devem ser desenvolvidos em um processo de evolução 
contínua, isto é, aberto a melhorias baseadas no comprometi-
mento e experiência de seus usuários, que devem ser tratados 
como codesenvolvedores;
 2 reutilização/programação modular − módulos, dados e 
serviços disponíveis para serem utilizados por terceiros (outros 
desenvolvedores), formando um ciclo de colaboração. Para que isso 
seja possível, é necessário estimular que a programação modular 
contenha um código simples e objetivo;
 2 monitoramento em tempo real do comportamento do usuário 
(“User eXperience − UX”) – avaliar quais recursos são usados e de 
que forma são usados, utilizando essa estratégia para a tomada de 
decisão quanto à descontinuação ou distribuição de um aplicativo;
 2 tratamento do software como serviço e não como produto − 
outra mudança de paradigma: não se adquire mais produtos (por 
exemplo, o pacote Microsoft Office), mas paga-se pela utilização de 
um serviço disponível on-line (por exemplo, o Microsoft Office 365).
– 15 –
Introdução à Programação Web
1.5 Arquitetura cliente/servidor
Baseia-se no princípio do sistema estruturado como um conjunto de 
processos cooperativos, proporcionando o compartilhamento de recursos e 
serviços. Há a presença de máquinas com maior poder de processamento e 
armazenamento que atuam como servidores, disponibilizando recursos que 
serão requisitados por diversos computadores distribuídos (clientes). Vale 
salientar que, no modelo cliente/servidor, a comunicação sempre ocorrerá 
por meio de mensagens, com protocolos de comunicação simples de requisi-
ção ou resposta.
Um servidor sempre está em contínua execução, aguardando, recebendo 
e fornecendo serviços distribuídos para as diversas solicitações simultâneas 
de seus clientes. Esta arquitetura pode ser desenvolvida apenas com servidor 
central ou com múltiplos servidores distribuídos.
Já o cliente é responsável por iniciar e terminar interações com o servi-
dor, por meio de requisições de serviços e no aguardo da resposta do servidor, 
além de exercer a função de entrada/saída de dados e de comunicação com o 
usuário, de forma transparente, mas sem que ele perceba toda a engrenagem 
existente para atender às suas demandas.
As vantagens desse tipo de arquitetura podem ser caracterizadas por 
alguns aspectos:
 2 manutenibilidade − permite que um servidor possa ser atualizado 
ou até mesmo realocado de forma transparente ao cliente;
 2 integridade e confiabilidade − como os dados são armazena-
dos no servidor, seu processo de atualização é simples e fácil de 
administrar;
 2 transparência − quando um usuário acessa/requisita qualquer 
recurso ao servidor, o tipo de processo executado deve ocorrer 
de forma imperceptível, independentemente da localização do 
servidor;
 2 segurança − por causa da centralização dos dados e recursos em 
servidores, é mais fácil implantar e manter políticas de segurança.
Programação Web
– 16 –
Figura 1.3 − Arquitetura cliente/servidor
Fonte: Shutterstock.com/dny3d.
1.6 Protocolos
Para que a comunicação entre servidor e clientes funcione, é necessário 
o uso de diversos protocolos que executam funções específicas na internet:
 2 Internet Protocol ou Protocolo de Internet (IP) − é o protocolo 
que define um endereço exclusivo para cada dispositivo conectado 
na internet (notebooks, tablets, celulares etc.);
 2 Protocolo de Controle de Transmissão (TCP) − é o protocolo 
padrão de comunicação da internet e também pode ser utilizado 
em redes privadas;
 2 Hypertext Transfer Protocol ou Protocolo de Transferência de 
Hipertexto (HTTP) − é o protocolo padrão dos navegadores da 
web. Usa o modelo baseado na arquitetura cliente/servidor;
– 17 –
Introdução à Programação Web
 2 File Transfer Protocol ou Protocolo de Transferência de Arquivo 
(FTP) − padrão utilizado em transferências de arquivos, responsá-
vel pelo controle do envio e recebimento de arquivos;
 2 Secure Sockets Layer ou Camada de Portas de Segurança (SSL) 
− atua como um protocolo de segurança que possui a função de 
verificar a identidade e o nível de confiança de um servidor. Garante 
aspectos de integridade, privacidade e autenticação. Foi substitu-
ído em grande parte pelo Transport Layer Security, ou Segurança 
da Camada de Transporte (TLS), um protocolo considerado mais 
eficiente, por proporcionar maior segurança em autenticação de 
mensagens, geração de chaves criptografadas e suporte a algoritmos 
mais atuais;
 2 Simple Mail Transfer Protocol ou Protocolo para Transferência 
de E-mail Simples (SMTP) − é o protocolo padrão que define 
como ocorrerá o envio de mensagens por meio da internet;
 2 Internet Message Access Protocol ou Protocolo de Acesso ao 
Correio da Internet (IMAP) − protocolo que realiza a manipu-
lação de acessos simultâneos em várias caixas de e-mail. Realiza a 
sincronização das caixas de e-mail do servidor e do cliente e não 
possui limitação de acesso;
 2 Post Office Protocol ou Protocolo dos Correios (POP3) − desen-
volvido para o recebimento de mensagens deservidores de e-mail. 
Tem sua utilização limitada a apenas uma caixa de e-mail.
1.7 Tendências futuras
O ritmo, a velocidade e a amplitude da geração de novas tecnologias 
exigem do profissional da área de Tecnologia da Informação (TI) grande 
dedicação, para que se mantenha sempre atualizado e apto para adaptar essas 
tecnologias nos ambientes organizacionais.
A seguir destacamos algumas dessas tecnologias que prometem mudan-
ças profundas em nosso cotidiano.
Programação Web
– 18 –
1.7.1 Web 3.0
A web 3.0 promete promover uma mudança fundamental, focando 
seus esforços na organização de forma inteligente de toda a informação/
conhecimento existente na internet – a web artificialmente inteligente. A 
W3C encabeça esse desafio, criando um grupo de cientistas que possuem a 
difícil tarefa de encontrar novas tecnologias que permitam que esse objetivo 
seja alcançado.
Utilizando-se de recursos poderosos, que unem a inteligência artificial e 
o conceito de “semantic web” (tecnologia semântica), toda e qualquer infor-
mação disponível será analisada, classificada e armazenada de tal forma que o 
computador poderá aprender o que significam os dados, e assim gerar resul-
tados mais inteligentes e precisos. É capaz ainda de compreender as necessida-
des reais de cada usuário e disponibilizar conteúdo personalizado, associando 
não só informações, como também experiências e conhecimento adquirido 
por meio da web 2.0.
1.7.2 A internet das coisas (IOT)
Alguns pesquisadores consideram que a existência do IOT já é um indí-
cio da presença da web 3.0 nos dias atuais. A Internet of Things (Internet das 
Coisas) é uma rede de objetos autônomos conectados à internet por meio de 
sensores incorporados, que permitem, por meio da coleta e troca de dados, 
sua monitoração e controle de forma remota.
A quantidade de objetos que utilizam a tecnologia IOT é imensa, 
incluindo quase tudo no mundo real, desde objetos da vida cotidiana (carros, 
celulares, calçados, relógios, cafeteiras, máquinas de lavar, refrigeradores, rou-
pas, fones de ouvido, lâmpadas etc.) até a aplicação em indústrias, transporte 
público, empresas aéreas, telecomunicação, dentre outros.
O principal objetivo em utilizar esta tecnologia é a monitoração de 
informações sobre status, localização, funcionalidades e problemas. Estas 
informações podem nos auxiliar na redução de desperdício e em melhorar 
significativamente a eficiência na utilização e operação. E mais além, demons-
trando um grande potencial de controle sobre como vivemos e trabalhamos.
– 19 –
Introdução à Programação Web
A realidade é que a IOT apresenta possibilidades intermináveis, cujo 
impacto ainda não é possível prever ou compreender por inteiro. No futuro, 
a nova regra será: “qualquer coisa que possa ser conectada, estará conectada”.
Figura 1.4 – Representação da tecnologia IOT
Fonte: Shutterstock.com/Macrovector.
1.7.3 Arquitetura Cloud-client computing
O conceito de cloud computing (computação em nuvem) já faz parte do 
cotidiano da maioria das pessoas e empresas. O servidor não fica mais situado 
em uma empresa, e sim baseado na internet, sendo utilizado como um ser-
viço contratado que permite que os usuários acessem arquivos, aplicativos e 
sistemas operacionais de qualquer lugar com acesso à internet.
A utilização de um data center em nuvem ou de diversos data centers 
interligados em substituição ao usual servidor, caracteriza-se por um novo 
modelo denominado client-cloud (cliente-nuvem). O uso de virtualização 
aumenta exponencialmente a eficiência, a capacidade de resposta às requisi-
ções de serviços e recursos, o compartilhamento e a flexibilidade de uso.
Programação Web
– 20 –
1.8 Conceitos importantes
A seguir serão apresentados alguns conceitos fundamentais para ambien-
tar o aluno aos temas que serão abordados ao longo deste livro.
 2 HTML: o Hypertext Markup Language (Linguagem de Marcação 
de Hipertexto) é a linguagem básica para o desenvolvimento de 
páginas para a web.
 2 HTML5: é a versão mais atual do HTML.
 2 CSS: linguagem de configuração visual de páginas; define o estilo.
 2 CSS3: versão mais atual do CSS.
 2 JavaScript: linguagem interpretada que é responsável pela defini-
ção do comportamento dos elementos de uma página. Por exem-
plo: o que deve ocorrer quando o usuário clica em um botão.
 2 JQuery: framework de JavaScript, isto é, uma biblioteca contendo 
funções e métodos para serem utilizados em JavaScript.
 2 Bootstrap: framework desenvolvido pelo Twitter, que aperfeiçoa 
o layout do CSS. Baseia-se na tecnologia mobile ou tecnologia res-
ponsiva, permitindo tratar o layout de uma página sem digitar uma 
linha de CSS.
 2 PHP: linguagem de programação web que permite o desenvolvi-
mento de sites dinâmicos. É um código executado apenas no servi-
dor, isto é, ele executa o programa PHP e retorna apenas a página 
HTML para o cliente.
 2 Sites responsivos: sites com layout adaptável a qualquer dispositivo.
1.9 Desenvolvimento em camadas
O desenvolvimento web está baseado em três camadas: informação, forma-
tação e comportamento. O desenvolvimento em camadas possibilita que cada 
camada seja independente uma da outra. Ou seja, se for necessário alterar a for-
mação de uma página, isso pode ser feito somente alterando o CSS, não necessi-
tando alterar o HTML, Javascript ou códigos de programação (Java, PHP etc.).
– 21 –
Introdução à Programação Web
 2 Primeira camada: informação − é a camada mais importante. Ela 
contém a base de tudo, ou seja, a informação, e está a cargo do 
HTML, que estrutura essa informação dando a ela significado. Sis-
temas, aplicações e robôs de pesquisa identificam esse significado e 
podem acessar e reutilizar essas informações. É requisito da internet 
que a informação esteja disponível a qualquer hora, lugar e acessível 
por qualquer dispositivo.
É importante ter em mente que nós, seres humanos, conseguimos 
distinguir facilmente em um texto o que é um título, um parágrafo, 
uma imagem etc. Mas o que ocorre com as máquinas que não 
possuem essa capacidade? E quando nos referimos a “máquina”, 
estamos falamos sobre navegadores, aplicações, sistemas de busca, 
smartphones etc. É por isso que o HTML é tão importante, pois é 
responsável por fazer essa identificação, “traduzindo” os elementos 
presentes na página (título, parágrafo, imagem etc.).
Deve-se ter em mente que, mesmo que a apresentação falhe (pro-
blemas no CSS ou JavaScript desabilitado no navegador), a infor-
mação requerida deve ser entregue, não importando o visual.
 2 Segunda camada: formatação – é responsável por controlar o 
visual, ou seja, como a informação será apresentada para o usuário. 
Essa responsabilidade fica a cargo do CSS. O CSS é a linguagem 
responsável por criar o visual. Ela formata o conteúdo por meio de 
regras. Essas regras controlam deste o tamanho da fonte, a cor do 
fundo da página, a posição do texto etc. Essa apresentação deverá 
funcionar independentemente do meio de acesso, podendo ser: siste-
mas de busca, aplicações, smartphones, tablets etc. Caso você esteja 
utilizando um leitor de tela, o CSS poderá controlar como a voz do 
leitor sairá pelas caixas de som. Tenha em mente que o CSS é respon-
sável pela apresentação do conteúdo em qualquer dispositivo.
 2 Terceira camada: comportamento – define-se nesta camada quais 
serão os comportamentos que cada elemento deverá possuir. Atual-
mente, o Javascript é o principal responsável por essa camada. Por 
meio do Javascript, definiremos se os elementos serão rotaciona-
dos, arrastados, dimensionados e como serão suas características. 
Programação Web
– 22 –
Resumindo, o Javascript controla os valores definidos pelo CSS e 
manipula estas propriedades.
Atualmente, o CSS3 também pode controlar alguns comporta-
mentos simples, como por exemplo, transições no estado do ele-
mento, animações etc.
Síntese
Neste capítulo foram discutidos tópicos introdutórios do mundo web, 
transitando desde a sua origem, com fins militares; sua evolução,interco-
nectando instituições de ensino; até o ponto em que se tornou uma rede 
mundial. Além disso, foram diferenciados os tipos de rede e seus ambientes 
de comunicação, verificando as principais diferenças entre internet, intranet e 
extranet. Navegamos também pelos tipos de comunicação conhecidos como 
protocolos (TCP/IP, HTTP etc.) e pela arquitetura cliente/servidor, distin-
guindo o papel de cada elemento no contexto.
Também abordamos as tendências futuras, como a internet das coisas, 
que revolucionará a forma como interagiremos no cotidiano, permitindo a 
comunicação com qualquer dispositivo.
Por fim, introduzimos alguns conceitos para os futuros profissionais de 
desenvolvimento web (sites responsivos, linguagem de marcação HTML, 
CSS, Framework etc.), e salientamos a importância do desenvolvimento em 
camadas, no qual cada componente de software está organizado de acordo 
com sua finalidade.
Atividades
1. Na arquitetura cliente/servidor, é característica de um servidor:
a) receber e responder a solicitações.
b) iniciar e terminar as conversações.
c) não prestar serviços distribuídos.
d) executar o software apenas quando for chamado.
– 23 –
Introdução à Programação Web
e) comunicar-se continuamente com outros servidores.
2. As redes aplicadas aos negócios são utilizadas pelas empresas com fina-
lidades comerciais e corporativas. Sobre estas redes, pode-se afirmar:
a) a intranet é uma rede interna, fechada e exclusiva, com acesso 
somente para os funcionários de uma determinada empresa, libe-
rado somente no ambiente de trabalho e em computadores regis-
trados na rede. Essa restrição do ambiente de trabalho é necessária, 
já que as intranets são necessariamente LANs construídas sobre a 
internet. Em outras palavras, não é possível acessar intranets de 
outro computador ligado à internet.
b) as intranets são redes restritas e fechadas a membros de um grupo 
ou funcionários de uma empresa. Uma intranet é uma versão par-
ticular da internet que funciona somente conectada a ela. Essa rede 
pode servir para troca de informação, mensagens instantâneas, 
fóruns ou sistemas de gerenciamento de sites ou serviços on-line.
c) uma extranet pode conectar funcionários de uma empresa que 
trabalham em escritórios diferentes ou pode facilitar a logística de 
pedidos justamente por interligar diferentes departamentos de uma 
mesma empresa em uma mesma rede, mas sempre numa configu-
ração de rede local.
d) a diferença entre intranet e extranet está em quem gerencia a rede 
e nos protocolos que utilizam. O funcionamento é o mesmo, a 
arquitetura da rede é a mesma, mas a extranet não utiliza os pro-
tocolos HTTP, SMTP e FTP. Além disso, em uma intranet, quem 
a gerencia é só uma empresa, enquanto que em uma extranet os 
gerentes são as várias empresas que compartilham a rede.
e) quando alguma informação da intranet é aberta a clientes ou for-
necedores da empresa, essa rede passa a ser chamada de extranet. 
A extranet é formada por redes privadas que compartilham uma 
rede entre si para facilitar pedidos, pagamentos e o que mais pre-
cisarem. Em uma extranet a empresa abre uma parte de sua rede 
para contato com o cliente ou permite uma interface de acesso dos 
fornecedores a rede.
Programação Web
– 24 –
3. A transferência de um arquivo de um computador local para um 
servidor na internet é denominada:
a) casting.
b) download.
c) upload.
d) backup.
e) SMTP.
4. Tim O’Reilly, um precursor do uso do termo web 2.0, define que:
I. o termo significa a mudança para uma internet como plata-
forma e um entendimento das regras para obter sucesso nesta 
nova plataforma.
II. a regra mais importante é o uso de aplicativos isolados, que se 
tornam melhores quanto mais são usados pelas pessoas, apro-
veitando a inteligência individual.
III. as regras referenciadas em I, feitas por O’Reilly, nunca foram 
discutidas, mesmo que de alguma outra forma, antes do sur-
gimento do termo web 2.0.
Assinale a alternativa que representa as afirmativas corretas:
a) somente a afirmativa I está correta.
b) somente a afirmativa II está correta.
c) somente a afirmativa III está correta.
d) as afirmativas I e II estão corretas.
e) todas as alternativas estão corretas.
2
HTML
A demanda por profissionais com conhecimento no desenvol-
vimento para web cresce a cada ano. Esses profissionais são alvo de 
empresas que buscam pessoas capazes de criar websites dinâmicos, 
responsivos e funcionais. O processo de desenvolvimento web refere-
-se à construção de sites que satisfaçam a necessidade do usuário.
Vale salientar que um site é diferente de outro. Cada um 
possui um público-alvo e objetivos diferentes. Sendo assim, para 
um profissional desta área, é exigida uma gama de conhecimentos, 
como: HTML, CSS, JavaScript, jQuery, linguagem de programa-
ção servidor (PHP, .NET, Java etc), usabilidade, entre outros. Afi-
nal, cada página tem suas características e são elas que representam 
a preferência do cliente.
Neste capítulo, serão abordados os seguintes assuntos: lin-
guagem HTML, finalidade, estrutura, tags principais, tags para cria-
ção de formulário e o funcionamento da característica de herança 
entre os elementos do HTML.
Ricardo Sonaglio Albano
Programação Web
– 26 –
 Saiba mais
Softwares utilizados neste capítulo:
Para que você possa acompanhar todos os códigos produzidos neste 
capítulo, é importante que você possua algum tipo de editor de texto 
simples, como o bloco de notas.
Sugestão:
Instale o Notepad++, que é um editor de texto com mais recursos 
que o bloco de notas. Obviamente, você pode optar pelo editor de 
sua preferência. Há diversos softwares e IDEs para desenvolvimento.
2.1 Introdução ao HTML
A sigla HTML significa Hyper Text Markup Language, ou seja, Lingua-
gem de Marcação de Hipertexto, tendo como finalidade a criação de páginas 
web. O HTML é a base do desenvolvimento web e toda a estrutura de um 
site é escrita em HTML. 
Por meio do HTML, podemos criar qualquer tipo de site (um buscador, 
um e-commerce, uma rede social) e inserir uma diversidade de recursos ao 
mesmo (textos, vídeos, imagens, sons etc).
É importante salientar que o HTML não é uma linguagem de 
programação, e sim, como o próprio nome diz, uma linguagem de marca-
ção. Esse é um equívoco bastante comum, pois o termo “programação” é 
bastante utilizado quando nos referimos ao desenvolvimento em HTML. 
Mas é necessário entender a diferença: Uma linguagem de programação 
deve ser capaz de fazer cálculos, mudar informações contidas em variáveis, 
tomar decisões, mudar o fluxo de execução. Algo que realmente não conse-
guimos fazer em HTML.
Atualmente, o HTML está na versão 5, com a implementação de novas 
funcionalidades que facilitam a criação de páginas com mais recursos, o que 
– 27 –
HTML
está de acordo com uma das principais características do HTML, que é a 
facilidade de compreensão e de implementação.
2.2 HTML5
O HTML5 surgiu em 2008, quando o W3C divulgou as primeiras 
especificações sobre a nova versão. Além de ser uma nova versão do HTML, 
é também um conjunto de tecnologias que permite a criação de aplicações 
mais poderosas.
A semântica é importante para que os programas possam utilizar melhor 
a informação distribuída na web. Antes do HTML5, não havia como identi-
ficar em uma página o que era cabeçalho, rodapé etc. Não havia uma tag com 
essa finalidade. Tudo era separado por meio de DIVs.
O HTML5 introduziu novos elementos (novas tags) que auxiliam os nave-
gadores a entenderem melhor as páginas que montam para o usuário. Além 
disso, com as novas tags, com valor semântico, os motores de busca têm maior 
compreensão sobre cada parte do site e, com isso, podem fazer inferências sob 
as informações de acordo com o sentido e o contexto, oferecendo aos usuários 
resultados mais relevantes. Inclusive, proporcionam um grande ganho para a 
acessibilidade. Seguem algumas das novidades presentes no HTML5:
 2 novas tags com significados semânticos que possibilitam maior 
acessibilidadeaos usuários;
 2 inclusão do elemento Canvas, que permite o desenho e renderiza-
ção de elementos gráficos usando JavaScript;
 2 maior compatibilidade com o CSS e o JavaScript;
 2 novos significados para alguns elementos;
 2 melhor tratamento de exceção;
 2 independência de plataforma;
 2 possibilidade de criar sites responsivos;
 2 redução da necessidade de plugins externos.
Programação Web
– 28 –
Figura 2.1 – Comparativo entre o uso de DIVs e as novas tags
Fonte: Elaborada pelo autor.
É importante afirmar que isso não significa que não usaremos mais o 
DIV no HTML5. O seu uso será apenas mais específico, não sendo mais 
utilizado de forma tão generalizada como antes. Por exemplo: ao diferenciar 
dois parágrafos em um SECTION, o DIV poderá ser usado.
2.3 W3C
Segundo o W3C Brasil,
o Consórcio World Wide Web (W3C) é um consórcio internacio-
nal no qual organizações filiadas, uma equipe em tempo integral e o 
público trabalham juntos para desenvolver padrões para a Web. Lide-
rado pelo inventor da web Tim Berners-Lee e o CEO Jeffrey Jaffe, o 
W3C tem como missão Conduzir a World Wide Web para que atinja 
todo seu potencial, desenvolvendo protocolos e diretrizes que garan-
tam seu crescimento de longo prazo.
2.4 Browser
Browser ou navegador é o software que permite a interação do usuá-
rio com a internet. É por meio dele que o usuário acessa todo o conteúdo 
– 29 –
HTML
disponível na rede. Os navegadores têm como função ler o código HTML, 
interpretá-lo e montar a página solicitada pelo usuário.
Há diversos Browsers disponíveis. Os mais conhecidos são: Chrome, 
Safari, Ópera, Internet Explorer e Mozilla Firefox.
Figura 2.2 − Logotipos dos navegadores
Fonte: AWS – Atomic Web Strategy.
2.4.1 Motores de renderização
Quantas vezes já nos deparamos com o mesmo site sendo apresentado 
de forma diferente em navegadores diferentes? Isso é comum. Mas por que 
isso acontece?
Os navegadores utilizam motores de renderização diferentes. A função 
do motor de renderização é justamente montar, desenhar a página. A página 
é composta de vários códigos que informam ao navegador o que e como deve 
ser feito. E cada motor de renderização interpreta esses códigos de uma forma.
Segue quadro com os motores de renderização dos principais navegadores.
Quadro 2.1 – Motores de renderização
Motor Browser
WebKit Safari, Google Chrome
EdgeHTML Microsoft Edge
Gecko Firefox
Presto Opera 7 e superior
Fonte: Elaborado pelo autor.
Programação Web
– 30 –
Vale salientar que uma página HTML é montada de cima para baixo, 
na ordem em que os componentes estão escritos no código. Nos casos onde o 
desenvolvimento da página necessite ser estruturado em colunas, será neces-
sário configurar sua ordem utilizando CSS. 
2.5 Estrutura básica do HTML
A seguir apresentamos, por meio de código, a estrutura básica de uma 
página HTML5.
<!DOCTYPE html>
<html>
 <head>
 <title>Título da página</title>
 </head>
 <body>
 Conteúdo que será exibido ao usuário
 </body>
</html>
Compreensão da estrutura da página:
 2 DOCTYPE − indica para o navegador a versão do HTML (especi-
ficação) que está sendo utilizada. Neste caso, o HTML5.
 2 HTML − o elemento principal da estrutura.
 2 HEAD − título da página, informações e configurações sobre a página. 
As informações contidas aqui não serão exibidas para o usuário.
 2 BODY − possui o conteúdo que será exibido no browser. Tudo que 
estiver dentro do BODY será exibido para o usuário.
2.5.1 Criação do primeiro exemplo prático
 2 Digite a estrutura a seguir no editor de texto.
<!DOCTYPE html>
<html>
 <head>
 <title>Estrutura Básica</title>
 </head>
– 31 –
HTML
 <body>
 Hello, World!!!
 </body>
</html>
 2 Salve o arquivo com um nome. Por exemplo, index.html.
 2 A extensão do arquivo é muito importante. Sempre deve ser defi-
nida como HTML. Essa extensão irá indicar ao navegador que o 
arquivo é uma página HTML.
 2 Para abrir o arquivo no navegador, vá até a pasta onde salvou o 
arquivo e clique com o botão direito sobre o arquivo. Escolha a 
opção “Abrir com” e então o navegador da sua preferência.
Figura 2.3 – Abrindo o arquivo
Fonte: Elaborada pelo autor.
 2 Resultado do código:
Figura 2.4 – Exemplo da estrutura básica do HTML
Fonte: Elaborada pelo autor.
Programação Web
– 32 –
2.6 Tag
Uma tag indica um elemento do HTML e é composta por um sinal de 
menor “<”, o nome do elemento e o sinal de maior “>”. Exemplo: <html>
Normalmente há uma tag de abertura <html> e a uma tag de fecha-
mento </html>. A tag de fechamento possui a uma barra “/” antes do nome 
do elemento. Mas existem algumas tags que não possuem fechamento. Por 
exemplo: a tag de quebra de linha (break row) <br>. Nestes casos, também 
pode ser utilizada a barra no final da própria tag <br />. Essas tags são conhe-
cidas como “self closing tags”.
Ao escrever o código HTML, deve-se ter atenção quanto à ordem de 
fechamento das tags. A primeira tag a ser aberta deverá ser a última a ser fechada.
Exemplos:
 2 Correto: <p> texto, texto <br/> <h2> Titulo </h2> </p>
 2 Incorreto: <p> texto, texto <br/> <h2> Titulo </p> </h2>
2.6.1 Atributo
As tags podem possuir atributos que são responsáveis por definir algu-
mas propriedades da tag. Estudaremos, detalhadamente, os atributos mais 
à frente.
Exemplos:
<p id=”resumo”>Este texto resume tudo</p>
<a href=”http://fael.edu.br/”>FAEL</a>
<table id=“notas”>
<li class=“itens”>
2.6.2 Tipos de elementos
Há, no HTML, dois tipos de elementos: os elementos de linha e os 
de bloco. São importantes pois interferirem no comportamento visual 
do elemento.
– 33 –
HTML
 2 Elementos de bloco: ocupam todo o espaço horizontal disponível, 
ou seja, ocupam a linha inteira da página. Os próximos elementos 
começarão na próxima linha livre. Elementos de bloco: div, h1 à 
h6, p, blockquote, ul, ol, form.
 2 Elementos de linha: ocupam apenas o espaço necessário. Novos 
elementos podem ocupar a mesma linha, caso haja espaço para isso. 
Elementos de linha: a, img, input, span.
Além disso, os elementos de linha não podem conter elementos de 
bloco. Já os elementos de bloco podem conter os elementos de linha. Por 
exemplo: uma lista ordenada (ol), pode conter uma imagem (img). Mas uma 
imagem não pode conter uma lista.
2.7 Principais tags
O quadro a seguir contém as principais tags utilizadas no desenvolvi-
mento de páginas web:
Quadro 2.2 – Tags
Tipo tags
Estrutural <html>, <head>, <title>, <body>
Meta informações <meta>
Script <script>, <noscript> 
Comentário <!-- [comentário] -->
Texto <p>, <br>
Título <h1> a <h6>
Listas <ol>, <ul>, <li>, <dl>
Links <a>
Imagens <img>
Tabelas <table>, <tr>, <td>
Negrito e Itálico <Strong>..</Strong> e <em>..</em>
Formulários <input>
Programação Web
– 34 –
Tipo tags
Outras <div> <span>
Fonte: Elaborado pelo autor.
Observação:
Vale salientar que as configurações de apresentação das tags (cor da fonte, 
tamanho da fonte, cor de fundo, bordas etc.) serão discutidas no próximo 
capítulo que tratará sobre o CSS.
 Saiba mais
Descubra mais sobre as tags , acessando o site do W3School: 
<https://www.w3schools.com/>. Nesse site você encontrará todas 
as tags e atributos do HTML5 com exemplos.
2.7.1 Meta
Segundo a especificação do W3C, a tag Meta representa vários tipos de 
metadados que não podem ser informados usando os elementos título, base, 
link, estilo e script. O principal atributo desta tag é o CHARSET. Ele indica 
o conjunto de caracteres que será usado na página. Atualmente utiliza-se 
o padrão UTF-8 de configuração para evitar a apresentação de caracteres 
desconfigurados, principalmente no que se refere à acentuação na página.
A tag Meta localiza-se dentro do cabeçalho da página <head>.
Exemplo:
<!DOCTYPE html>
<html>
 <head>
 <meta charset=”UTF-8”>
 <title>Exemplo COM tag META</title>
 </head>
 <body>
 Apresentação
 </body>
</html>
– 35 –
HTML
 Importante
A partir deste ponto, com raras exceções, os códigos serão apresen-
tados contendo somente a seção BODY do HTML, pois as demaisseções não sofrerão qualquer alteração. 
2.7.2 Script
A tag <script> é utilizada para declarar um trecho de código dentro de 
um documento HTML, permitindo a inserção de códigos, como por exem-
plo, um código JavaScript.
Exemplo: 
 <body>
 <script type=”text/javascript”>
 document.write(“Exemplo da tag Script”)
 </script>
 </body>
Resultado:
Figura 2.5 – Exemplo da tag script
Fonte: Elaborada pelo autor.
2.7.3 Comentários
Sempre é importante documentarmos o que estamos fazendo. Desta 
forma, ficará mais fácil para futuras manutenções. 
Programação Web
– 36 –
No HTML, para inserirmos um comentário, usamos a tag: <!-- [comen-
tário] -->
Exemplo:
 <head>
 <meta charset=”UTF-8”>
 <!-- Todo esse texto não aparecerá na página -->
 <title>Comentário</title>
 </head>
 <body>
 Vou escrever um texto que será comentário.
 <!-- Todo esse texto não aparecerá na página -->
 </body>
Resultado:
Figura 2.6 – Exemplo de comentário
Fonte: elaborada pelo autor.
Note que o texto presente no código “Todo esse texto não apare-
cerá na página”, realmente não aparece na tela. Ele é apenas um comen-
tário interno, utilizado para documentar o código da página e pode ser usado 
em qualquer parte do documento HTML. 
2.7.4 Parágrafo e quebra de linha
A tag <p>, representa um parágrafo de texto. Já a tag <br>, representa 
a quebra de linha. Em HTML, quando digitamos um texto e teclamos o 
ENTER, o navegador não interpreta esse ENTER como quebra de linha. 
Para isso deveremos utilizar a tag <br/>.
 Saiba mais
Gerando texto: quando você estiver desenvolvendo uma página
– 37 –
HTML
que ainda não possui um conteúdo definitivo e necessita testar a 
sua página, utilize um gerador de texto. No link <http://br.lipsum.
com/>, você pode gerar parágrafos, listas, palavras etc.
Exemplo: 
 <body>
 <p>
 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. 
 Morbi ullamcorper nunc magna, at molestie mi 
ultrices sed. 
 Nulla nec tincidunt nunc, eget pulvinar neque. 
 </p>
 </body>
Resultado:
Figura 2.7 – Exemplo de parágrafo sem quebra de linha
Fonte: Elaborada pelo autor.
Note que o texto em HTML fez uso do ENTER, no final de cada linha, 
mas o navegador não reconhece como quebra de linha.
Adicionando a tag <br/>
Exemplo: 
 <body>
 <p>
 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit.<br/>
 Morbi ullamcorper nunc magna,at molestie mi 
ultrices sed.<br/>
 Nulla nec tincidunt nunc, eget pulvinar neque. 
<br/>
 </p>
 </body>
Programação Web
– 38 –
Resultado:
Figura 2.8 – Exemplo de parágrafo com quebra de linha
Fonte: Elaborada pelo autor.
Note que por meio do uso da tag <br /> no final das linhas, o navegador 
foi capaz de reconhecer a quebra de linha.
2.7.5 Títulos
Normalmente, dividimos o conteúdo de uma página por meio de títu-
los. Esses títulos possuem uma hierarquia, um nível de importância. Os mes-
mos são descritos como: <h1>, <h2>, <h3>, <h4>, <h5> e <h6>, nos quais a 
tag H1 é caracterizada por ser o título principal (maior relevância) da página. 
Já o H6, é o título de menor relevância.
Exemplo:
 <body>
 <h1>Título Principal</h1>
 <p> Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. </p>
 <h2>Título H2</h2>
 <p> Nunc nec gravida mauris. Donec quis tincidunt 
massa.</p>
 <h3>Título H3</h3>
 <p> Aliquam eget risus pretium, laoree, hendrerit 
velit. </p>
 <h4>Título H4</h4> 
– 39 –
HTML
 <p> Suspendisse ligula orci, accumsan non, 
molestie felis.</p>
 <h5>Título H5</h5>
 <p> Donec iaculis, orci quis varius accumsan, 
erat mauris.</p>
 <h6>Título H6</h6>
 <p> Sed vel mauris sit amet quam interdum 
elementum. </p>
 </body>
Resultado:
Figura 2.9 – Exemplo das tags de cabeçalho
Fonte: Elaborada pelo autor.
Programação Web
– 40 –
2.7.6 Listas
É um tipo de tag bastante utilizada e possui três tipos de lista: 
 2 listas ordenadas <ol>;
 2 listas não ordenadas <ul>;
 2 listas de definição <dl>.
Cada item da lista é um list, representado pela tag <li>.
Exemplo de lista ordenada:
 <body>
 <h1>Campeões Mundiais</h1>
 <ol>
 <li>Brasil</li>
 <li>Alemanha</li>
 <li>Itália</li>
 </ol>
 </body>
Resultado:
Figura 2.10 – Exemplo de listas ordenadas <ol>
Fonte: Elaborada pelo autor.
Ressaltamos que, por meio do CSS, poderemos alterar o tipo de nume-
ração (números romanos, letras) apresentado nas listas.
Exemplo de lista não-ordenada (apresentação do trecho):
– 41 –
HTML
 <body>
 <h1>Lista de compras</h1>
 <ol>
 <li>Arroz</li>
 <li>Feijão</li>
 <li>Massa</li>
 </ol>
 </body>
Resultado:
Figura 2.11 – Exemplo de listas não ordenadas <ul>
Fonte: Elaborada pelo autor.
É possível alterar os tipos de marcadores (círculo, quadrado, elipse), 
realizando a alteração por meio do CSS.
Exemplo de lista de definição:
 <body>
 <h1>Lista de termos</h1>
 <dl>
 <dt>Internet</dt>
 <dd>Rede de computadores mundial</
dd>
 <dt>HTML</dt>
 <dd>Linguagem de marcação</dd>
 </dl>
 </body>
Resultado:
Programação Web
– 42 –
Figura 2.12 – Exemplo de listas de definição <dl>
Fonte: Elaborada pelo autor.
2.7.7 Links
Por meio da tag <a> conseguimos definir links que direcionam o usuário 
para outras páginas ou para áreas específicas da própria página. Para essa tag, 
devemos usar o atributo HREF. É onde será definido o endereço (URL) que 
será acessado, quando o usuário clicar no texto de referência.
Exemplo:
 <body>
 <h1>Exemplo de link</h1>
 <a href=”http://www.fael.edu.br”>FAEL</a>
 </body>
Resultado:
Figura 2.13 – Exemplo link <a>
Fonte: Elaborada pelo autor.
– 43 –
HTML
Note que, ao clicarmos no texto FAEL, seremos direcionados para a 
página da Fael. Sendo que a página será aberta na aba atual do usuário. Mas 
também podemos adicionar o atributo target= “_blank” na tag e, assim, 
quando o usuário clicar no link, a página solicitada será aberta em uma 
nova aba.
Por exemplo: <a href=”http://www.fael.edu.br” target=”_
blank”>FAEL</a>
2.7.8 Imagens
Em HTML, inserimos imagens por meio da tag img. Essa tag possui os 
seguintes atributos:
 2 src (source / origem) − para indicar o nome do arquivo;
 2 width (largura) e height (altura) − define o tamanho da imagem em 
pixels. Vale salientar que o mais adequado é incluir a imagem na 
página já no tamanho desejado, sem redimensionar. O redimensio-
namento faz com que o navegador carregue a imagem no tamanho 
real do arquivo e depois altere para o tamanho desejado. E isso 
consome tempo. Caso haja a necessidade de redimensionar uma 
imagem, utilize um software de tratamento de imagem e salve com 
o tamanho desejado;
 2 alt − com este atributo podemos incluir um texto que será uma 
alternativa para pessoas com deficiência visual. Quando o usuário 
posicionar o mouse sobre a imagem, o navegador apresentará o 
texto contido no atributo alt.
Exemplo:
 <body>
 <img src=”imagens/fael.png” alt=”logo da 
instituição” />
 </body>
Resultado:
Programação Web
– 44 –
Figura 2.14 – Exemplo imagem <img>
Fonte: Elaborada pelo autor.
Vamos alterar a largura e altura da imagem para que possamos comparar.
Exemplo:
 <body>
 <h3>Imagem tamanho real</h3>
 <img src=”imagens/fael.png” alt=”logo da instituição” />
 <h3>Imagem com Altura e largura</h3>
 <img src=”imagens/fael.png” alt=”logo da 
instituição” width=”150” height=”150”/>
 </body>
Resultado:
Figura 2.15 – Exemplo da imagem <img> com redimensionamento
Fonte: Elaborada pelo autor.
– 45 –
HTML
Imagem com erro: caso ao incluir uma imagem seja apresentado o resul-
tado a seguir, isso significa que houve algum problema na tag, isto é, o nave-
gador não encontrou a imagem. Isso pode ter ocorrido por diversos motivos, 
tais como:
 2 o caminho da pasta está incorreto; 
 2 o nome do arquivo está errado;
 2 a extensão do arquivo está errada.
Figura 2.16 – Exemplo de uma imagem <img> com erro
Fonte: Elaborada pelo autor.
2.7.9 Tabelas
Nas páginas, é muito comum o uso do recurso de tabelas, sendo utilizada 
para diversas situações: apresentar informações, formulário, imagens, etc. 
Para construiruma tabela são necessárias as seguintes tags:
Quadro 2.3 – Tags usadas para criação de tabelas
Tag Função
<table> .. </table> Indica o início e o final da tabela. 
<tr> </tr> Início de uma linha na tabela. 
<th> </th> Indica que é uma coluna de cabeçalho
<td> </td> Define a coluna do corpo da tabela.
Fonte: Elaborado pelo autor.
Programação Web
– 46 –
Além disso, é possível mesclar linhas e colunas por meio dos atributos 
COLSPAN e ROWSPAN.
Exemplo 1:
 <body>
 <h3>Tabela simples</h3>
 <table>
 <tr>
 <th>Nome do Aluno</th>
 <th>Média</th>
 </tr>
 <tr>
 <td>Ana Silva</td>
 <td>9,0</td>
 </tr>
 <tr>
 <td>José Lima</td>
 <td>8,5</td>
 </tr>
 </table>
 </body>
Resultado:
Figura 2.17 – Exemplo de tabela <table>
Fonte: Elaborada pelo autor.
Exemplo 2:
No código a seguir, usamos o COLSPAN em duas colunas. Isso significa 
que ele mesclou as duas colunas em uma única coluna.
– 47 –
HTML
 <body>
 <h3>Tabela simples</h3>
 <table>
 <tr>
 <th>Mês</th>
 <th>Despesas</th>
 </tr>
 <tr>
 <td>Janeiro</td>
 <td>R$ 1.000,00</td>
 </tr>
 <tr>
 <td>Fevereiro</td>
 <td>R$ 1.200,00</td>
 </tr>
 <tr>
 <td colspan=”2”>2.200,00</td>
 </tr>
 </table>
 </body>
Resultado:
Figura 2.18 – Exemplo de tabela <table> com COLSPAN
Fonte: Elaborada pelo autor.
Exemplo 3:
Programação Web
– 48 –
Neste caso, usamos o ROWSPAN em duas linhas. Isso significa que ele 
mesclou as duas linhas em uma única linha.
 <body>
 <h3>Tabela simples</h3>
 <table>
 <tr>
 <th>Mês</th>
 <th>Despesas</th>
 <th>Economia</th>
 </tr>
 <tr>
 <td>Janeiro</td>
 <td>R$ 1.000,00</td>
 <td rowspan=”2”>R$ 150,00</td>
 </tr>
 <tr>
 <td>Fevereiro</td>
 <td>R$ 180,00</td>
 </tr>
 </table>
 </body>
Resultado:
Figura 2.19 – Exemplo de tabela <table> com ROWSPAN
Fonte: Elaborada pelo autor.
 Importante
Você deve ter percebido que as tabelas desenvolvidas não apresen-
tam bordas. Esse tipo de configuração é realizado pelo CSS.
– 49 –
HTML
2.7.10 Negrito, itálico e caracteres especiais
Para adicionar a formatação negrito e itálico utiliza-se, respectivamente, 
as tags <strong> e <em>.
Exemplo:
 <body>
 <p>Atualmente utiliza-se a tag <strong>STRONG</
strong><br/></p>
 <p>E para itálico é utilizada a tag <em> EM </em>
 <p>Para mostrar uma tag &lt;p&gt; usamos 
caracteres especiais</p>
 <p>&copy; 2017 − FAEL</p>
 </body>
Resultado:
Figura 2.20 – Exemplo negrito <STRONG>, itálico <EM>
Fonte: Elaborada pelo autor.
Note que dentro do texto é apresentado “tag <p>”. Como isso é possível? 
Por que o navegador não interpretou essa tag? O segredo é a utilização dos 
caracteres especiais “&lt;” que impedem que o navegador reconheça o texto 
como uma tag.
2.7.11 Formulário
Importante elemento utilizado para a interatividade do usuário com a 
página. É por meio do formulário que as informações fornecidas pelo usuário 
serão repassadas para o servidor.
Programação Web
– 50 –
Os formulários são compostos por campos que devem ser preenchidos 
pelo usuário e enviados para o servidor onde está hospedado o site. Mas o que 
ocorre quando enviamos um formulário? 
 2 O usuário preenche o formulário e o envia;
 2 O navegador empacota os dados e os envia para o servidor web;
 2 O servidor web recebe os dados e encaminha para a aplicação que 
processará os dados;
 2 A aplicação processa os dados, criando a nova página e reenvia para 
o servidor;
 2 O servidor envia esta nova página para o browser;
 2 O browser exibe esta nova página para o usuário.
Para criarmos um formulário usamos as tags <form> </form> e, seme-
lhante à tag <table>, a tag de formulário sempre será utilizada com outras 
tags para a composição do formulário. A tag <form> possui alguns atributos 
importantes que são apresentados no quadro a seguir:
Quadro 2.4 – Atributos da tag <form>
Atributo Função
Action
Especifica qual a ação será realizada quando o usu-
ário clicar no botão Submit. Normalmente aponta 
para um script que irá receber e decodificar os 
resultados ou ficará vazio, caso a ação seja reali-
zada na própria página onde está o formulário.
autocomplete Indica se os campos poderão ser autocompletados. O padrão é ON.
Enctype
Determina como os dados do formulário são codi-
ficados. Esse atributo é opcional e deve ser usado 
quando vamos fazer upload de arquivos. 
Enctype=”multipart/form-data”
method Define qual método será usado para o envio dos dados do formulário (GET/POST).
– 51 –
HTML
Atributo Função
name
O nome do formulário. É importante, caso tenha-
mos mais de um formulário sendo utilizado na 
mesma página
novalidate Desativa a validação de envio de formulário, caso haja algum campo com validação.
Fonte: Elaborado pelo autor.
Vamos falar mais sobre o atributo Method. Ele possui dois valores GET 
ou POST. Veja a diferença entre os dois:
 2 o GET é o método padrão. Os dados serão enviados através da 
URL do browser, ou seja, ficarão expostos. É utilizado quando 
nenhuma informação sigilosa for enviada. 
 2 o POST oferece maior segurança, pois a transferência dos dados 
para o servidor não estará visível na URL. Além disso, possibilita a 
transmissão de uma maior quantidade de informações.
Quadro 2.5 – Tags para elementos do formulário
Elementos do formulário
Tag Descrição
Input Principal tag para criação de componentes de formu-lário. 
TextArea 
Campo com várias linhas para preenchimento do 
usuário. Possui os atributos: ROWS (número de 
linhas) e COLS (número de colunas).
Label Texto que será exibido juntamente com o elemento INPUT.
Fieldset Cria um grupo com os elementos.
Legend Define um texto para o grupo criado no Fieldset.
Select Elemento para criarmos a opção de seleção para o usuário.
OptGroup Cria um subgrupo dentro da seleção.
Programação Web
– 52 –
Elementos do formulário
Tag Descrição
Option Define os itens para a seleção.
Button Cria botões.
Fonte: Elaborado pelo autor.
As tags de formulário possuem diversos atributos. A seguir apresentare-
mos um quadro contendo os principais atributos.
Quadro 2.6 – Principais atributos dos elementos de formulário
Atributo Função
Type
Utilizada na tag <input>, determina qual o tipo de 
componente será exibido. Não é usado nos demais 
elementos
disabled
Campo somente para leitura. O seu conteúdo não 
será enviado para o formulário. O usuário não 
consegue editar esse campo.
maxlength Define o número máximo de caracteres que o componente poderá receber.
Size
Tamanho do campo na tela. Se SIZE for menor 
que MAXLENGTH, será apresentado um rola-
mento na tela.
Min Número mínimo de caracteres do campo.
readonly
Campo somente para leitura. O seu conteúdo será 
enviado para o formulário. O usuário não conse-
gue editar o campo.
required Indica se o campo é de preenchimento obrigatório ou não.
Value
Determina o conteúdo do campo. Este atributo 
armazena o valor que o usuário digitar. Também 
usado para mostrar algum valor para o usuário.
– 53 –
HTML
Atributo Função
placeholder Mostra texto no campo e quando o usuário clicar o texto desaparece.
Fonte: Elaborado pelo autor.
No quadro a seguir, veremos os principais tipos de campos que pode-
mos criar com a tag INPUT. O tipo de campo será definido por meio do 
atributo TYPE.
Quadro 2.7 – Principais tipos de componentes da tag <input>
Atributo Função
text Indica que o campo será um texto. 
password Indica que o campo será uma senha. Os caracteres digitados não serão mostrados.
submit Botão padrão para enviar os dados do formulário.
reset Botão que limpa todos os campos do formulário.
radio Cria o componente com opções, onde o usuário poderá selecionar um dos itens.
checkbox Cria o componente com opções, onde o usuário poderá selecionar vários itens.
date Cria um campo data.
datetime-local Cria campo do tipo data com base na data e hora do computador do usuário.
time Cria campo do tipo hora com base na data e hora do servidor.
image Campo para armazenar uma imagem.
email Campo para receber um e-mail. 
button Criaum botão. Pode ser usado no lugar do sub-mit.
color Cria um campo para trabalhar com cores. Possui uma paleta com todas as cores.
Programação Web
– 54 –
Atributo Função
file Cria um campo que possibilita selecionar um arquivo.
hidden
Campo escondido/oculto. Útil quando precisa-
mos ter um campo no formulário sem que o usu-
ário visualize. 
number Campo que receberá somente números.
url Campo para URL.
Fonte: Elaborado pelo autor.
Exemplo:
– 55 –
HTML
Resultado:
Figura 2.21 – Exemplo de formulário (navegador Opera)
Fonte: Elaborada pelo autor.
Programação Web
– 56 –
2.7.12 Outras tags e atributos
A finalidade das tags e os atributos desta seção serão melhor compreen-
didos quando trabalharmos com CSS.
Tags SPAN e DIV:
 2 tag <div> − utilizada para criar um container (box) no documento 
HTML. Tem como objetivo agrupar elementos da página para 
configurações de apresentação com o CSS.
 2 tag <span> − utilizada para criar um container em linha no docu-
mento HTML. Tem como objetivo agrupar elementos da página 
para configurações de apresentação com o CSS.
O elemento SPAN é semelhante ao elemento DIV. A diferença é que o 
SPAN é um elemento de linha e o DIV é um elemento de bloco. Normal-
mente são utilizados juntamente com os atributos CLASS e/ou ID.
Atributos ID e class:
São atributos utilizados para identificar os elementos, na configuração 
de apresentação por meio do CSS. E visualmente não apresentarão alteração 
na página.
 2 Class: pode ser usado o mesmo identificador para vários elemen-
tos. Por exemplo: criar uma tabela com o nome dos amigos e seus 
apelidos, ressaltando o apelido com uma cor diferente. Para isso, 
precisamos criar o mesmo identificador para vários elementos.
 2 ID: mesma função do class, mas só pode existir um elemento com a 
mesma identificação. Por exemplo: queremos diferenciar um pará-
grafo de outro, contendo o título e o texto. Para isso, será necessário 
criar um identificador diferente para cada parágrafo.
2.8 Novas tags do HTML5 (PESO 01)
Com a nova versão HTML5, surgiram novas tags que adicionaram 
novos recursos e facilidades para o desenvolvimento web. As mais utilizadas 
serão apresentadas no quadro a seguir:
– 57 –
HTML
Quadro 2.8 – Novas tags do HTML5
Tag Finalidade
header Define o cabeçalho da página, de uma seção. 
nav Define a área de navegação do site. Normalmente é com-posta por links com as principais páginas ou seções.
article Define uma parte da página que tem uma composição de artigo, texto, redação etc.
section
Define uma seção da página que pode conter outros ele-
mentos. Por exemplo, há uma área no site para um deter-
minado assunto onde há links, menu, conteúdo, imagens 
etc. Isso tudo é agrupado na SECTION.
aside
Refere-se à área lateral do site. Contém assuntos não rela-
cionados ao assunto principal do site. Podendo ser utili-
zado para publicidade e banners.
footer Define o rodapé da página de uma seção.
Fonte: Elaborado pelo autor.
Vale salientar que as tags têm valor semântico, isto é, não irão alterar 
a apresentação do site. Sendo assim, apresentaremos exemplos de seu uso 
quando estivermos tratando do tema CSS.
2.9 Herança no HTML
Quando possuímos um elemento (filho), dentro de outro elemento 
(pai), ocorre o que chamamos de herança. Um elemento-pai pode conter 
vários elementos-filhos. Por exemplo: um item de lista <li> é filho de um 
elemento de uma lista ordenada <ol> ou de uma lista não-ordenada <ul>. O 
parágrafo <p> dentro do corpo da página <body> também seria um exemplo 
de herança.
Esse conceito é importante para entendermos o comportamento dos 
elementos no momento da configuração de uma página. Por exemplo: há 
uma página com dois parágrafos. Um dentro do outro. Ao atribuir uma cor 
Programação Web
– 58 –
de fundo ao parágrafo-pai, automaticamente o parágrafo-filho herdará essa 
cor. Esse conceito de herança é conhecido como “NEST”.
 Exercício de fixação
Com o intuito de praticar o conteúdo abordado neste capítulo, 
desenvolva um site com duas páginas. O conteúdo de cada página 
será o seguinte:
1) Index.html: página principal, contendo informações sobre um 
assunto a sua escolha. 
Estrutura a ser apresentada na página:
 2 o título da página deverá ser sobre o tema do site;
 2 o menu deverá conter os links para a própria página (index.
html) e para a página de contato (contato.html);
 2 sobre o assunto, adicione:
 2 no mínimo 4 parágrafos, sobre o tema escolhido;
 2 duas ou três imagens sobre o tema;
 2 uma tabela.
 2 adicione, após o assunto, alguns links para redes sociais e 
sites de busca de sua preferência;
 2 no final, coloque um rodapé com o nome do autor do site.
2) Contato.html: segunda página, contendo um formulário de 
contato do usuário com o site. Adicione os campos que julgar 
mais apropriado.
Síntese
Nesse capítulo, abordamos a importância do HTML para o desenvol-
vimento web, que é linguagem de programação base para toda a criação de 
– 59 –
HTML
aplicações web. Estudamos a estrutura básica de uma página e as novas tags 
presentes no HTML5, versão que possibilita o desenvolvimento de aplicações 
com mais recursos. Além disso, discutimos o padrão que o W3C sugere para 
o desenvolvimento de páginas web.
Também aprendemos sobre as tags necessárias para a criação de formu-
lários, que são um meio de interação e comunicação do site com o usuário 
final. Os conhecimentos adquiridos com esse material permitem que o aluno 
seja capaz de desenvolver plenamente sites utilizando HTML.
Atividades
1. Assinale a alternativa que apresenta a linguagem de marcação (tags) 
responsável pela formatação de textos, dados, imagens e tabelas de 
uma página na internet.
a) Javascript.
b) JQuery.
c) HTML.
d) CSS.
e) PHP.
2. Um programa elaborado na linguagem HTML apresenta a seguinte 
linha: <!DOCTYPE HTML>
Sobre essa linha, é correto afirmar que a mesma:
a) indica que o arquivo com o programa-fonte possui a extensão doc.
b) deve vir sempre após a tag.
c) é uma tag que define o nome do arquivo que possui o programa.
d) especifica ao navegador o tipo de documento HTML que ele vai 
renderizar.
e) não atende corretamente à linguagem HTML, que não aceita o 
símbolo ! em seus comandos.
Programação Web
– 60 –
3. Em HTML, as tags <UL> e <LI> permitem criar listas
a) de interrogação.
b) ordenadas.
c) não-ordenadas.
d) de definição.
e) de frames.
4. Um dos elementos mais utilizados no formulário do HTML é o 
input. Por meio dele, o usuário pode enviar dados para o servidor. 
Sobre o input, analise o código a seguir e assinale a alternativa correta.
<input type=”text” name=”nome” value=”html5” maxlength = 
“20” size = “30”>
a) O tamanho da caixa de texto será 20.
b) O nome da variável que armazenará a informação inserida pelo 
usuário será “html5”.
c) Caso o usuário não insira uma informação, o valor padrão utilizado 
será “nome”.
d) A quantidade máxima de caracteres que o usuário poderá digitar 
é 30.
e) O código cria uma caixa de texto.
3
CSS
Neste capítulo, apresentaremos uma importante e indis-
pensável ferramenta para os desenvolvedores Web: o CSS, cuja efici-
ência comprovada e grande popularidade ao longo dos anos fez com 
que se tornasse parte do processo de desenvolvimento Web. Isso 
promoveu o total controle visual de sites, facilitando tanto na cons-
trução de novos layouts quanto na manutenção futura, de maneira 
prática, rápida e eficaz.
Neste capítulo, são abordados os seguintes assuntos: seleto-
res, propriedades e atalhos, ordem de aplicação, Box Model e for-
mas de inserção do CSS em páginas HTML. 
Ricardo Sonaglio Albano
Programação Web
– 62 –
 Saiba mais
Para acompanhar todos os códigos produzidos neste capítulo, é 
importante ter algum tipo de editor de texto simples, por exemplo, 
o Bloco de Notas. No entanto, é possível optar pelo editor de sua 
preferência. Há diversos softwares e IDEs para desenvolvimento.
Sugestão: Instale o Notepad++, que é um editor de texto com mais 
recursos que o Bloco de Notas.
3.1Introdução ao CSS
O Cascading Style Sheets (CSS – folha de estilo em cascata) é o respon-
sável por controlar o visual das páginas, ou seja, como é exibido o conteúdo 
criado pelo HTML. Essa formatação é aplicada em diferentes dispositivos, 
como computadores, smartphones, tablets, TVs, etc.
O CSS controla desde como um texto será impresso, como será exibido 
em um dispositivo e, até mesmo, a forma como o som será transmitido pelas 
caixas de som. 
É importante ressaltar que o CSS faz mais do que controlar DIVs, cor de 
fundo, formatação de texto ou imagens. Ele dispõe de recursos que possibili-
tam que a informação seja apresentada da maneira mais adequada para cada 
tipo de dispositivo. E essa é sua principal responsabilidade.
Conforme o próprio nome indica – folha de estilo em cascata –, as for-
matações são executadas em cascata, o que significa que o navegador inter-
preta as regras exatamente na ordem em que elas se encontram declaradas no 
arquivo CSS, ou seja, de cima para baixo.
3.2 Sintaxe do CSS
A sintaxe do CSS é bastante simples e totalmente baseada em regras. 
Cada regra é subdividida em seletor, propriedade e valor.
– 63 –
CSS
Sintaxe: seletor { propriedade: valor; }
Em que:
 2 seletor − elemento, atributo ou uma estrutura HTML.
 2 propriedade − definição da característica do seletor que quere-
mos alterar.
 2 valor − determinação do valor que queremos que a propriedade do 
seletor assuma.
Exemplo: p { background: blue;}
Nesse caso, estamos alterando no seletor P (parágrafo), a propriedade 
Background (cor de fundo) para o valor Blue (azul). Vale salientar, que essa 
regra será aplicada a todos os parágrafos da página. 
É importante ressaltar que toda a regra CSS termina com o ponto e 
vírgula (;). Além disso, em uma mesma regra, podemos alterar mais de uma 
propriedade do mesmo seletor.
Exemplo: p { background: blue; font-size: 18pt; }
No exemplo, incluímos a propriedade font-size, que se refere ao tamanho 
do fonte. 
3.3 CSS3
A versão CSS3 adicionou novos recursos. A seguir, há uma lista das 
principais novidades adicionadas, segundo o W3C.
 2 Selecionar:
 2 primeiro e último elemento; 
 2 elementos pares ou ímpares; 
 2 elementos específicos de determinado grupo de elementos.
 2 Gradiente em textos e elementos.
 2 Bordas arredondadas.
Programação Web
– 64 –
 2 Sombras em texto e elementos.
 2 Manipulação de opacidade. 
 2 Controle de rotação.
 2 Controle de perspectiva.
 2 Animação.
 2 Controle básico de 3D.
 2 Estruturação independentemente da posição no código HTML.
3.4 Seletor
Como já vimos, um seletor pode ser um elemento, um atributo ou uma 
estrutura (DIV) em HTML. O CSS permite alguns tipos de seletores: sim-
ples, encadeado, agrupado e complexo.
3.4.1 Seletor encadeado
Ocorre quando definimos um seletor que faz parte de um elemento que 
por sua vez está dentro de outro elemento. 
Exemplo: table strong a { color: yellow; }
No exemplo, estamos aplicando à propriedade COLOR o valor YELLOW 
para o seletor A, que está contido em um STRONG, que por sua vez está den-
tro de um TABLE. Essa regra não afetará os demais links da página.
3.4.2 Seletor agrupado
Usamos um seletor agrupado para aplicarmos a mesma configuração 
para diversos elementos HTML diferentes. 
Exemplo: p, table { font-size:18pt;}
No caso, estamos aplicando na propriedade font-size o valor 18pt para 
os seletores P e table. Assim, todos os parágrafos e tabelas terão o mesmo 
tamanho de fonte.
– 65 –
CSS
3.4.3 Seletor complexo
Por meio de um seletor complexo, podemos criar combinações entre os 
elementos que antes do CSS3 não seriam possíveis. Pense no seguinte cená-
rio: é necessário fazer uma configuração a ser aplicada em todas as tabelas que 
se encontram abaixo de uma H6. Como poderíamos fazer essa alteração de 
maneira rápida e eficiente? Simples. Usando o seletor complexo.
Exemplo: h6 + table { color: black; }
No exemplo, estamos indicando que queremos selecionar as tabelas 
(table) que se localizam abaixo de um cabeçalho (H6) e aplicar a cor (color) 
preta (black).
 Saiba mais
No site do W3C, há a lista com todos os seletores comple-
xos que podemos utilizar: <https://www.w3.org/TR/css3-
-selectors/#selectors>.
3.5 Como usar o CSS
Já sabemos o que é CSS, o que é uma regra, um seletor e os tipos de sele-
tores. Conhecemos o que é uma propriedade, um valor. Mas como utilizar 
o CSS ao HTML? Para a aplicação das regras CSS no HTML existem três 
opções diferentes, conforme segue.
 2 Em linha (inline): a regra CSS é adicionada diretamente no ele-
mento que receberá a ação. 
 2 Interna (incorporado): inserção da regra CSS no cabeçalho da 
página HTML. Essas regras serão aplicadas na página inteira. 
 2 Externas (linkado): as regras CSS são inseridas em um arquivo sepa-
rado do HTML. Nesse formato podemos usar um mesmo arquivo de 
configuração para diversas páginas HTML. Esse tipo é recomendado 
para padronização de sites, permitindo o reaproveitamento do código.
Programação Web
– 66 –
Vale salientar que existe uma hierarquia, isto é, uma ordem de impor-
tância na forma de declaração do CSS. Uma declaração inline tem maior 
precedência sobre a incorporado. E incorporado tem maior precedência sobre 
uma regra linkado.
3.5.1 Em linha – inline
Essa declaração é realizada diretamente no elemento. Para isso, usaremos 
o atributo style. Observe um exemplo de aplicação de cor de fundo para o 
corpo da página (body):
Exemplo: 
 <body style=”background:gray;”>
 <p>
 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. <br/>
 Morbi ullamcorper nunc magna, at molestie mi 
ultrices sed. <br/>
 Nulla nec tincidunt nunc, eget pulvinar neque. 
<br/>
 </p>
 <h1>Campeões Mundiais</h1>
 <ol>
 <li>Brasil</li>
 <li>Alemanha</li>
 <li>Itália</li>
 </ol>
 </body>
Resultado:
– 67 –
CSS
Figura 3.1 – CSS inline
Fonte: Elaborada pelo autor.
3.5.2 Interna
Essa declaração é realizada no cabeçalho (head) da página. Para isso, 
usaremos a tag style. Para tanto, utilizamos o exemplo anterior:
<!DOCTYPE html>
<html lang=”pt-br”>
 <head>
 <meta charset=”UTF-8”>
 <title>Interno</title>
 <style type=”text/css”> 
 body { 
 background:gray; 
 } 
 </style>
Programação Web
– 68 –
 </head>
 <body>
 . . . 
 </body>
</html>
O código do CSS está inserido no cabeçalho. Para isso, foi adicionada 
a tag style. Um atributo da tag é o tipo de script que será utilizado. No caso, 
estamos indicando que será um script CSS (type=”text/css”).
Resultado:
Figura 3.2 – CSS interno
Fonte: Elaborada pelo autor.
3.5.3 Externa
Para utilizarmos uma declaração externa do CSS, deveremos ter um 
arquivo com extensão (.css). No arquivo HTML que usará o CSS, devere-
mos fazer referência a esse arquivo através da tag link, no cabeçalho (head) da 
página. Vamos fazer o mesmo exemplo anterior.
Exemplo: fonte HTML
<body>
<!DOCTYPE html>
<html lang=”pt-br”>
 <head>
 <meta charset=”UTF-8”>
– 69 –
CSS
 <title>Externo</title>
 <link rel=”stylesheet” type=”text/css” 
href=”CSSinterno.css” />
 </head>
 <body>
 . . . 
 </body>
</html>
Arquivo CSS:
@CHARSET “ISO-8859-1”;
body {
 background: gray;
} 
Resultado:
Figura 3.3 – CSS externo
Fonte: Elaborada pelo autor.
Note que o código do CSS está contido em um arquivo separado 
(CSSinterno.css). Pode ser nomeado conforme sua preferência. Normal-
mente, utiliza-se estilo.css. No cabeçalho do HTML, fizemos a referência ao 
arquivo CSSinterno.css, por meio da tag link.
Também é possível inserir comentários em arquivos CSS. A sintaxe é 
a mesma da maioria das linguagens de programação. Inicia com o “/*”, e 
termina com “*/”.
Programação Web
– 70 –
3.6 Trabalhando com cores
Há três maneiras de atribuirmos cores aos elementos de uma página.
 2 Nome da cor: a cor é atribuída pelo nome da cor. 
Exemplo: p { background-color: red; }
 2 Sistema RGB: atribui-se a cor pela combinação entre as cores red, 
green e blue. Os valores podem variar entre 0 e 255. 
Exemplo: p { background-color: rgb(100,10,20); }
 2 Hexadecimal: a cor é atribuída, também, pela combinação entre 
red, green e blue. Só que os valores são informados em hexadecimal. 
Exemplo: p {background-color: “#ff0000”;}
 Saiba mais
É possível consultar a tabela de cores em diversos sites da web. Pro-
cure o termo “código de cores HTML” e encontrará diversos sites 
com os códigos em hexadecimal, RGB, etc.
3.7 Trabalhando com margem, 
espaçamento e borda
A margem (margin) é o espaço entre um componente e os demais 
componentes. Podemos alterar a margem superior (top), inferior (bottom), 
esquerda (left) e direita (right).
Quadro 3.1 – Propriedades da margem
Valores possíveis Função Propriedade
Auto, tamanho, % Especifica a margem superior do elemento margin-top
Auto, tamanho, % Especifica a margem da esquerda do elemento margin-left
– 71 –
CSS
Valores possíveis Função Propriedade
Auto, tamanho, % Especifica a margem da direita do elemento margin-right
Auto, tamanho, % Especifica a margem inferior do elemento margin-bottom
Fonte: Elaborado pelo autor.
O espaçamento (padding) é o espaço entre o componente e a sua borda. Tam-
bém possibilita a alteração do espaçamento superior, inferior, esquerda e direita.
Quadro 3.2 – Propriedades do espaçamento
Valores possíveis Função Propriedade
Auto, tamanho, % Especifica o espaçamento supe-rior do elemento padding-top
Auto, tamanho, % Especifica o espaçamento da esquerda do elemento padding-left
Auto, tamanho, % Especifica o espaçamento da direita do elemento padding-right
Auto, tamanho, % Especifica o espaçamento inferior do elemento padding-bottom
Fonte: Elaborado pelo autor.
A borda (border) é a linha entre o espaçamento (padding) e a margem 
(margin) do componente. Também apresenta as propriedades superior, infe-
rior, esquerda e direita.
Quadro 3.3 – Propriedades da borda
Parâmetros Função Propriedade
border-width, 
border-style, border-
-color
Especifica as propriedades para as 
bordas inferior, superior, esquerda 
e direita. Podemos configurar a 
largura (width), o estilo da borda 
(style) e a cor da borda (color)
Border-bottom,
Border-top,
Border-left;
Border-Right
Programação Web
– 72 –
Parâmetros Função Propriedade
border-color Especifica a cor em: top, left, right, bottom border-???-color
border-style Especifica o estilo da borda border-???-style
Thin, medium, 
thick, length Especifica a largura da borda border-???-width
Color Especifica a cor das quatro bordas border-color
None, hidden,dotted, 
dashed, solid, dou-
ble, groove, ridge, 
inset, outset
Especifica o estilo das quatro bor-
das. Pode ser especificado de uma 
até as quatro bordas
border-style
Thin, medium, 
thick, length
Especifica o estilo das quatro bor-
das. Pode ser especificado de uma 
até as quatro bordas
border-width
Fonte: Elaborado pelo autor.
Exemplo HTML:
<!DOCTYPE html>
<html lang=”pt-br”>
 <head>
 <meta charset=”UTF-8”>
 <title>Margem, espaçamento e borda</title>
 <link rel=”stylesheet” type=”text/css”
 href=”CSSMarginPaddingBorder.css”/>
 </head>
 <body>
 <h2>Exemplo de Margem, espaçamento e borda</h2>
 <h3>Exemplo de Margem, espaçamento e borda</h3>
 <h4>Exemplo de Margem, espaçamento e borda</h4>
 <h5>Exemplo de Margem, espaçamento e borda</h5>
 </body>
</html>
– 73 –
CSS
Exemplo CSS:
body { background: #F5F5DC; }
h2 { border-width : 2px 4px 6px 8px; /*top left 
bottom right */
 border-style: solid;
 border-color: #A52A2A; }
h3 { border-top-width: 2px;
 border-left-width: 4px;
 border-right-width: 6px;
 border-bottom-width: 8px;
 border-style: dotted dashed solid double;
 border-color: #CD5C5C; }
h4 { border-width: 2px 4px 6px 8px;
 border-style: solid;
 border-color: #B03060; 
 padding: 6px 10px 14px 18px;
 margin: 4px 6px 8px 10px; }
h5 { border: 2px double blue;
 padding: 6px;
 margin: 4px; }
Resultado:
Figura 3.4 – Margem, espaçamento e borda
Fonte: Elaborada pelo autor.
Programação Web
– 74 –
3.8 Trabalhando com o plano de fundo
A propriedade background permite a manipulação do plano de fundo 
dos elementos HTML.
Quadro 3.4 – Propriedades do background
Valores possíveis Descrição Propriedade
Scroll, fixed Especifica se uma imagem de fundo é fixa ou rola com o página
b a c k g r o u n d -
-attachment
rgb, hex, name, 
transparent
Configura a cor do fundo de um 
elemento
b a c k g r o u n d -
-color
url, none Configura uma imagem como plano de fundo
b a c k g r o u n d -
-image
top left, top center, 
top right, center 
left, center center, 
center right, bottom 
left, bottom center, 
bottom right
Configura a posição inicial de 
uma imagem de plano de fundo
b a c k g r o u n d -
-position
Repeat, repeat-x, 
repeat-y, no-repeat
Estabelece se/como uma imagem 
de plano de fundo será repetida
b a c k g r o u n d -
-repeat
Fonte: Elaborado pelo autor.
Exemplo HTML:
<body>
 <p>
 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. <br>
 Vestibulum blandit sapien justo, sed 
bibendum varius in. <br> 
 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. <br>
 Vestibulum blandit sapien justo, sed 
bibendum varius in. <br>
 Lorem ipsum dolor sit amet, consectetur 
adipiscing elit. <br>
– 75 –
CSS
 Vestibulum blandit sapien justo, sed 
bibendum varius in. <br>
 </p>
 <h1>Campeões Mundiais</h1>
 <ol>
 <li>Brasil</li>
 <li>Alemanha</li>
 <li>Itália</li>
 </ol>
</body>
CSS:
body {background-image: url(“imagens/matrix1.jpg”);}
p { background-image: url(“imagens/carro1.jpg”);
 background-repeat: no-repeat;}
Resultado:
Figura 3.5 – Background
Fonte: Elaborada pelo autor.
Importante: quando você desenvolver esse exemplo, irá notar que a 
imagem do fundo da página está sendo repetida de modo horizontal e verti-
cal. Já a imagem de fundo do parágrafo não apresenta repetição. Isso ocorre 
devido à propriedade: background-repeat: no-repeat;.
Programação Web
– 76 –
3.9 Trabalhando com texto
A propriedade text permite a manipulação dos textos dos elementos 
HTML.
Quadro 3.5 – Propriedades do text
Parâmetros Função Propriedade
RGB, hexadecimal, 
name Indica a cor do texto Color
Left, right, center, 
justify Alinha o texto do elemento text-align
None, underline, 
overline, line-through, 
blink
Adiciona decoração ao texto text-decoration
Length, % Recua a primeira linha de um texto text-indent
None, color, length Adiciona uma sombra no texto do elemento text-shadow
None, capitalize, 
uppercase, lowercase
Controla as letras em um ele-
mento text-transform
Fonte: Elaborado pelo autor.
Exemplo HTML:
<body>
 <h2>Exemplo </h2>
 <h3>Exemplo </h3>
 <h4>exemplo </h4>
 <h5>Exemplo </h5>
</body>
Exemplo CSS:
h2 { text-align: center;}
h3 { text-decoration: underline; }
h4 { text-transform: capitalize;}
h5 { text-shadow:3px 2px red; }
Resultado:
– 77 –
CSS
Figura 3.6 – Text
Fonte: Elaborada pelo autor.
3.10 Trabalhando com fonte
A propriedade font, permite a manipulação da família de fonte dos ele-
mentos HTML.
Quadro 3.6 – Propriedades do font
Parâmetros Função Propriedade
family-name
generic-family
Lista com as famílias de fontes que 
podem ser usadas no elemento font-family
Small, médium, large, 
length, % Especifica o tamanho de fonte font-size
Normal, italic, 
oblique Especifica o estilo da fonte font-style
Normal, bold, bolder, 
lighter, 100 a 900 Especifica o peso de uma fonte font-weight
Fonte: Elaborado pelo autor.
Há dois tipos de nomes de família: 
Programação Web
– 78 –
 2 Família genérica (generic-family): grupo de fontes com aspectos 
semelhantes (“Serif ” ou “Monospace”).
 2 Família de fontes (family-name): fontes específicas (“Times New 
Roman” ou “Arial”).
Quadro 3.7 – Família de fontes
Descrição Família de fontes Família genérica
As fontes Serif têm peque-
nas linhas no final de alguns 
caracteres
Times New Roman, 
Georgia Serif
Fontes sem as linhas no final 
dos caracteres Arial Sans-serif
Todos os caracteres possuem 
o mesmo tamanho Courier New Monospace
Fonte: Elaborado pelo autor.

Outros materiais