Prévia do material em texto
Curso Completo de HTML e CSS da Hashtag
Programação
HTML e CSS
IMPRESSIONADOR
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
SUMÁRIO
MÓDULO 2 BOA VINDAS E CONFIGURAÇÕES INICIAIS
01
02
03
O QUE É DESENVOLVIMENTO WEB
BAIXANDO E CONFIGURANDO NOSSO EDITOR DE CÓDIGOS
2 DICAS PARA TODO PROGRAMADOR
006
011
021
2
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
MÓDULO 3 INTRODUÇÃO AO HTML
01
02
03
04
O QUE É HTML
ESTRUTURA DE UM DOCUMENTO HTML
ELEMENTOS DE TEXTO
ÊNFASE, IMPORTÂNCIA E FORMATAÇÃO DE TEXTOS
029
030
038
048
05 LISTAS ORDENADAS E NÃO ORDENADAS 055
06 HIPERLINKS 059
07 IMAGENS E SEUS ATRIBUTOS NO HTML 071
08 FERRAMENTAS DO PROGRAMADOR 075
09
10
11
12
DESAFIO 1 – APRESENTANDO O DESAFIO
DESAFIO 1 – CONSTRUINDO O DESAFIO DO ZERO
DESAFIO 2 – HOME DO HASHTAG TRENAMENTOS
DESAFIO 2 – CRIANDO O CABEÇALHO
077
080
087
089
13 DESAFIO 2 – CRIANDO A SEÇÃO HERO 096
14 DESAFIO 2 – CRIANDO A SEÇÃO CONTEÚDOS GRATUITOS 099
15 DESAFIO 2 – CRIANDO A SEÇÃO DIFERENCIAIS 104
16 DESAFIO 2 – CRIANDO A SEÇÃO O QUE FALAM 110
17 DESAFIO 2 – CRIANDO A SEÇÃO NA MÍDIA 112
18 DESAFIO 2 – CRIANDO A SEÇÃO BLOG DA HASHTAG 113
19 DESAFIO 2 – CRIANDO A SEÇÃO COM AJUDAR 118
20 DESAFIO 2 – CRIANDO A SEÇÃO MINICURSO 120
21 DESAFIO 2- CRIANDO O RODAPÉ 121
SUMÁRIO
MÓDULO 4 INTRODUÇÃO AO CSS
3
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
01
02
03
04
O QUE É CSS
AS TRÊS FORMAS DE ESCREVER CSS
SELETORES NO CSS
COMBINANDO SELETORES
128
129
139
144
05 ESTILIZANDO TEXTOS 147
06 TRABALHANDO COM CORES 152
07 ESTILIZANDO HIPERLINKS 157
08 DESAFIO 1 – FORMATANDO UMA PÁGINA EM HTML 160
09
10
11
12
DESAFIO 1 – RESOLVENDO O DESAFIO
DESAFIO 2- FORMATANDO A HOME DA HASHTAG
DESAFIO 2 – FORMATANDO O CABEÇALHO
DESAFIO 2 – FORMATANDO A SEÇÃO HERO
162
167
168
171
13 DESAFIO 2 – FORMATANDO A SEÇÃO CONTEÚDOS GRATUITOS 173
14 DESAFIO 2 – FORMATANDO A SEÇÃO DIFERENCIAIS 174
15 DESAFIO 2 – FORMATANDO A SEÇÃO O QUE FALAM 180
16 DESAFIO 2 – FORMATANDO A SEÇÃO NA MÍDIA 181
17 DESAFIO 2 – FORMATANDO A SEÇÃO BLOG HASHTAG 182
18 DESAFIO 2 – FORMATANDO A SEÇÃO COMO AJUDAR 185
19 DESAFIO 2 – FORMATANDO A SEÇÃO MINICURSO 187
20 DESAFIO 2 – FORMATANDO O RODAPÉ 188
MÓDULO 5 APROFUNDANDO NO HTML
01
02
03
04
APRESENTAÇÃO DO MÓDULO
CITAÇÕES, ABREVIAÇÕES E DETALHES DE CONTATO
CÓDIGOS E DATAS
ENTRANDO MAIS A FUNDO NA ESTRUTURA DOS DOCUMENTOS
191
192
196
199
05 FORMULÁRIOS 202
06 TABELAS 207
SUMÁRIO
MÓDULO 5 APROFUNDANDO NO HTML
4
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
07
08
09
10
IFRAMES
DESAFIO 1 – APRESENTANDO O DESAFIO
DESAFIO 1 – CONSTRUINDO JUNTOS
DESAFIO 2 – EXPLICANDO AS NOVIDADES
213
217
218
226
11 DESAFIO 2 – COMPLETANDO O CABEÇALHO 227
12 DESAFIO 2 – COMPLETANDO A SEÇÃO HERO 228
13 DESAFIO 2 – COMPLETANDO A SEÇÃO CONTEÚDOS GRATUITOS 231
14 DESAFIO 12– COMPLETANDO A SEÇÃO DIFERENCIAIS 233
15
16
17
18
DESAFIO 2 – COMPLETANDO A SEÇÃO O QUE FALAM E NA MÍDIA
DESAFIO 2- COMPLETANDO A SEÇÃO BLOG DA HASHTAG
DESAFIO 2 – COMPLETANDO A SEÇÃO COMO AJUDAR
DESAFIO 2 – COMPLETANDO A SEÇÃO MINICURSO
235
237
238
239
19 DESAFIO 2 – COMPLETANDO O RODAPÉ 241
1 APRESENTANDO O MÓDULO 245
2 ESPECIFICIDADE NO CSS 246
3 TRABALHANDO COM ESPAÇAMENTOS 253
4 DIMENSÕES E UNIDADES NO CSS 259
5 PSEUDO-CLASSES 267
PSEUDO-ELEMENTOS 2746
MÓDULO 6 APROFUNDANDO NO CSS
7 SELETOR UNIVERSAL E HERANÇA DE ESTILOS 281
8 BOX MODEL NO CSS 286
9
10
11
12
SOMBRAS
ELEMENTOS ARREDONDADOS
TIPOS DE VISUALIZAÇÃO
TIPOS DE POSICIONAMENTO
291
296
299
374
13 BACKGROUND COLOR E IMAGE 313
SUMÁRIO
MÓDULO 6 APROFUNDANDO NO CSS
5
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
14
15
16
17
DESAFIO 1
DESAFIO 1 - FAZENDO JUNTOS
DESAFIO 2 - APROFUNDANDO NO DESAFIO 2
DESAFIO 2 - APROFUNDANDO O CABEÇALHO
324
325
343
344
18 DESAFIO 2 - APROFUNDANDO A SEÇÃO HERO 355
19 DESAFIO 2 – APROFUNDANDO A SEÇÃO CONTEÚDOS GRATUITOS 370
20 DESAFIO 2– APROFUNDANDO A SEÇÃO DIFERENCIAIS 397
21 DESAFIO 2 – APROFUNDANDO A SEÇÃO O QUE FALAM 414
22
23
24
25
DESAFIO 2 – APROFUNDANDO A SEÇÃO NA MÍDIA
DESAFIO 2 – APROFUNDANDO O BLOG DA HASHTAG
DESAFIO 2 – APROFUNDANDO A SEÇÃO COMO AJUDAR
DESAFIO 2 – APROFUNDANDO A SEÇÃO MINICURSO
428
432
439
448
26 DESAFIO 2 – APROFUNDANDO O RODAPÉ 453
Módulo 2
BOAS VINDAS E CONFIGURAÇÕES INICIAIS
BOAS VINDAS E CONFIGURAÇÕES INICIAIS
BOAS VINDAS E CONFIGURAÇÕES INICIAIS
6
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 2 – O que é Desenvolvimento Web (1 / 4)
000 000
7
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O desenvolvimento web é o processo de criar e manter sites e aplicativos que você acessa na internet. Envolve coisas como projetar
como o site vai parecer, escrever o código para torná-lo funcional, cuidar do armazenamento de informações e garantir que ele
funcione bem em diferentes tipos de computadores e navegadores.
Existem duas partes principais no desenvolvimento web:
• Front-end: É a parte visível do site, onde você interage. Envolve o layout, cores e botões que você vê ao navegar em um site.
• Back-end: É a parte invisível que faz o site funcionar nos bastidores. Aqui, são tratadas coisas como armazenamento de dados,
autenticação e lógica do servidor, usando linguagens de programação e bancos de dados.
Além disso, é importante configurar um banco de dados para armazenar informações do site, como dados de usuários, produtos ou
conteúdo.
• Banco de Dados: O banco de dados é uma parte crucial do desenvolvimento web. É onde todas as informações do site, como
dados de usuários, produtos ou conteúdo, são armazenadas e gerenciadas.
Essas três partes juntas completam o processo de desenvolvimento web, que abrange desde o planejamento inicial até a
manutenção contínua do site.
Módulo 2 – O que é Desenvolvimento Web (2 / 4)
000 000
8
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Páginas Estáticas:
Páginas estáticas são páginas da web que contêm conteúdo fixo e não mudam a menos que um desenvolvedor intervenha
manualmente para fazer alterações no código-fonte. Essas páginas são rápidas para carregar, pois o conteúdo permanece
inalterado e pode ser facilmente cacheado pelos servidores web. São relativamente simples de criar, uma vez que não envolvem a
complexidade de um banco de dados ou de lógica de programação para gerar conteúdo dinâmico. Isso as torna adequadas para
sites pequenos ou que não precisam de atualizações frequentes. Exemplos comuns de páginas estáticas incluem páginas de
informações, como páginas de contato, currículos ou sites de portfólio pessoal.
Páginas Dinâmicas:
Páginas dinâmicas, por outro lado, exibem conteúdo que pode ser gerado ou atualizado em tempo real com base em interações do
usuário ou dados armazenados em um banco de dados. Essas páginas são altamente interativas e permitem recursos como
formulários, login de usuário, carrinhos de compras em lojas online e comentários em blogs. Elas são capazes de exibir conteúdo
personalizado para diferentes usuários, com base em preferências ou informações de perfil. A criação de páginas dinâmicas é mais
complexa, envolvendo programação e o uso de linguagens como PHP, Python, Ruby, JavaScript e bancos de dados para gerenciar
informações em tempo real. São ideais para sites maiores, como redes sociais, lojas online, portais de notícias, onde o conteúdo
precisa ser atualizado constantemente.
Módulo 2 – O que é Desenvolvimento Web (3 / 4)
000 000
9
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Front-end, também conhecido como desenvolvimento front-end ou programação front-end, refere-se à parte de
um site ou aplicativo web que os usuários finais veem e interagem diretamente. É a interface do usuário e a
experiência visual que um site proporciona. O front-end é construído principalmente com três tecnologias
principais:
HTML (HyperText Markup Language): O HTML é a espinha dorsal de uma página web. Ele é usado para estruturar
o conteúdo da página,como texto, imagens, links e outros elementos. Cada elemento HTML é marcado com tags,
como <div>, <p>, <img>, e assim por diante. Essas tags definem a estrutura e a hierarquia da página.
CSS (Cascading Style Sheets): O CSS é usado para estilizar e formatar a página web. Ele controla o layout, as cores,
as fontes e o posicionamento de todos os elementos HTML em uma página. Com CSS, você pode definir o aspecto
visual do site, tornando-o atraente e acessível.
JavaScript: O JavaScript é uma linguagem de programação que adiciona interatividade e dinamismo a uma
página web. Com JavaScript, você pode criar efeitos de animação, validar formulários, responder a eventos do
usuário e atualizar o conteúdo da página em tempo real. Ele permite que as páginas web se comportem de
maneira mais semelhante a aplicativos de desktop.
Em resumo, o front-end é a camada de um site que lida com a apresentação e a interação com o usuário. O HTML
estrutura o conteúdo, o CSS estiliza e formata a página, e o JavaScript adiciona interatividade e funcionalidade
dinâmica. Juntos, essas tecnologias permitem que os desenvolvedores criem interfaces de usuário atraentes e
funcionais para os visitantes da web.
Módulo 2 – O que é Desenvolvimento Web (4 / 4)
000 000
10
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Existem vários tipos de desenvolvedores, cada um com habilidades e responsabilidades específicas. Aqui estão alguns dos tipos
mais comuns de desenvolvedores:
Desenvolvedor Front-End: Os desenvolvedores front-end são responsáveis pela criação da interface do usuário de um site ou
aplicativo web. Eles usam tecnologias como HTML, CSS e JavaScript para desenvolver a parte visível e interativa de uma página
web. Esses desenvolvedores garantem que o site seja atraente, responsivo e fácil de usar.
Desenvolvedor Back-End: Os desenvolvedores back-end trabalham na parte do servidor de um site ou aplicativo. Eles lidam com
o processamento de dados, a lógica de negócios e a comunicação com bancos de dados. Linguagens como PHP, Python, Ruby,
Java e Node.js são comumente usadas no desenvolvimento back-end.
Desenvolvedor Full-Stack: Um desenvolvedor full-stack é alguém que possui habilidades tanto de front-end quanto de back-end
e pode trabalhar em todas as camadas de um projeto web. Eles têm um amplo conhecimento das tecnologias e geralmente
podem gerenciar um projeto por completo, desde a criação da interface do usuário até a configuração do servidor.
Desenvolvedor de banco de dados: Especializado em projetar e gerenciar bancos de dados, garantindo a eficiência e segurança
no armazenamento de informações. Trabalha em conjunto com desenvolvedores back-end. Os desenvolvedores de banco de
dados podem usar sistemas de gerenciamento de bancos de dados (SGBDs) como MySQL, PostgreSQL, SQL Server ou Oracle.
Módulo 2 – Baixando e Configurando nosso editor de códigos (1 / 10)
000 000
11
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Visual Studio Code
O Visual Studio Code (VS Code) é um editor de código amplamente utilizado para desenvolver sites e aplicativos web usando HTML
e CSS. Ele oferece uma interface amigável e funcionalidades que facilitam a escrita e edição de código, como realce de sintaxe,
sugestões de código e integração com extensões que agilizam o desenvolvimento web. O VS Code é altamente personalizável e é
uma escolha popular entre desenvolvedores front-end devido à sua eficiência e suporte à comunidade.
Baixando o VS Code
1. Acesse o Site Oficial: Abra seu navegador da web e vá para o site oficial do Visual Studio Code em
https://code.visualstudio.com/.
2. Download: Clique no botão "Download" de acordo com o sistema operacional do seu computador na página inicial do site. No
nosso caso estaremos instalando para Windows.
https://code.visualstudio.com/
Módulo 2 – Baixando e Configurando nosso editor de códigos (2 / 10)
000 000
12
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
3. Baixe o Arquivo de Instalação: O navegador irá baixar um arquivo de instalação com extensão ".exe". Aguarde até que o
download seja concluído.
4. Inicie o Instalador: Após o download, clique duas vezes no arquivo ".exe" baixado para iniciar o instalador do VS Code.
5. Aceite os Termos de Uso: Você verá uma tela inicial do instalador. Clique em "Next" (Próximo) para continuar.
6. Selecione as Opções de Instalação: Escolha o local onde deseja instalar o VS Code e selecione as opções adicionais, como
adicionar ícones à área de trabalho e associar arquivos ".code" ao VS Code. Em seguida, clique em "Next" (Próximo).
7. Selecione Componentes Adicionais (Opcional): O instalador pode oferecer a opção de instalar componentes adicionais,
como o Git. Se desejar, selecione as opções desejadas e clique em "Next" (Próximo).
Ao chegar na tela ao lado, você poderá adicionar a opção de adicionar a
ação "Abrir com Code" que permite que você abra pastas ou arquivos
diretamente no Visual Studio Code (VS Code) a partir do menu de
contexto (clique com o botão direito do mouse) do Windows Explorer
ou do gerenciador de arquivos do seu sistema operacional. Isso é
particularmente útil quando você está trabalhando em projetos e
deseja abrir pastas ou arquivos específicos diretamente do explorador
de arquivos do seu sistema operacional, economizando tempo e
simplificando o processo de desenvolvimento.
Módulo 2 – Baixando e Configurando nosso editor de códigos (3 / 10)
000 000
13
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
8. Inicie a Instalação: Clique em "Install" (Instalar) para iniciar o processo de instalação.
9. Conclua a Instalação: Após a conclusão da instalação, clique em "Finish" (Concluir) para fechar o instalador.
Agora você tem o Visual Studio Code instalado em seu computador Windows e pode começar a usá-lo para desenvolver projetos
HTML e CSS.
Agora você irá abrir o menu iniciar do seu computador, pesquisar por VS Code e inicializar o programa.
Módulo 2 – Baixando e Configurando nosso editor de códigos (4 / 10)
000 000
14
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As extensões no Visual Studio Code (VS Code) são módulos de software adicionais que você pode instalar para estender a funcionalidade
padrão do editor.
Para instalar extensões no VS Code, você pode seguir estes passos:
1. Abra o VS Code.
2. Vá para a seção "Extensões" no menu lateral esquerdo (ícone de quebra-cabeça).
3. Pesquise a extensão desejada na barra de pesquisa.
4. Clique em "Instalar" na extensão que deseja adicionar.
5. Depois de instalada, você pode configurar e usar a extensão conforme necessário.
As extensões tornam o VS Code altamente flexível e adaptável às suas necessidades de desenvolvimento, permitindo que você crie um
ambiente de desenvolvimento personalizado e eficiente.
Módulo 2 – Baixando e Configurando nosso editor de códigos (5 / 10)
000 000
15
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As extensões no Visual Studio Code (VS Code) são módulos de software adicionais que você pode instalar para estender a funcionalidade
padrão do editor.
Para instalar extensões no VS Code, você pode seguir estes passos:
1. Abra o VS Code.
2. Vá para a seção "Extensões" no menu lateral esquerdo (ícone de quebra-cabeça).
3. Pesquise a extensão desejada na barra de pesquisa.
4. Clique em "Instalar" na extensão que deseja adicionar.
5. Depois de instalada, você pode configurar e usar a extensão conforme necessário.
As extensões tornam o VS Code altamente flexível e adaptável às suas necessidades de desenvolvimento, permitindo que você crie um
ambiente de desenvolvimento personalizado e eficiente.
Extensões
• Auto Rename Tag: Esta extensão é útil ao trabalhar com HTML/XML. Ela permite que você renomeie uma tag de abertura e a tag de
fechamento correspondente automaticamente, economizando tempo e evitando erros de digitação.Exemplo: Ao renomear a tag
<div> para <section>, a extensão também renomeará automaticamente a tag de fechamento </div> para </section>.
Módulo2 – Baixando e Configurando nosso editor de códigos (6 / 10)
000 000
16
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Prettier: O Prettier é uma extensão de formatação de código que ajuda a manter seu
código HTML, CSS e JavaScript bem formatado e consistente. Ele reformata
automaticamente seu código de acordo com as convenções de estilo configuradas,
facilitando a legibilidade e a colaboração em equipes.
• Color Highlight: Com esta extensão, os códigos de cores (por exemplo, #FF0000 para
vermelho) no seu CSS ou HTML são realçados com a cor correspondente, permitindo
uma rápida visualização das cores usadas em seu código.
• Live Server: O Live Server é uma extensão que cria um servidor web local diretamente
do VS Code. Isso permite que você visualize e teste seu site ou aplicativo web em
tempo real enquanto faz alterações no código, facilitando o desenvolvimento e a
depuração. Basta clicar com o botão direito do mouse em um arquivo HTML e
selecionar "Open with Live Server" para abrir o site no navegador. As alterações no
código HTML são refletidas automaticamente no navegador sem a necessidade de
atualizações manuais.
Módulo 2 – Baixando e Configurando nosso editor de códigos (7 / 10)
000 000
17
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• HTML CSS SUPPORT: Esta extensão aprimora o suporte do VS Code para HTML e CSS,
fornecendo sugestões de código, realce de sintaxe e atalhos para facilitar a escrita e a
edição de código HTML e CSS. Ao digitar um seletor CSS em uma regra de estilo dentro
de uma tag HTML, a extensão oferece sugestões automáticas de classes e IDs
existentes.
• Image Preview: Com essa extensão, você pode visualizar imagens diretamente no
Visual Studio Code sem a necessidade de abrir um visualizador de imagens separado.
Basta clicar com o botão direito do mouse em um arquivo de imagem e selecionar
"Image Preview" para ver a imagem.
• One Monokai Theme: Esta é uma extensão de tema que altera a aparência do VS Code.
O "One Monokai Theme" aplica um esquema de cores específico ao VS Code,
proporcionando uma experiência de desenvolvimento visualmente agradável.
Módulo 2 – Baixando e Configurando nosso editor de códigos (8 / 10)
000 000
18
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos precisar modificar algumas configurações das extensões e para isso
clicaremos no ícone de engrenagem:
Vamos perquisar por Default for e adicionar o Prettier como formatação padrão do nosso VS Code.
A configuração padrão do Prettier envolve as opções de
formatação que são aplicadas automaticamente quando você
executa o Prettier em seu código sem personalizar essas opções.
As configurações padrão incluem coisas como a quantidade de
indentação, estilo de quebra de linha e estilo de citação.
Módulo 2 – Baixando e Configurando nosso editor de códigos (9 / 10)
000 000
19
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A próxima configuração é a format on save, Essa opção permite que o editor formate automaticamente o código no
arquivo atual sempre que você o salva:
Auto on save:
Nas configurações padrão do VS Code, a ação "Salvar" ocorre automaticamente quando você:
- Altera o foco para outra janela ou aplicativo, ou seja, quando você muda para outra janela ou programa fora do VS Code.
- Fecha o arquivo ou o editor no VS Code.
Módulo 2 – Baixando e Configurando nosso editor de códigos (10 / 10)
000 000
20
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Tab size (tamanho de tabulação) refere-se ao número de espaços em branco que uma tecla "Tab" representa em um
editor de código. Isso afeta a quantidade de espaço que é inserida quando você pressiona a tecla "Tab" ou quando o editor
de código converte uma tabulação em espaços em branco.
A configuração do "tab size" é importante porque afeta a formatação e a legibilidade do seu código, bem como a
consistência entre diferentes desenvolvedores que trabalham no mesmo projeto. A maioria dos editores de código
modernos, incluindo o Visual Studio Code (VS Code), permite que você configure o tamanho da tabulação de acordo com
suas preferências.
Por padrão, o tamanho de tabulação no VS Code é geralmente definido como 4 espaços, mas você pode personalizá-lo
Módulo 2 – 2 Dicas para todo programador (1 / 7)
000 000
21
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Fazer pesquisas no Google é uma prática essencial para programadores, pois os ajuda a acessar informações atualizadas,
resolver problemas de maneira eficiente, aprender continuamente e se adaptar a um campo em constante evolução. Em vez
de tentar memorizar tudo, os programadores são incentivados a desenvolver habilidades de pesquisa e a aproveitar os recursos
online para se tornarem programadores mais eficazes e bem-sucedidos.
Fazer pesquisas no Google e não depender da memorização absoluta de todas as informações é uma prática importante e
benéfica para os programadores por várias razões:
• Volume de Informações: A área da programação é vasta e está em constante evolução. Seria impossível memorizar todas
as linguagens de programação, bibliotecas, frameworks, comandos e técnicas disponíveis. Usar o Google permite acessar
rapidamente informações atualizadas.
• Eficiência: Em vez de gastar tempo tentando lembrar detalhes específicos ou sintaxes complexas, os programadores
podem usar o Google para obter respostas rápidas e continuar trabalhando de forma mais eficiente.
• Resolução de Problemas: A capacidade de pesquisa é uma habilidade valiosa na solução de problemas. Programadores
frequentemente enfrentam desafios complexos que exigem a busca de soluções online, aprendizado com a experiência de
outros desenvolvedores e adaptação a problemas únicos.
Módulo 2 – 2 Dicas para todo programador (2 / 7)
000 000
22
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Aprendizado Contínuo: A programação é uma disciplina que requer aprendizado contínuo. Os programadores estão
constantemente explorando novas tecnologias e abordagens. A pesquisa online facilita a aprendizagem de novos conceitos e
técnicas.
• Compartilhamento de Conhecimento: O compartilhamento de informações na comunidade de desenvolvedores é fundamental. Ao
usar o Google e participar de fóruns, grupos de discussão e comunidades online, os programadores contribuem para um ecossistema
de compartilhamento de conhecimento.
• Redução de Erros: Ao verificar informações e sintaxes online, os programadores podem reduzir erros em seus códigos. Isso ajuda a
manter a qualidade do código e a evitar problemas que podem surgir devido a erros humanos.
• Adaptação às Mudanças: A tecnologia muda rapidamente. O que era verdade hoje pode não ser verdade amanhã. Usar o Google
permite que os programadores se adaptem às mudanças e adotem as melhores práticas mais recentes.
• Aprimoramento da Criatividade: Livres da necessidade de memorizar detalhes técnicos, os programadores podem se concentrar
mais na solução de problemas criativos e na inovação em seus projetos.
Módulo 2 – 2 Dicas para todo programador (3 / 7)
000 000
23
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Boas práticas para criar perguntas eficazes em pesquisas no Google em programação HTML e CSS:
1. Seja específico: Torne a pergunta precisa e específica.
2. Use termos-chave: Inclua palavras-chave relevantes em sua pergunta.
3. Use palavras de ação: Comece com palavras como "como" ou "o que é" para indicar que você está procurando uma explicação ou
solução.
4. Seja claro e conciso: Mantenha a pergunta simples e direta.
5. Use aspas para pesquisa exata: Se você procura uma frase específica, coloque-a entre aspas.
6. Evite perguntas genéricas: Evite perguntas amplas e vagas.
7. Revise os resultados: Ajuste sua pergunta com base nos resultados da pesquisa.
8. Use fontes confiáveis: Prefira fontes confiáveis, como documentação oficial e fóruns respeitados.
9. Seja paciente e aprenda com exemplos: Às vezes, encontrar a resposta certa leva tempo. Compreenda exemplos e raciocíniospor
trás das soluções encontradas.
10. Pergunte em Inglês (se souber): Se você tem conhecimento em inglês, considere fazer suas perguntas em inglês ao usar o Google.
Muitos recursos, tutoriais e documentações de alta qualidade estão disponíveis em inglês, o que pode ampliar seu acesso a
informações úteis e soluções. Além disso, ajuda a se comunicar com a ampla comunidade global de desenvolvedores que
compartilha informações em inglês.
Módulo 2 – 2 Dicas para todo programador (4 / 7)
000 000
24
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Pesquisar através de documentações CSS (Cascading Style Sheets) e HTML (Hypertext Markup Language) é fundamental para
programadores por várias razões importantes:
• Precisão e Conformidade: As documentações são fontes oficiais e confiáveis de informações sobre as linguagens CSS e HTML. Ao
usá-las, você garante que seu código siga as melhores práticas e padrões definidos. Isso ajuda a evitar erros e problemas de
compatibilidade em diferentes navegadores.
• Acesso a Recursos: As documentações contêm uma vasta quantidade de informações sobre propriedades, elementos, atributos e
valores disponíveis em CSS e HTML. Isso significa que você pode descobrir recursos e funcionalidades que talvez não conhecesse de
outra forma, permitindo que você crie páginas web mais ricas e interativas.
• Exemplos e Tutoriais: As documentações geralmente incluem exemplos de uso de propriedades e elementos, juntamente com
descrições detalhadas. Isso é especialmente útil para aprender como aplicar estilos específicos ou criar elementos complexos em seu
código.
• Evolução das Tecnologias: As linguagens HTML e CSS estão em constante evolução. As documentações são atualizadas
regularmente para refletir as últimas mudanças e adições às linguagens. Ao consultá-las, você pode estar ciente das novidades e
adotar as práticas mais recentes.
• Resolução de Problemas: Quando você enfrenta um problema ou desafio específico em seu código,
as documentações podem ser uma fonte valiosa para entender como as coisas funcionam e encontrar soluções. Você pode procurar i
nformações sobre a propriedade ou elemento em questão e encontrar exemplos de uso e explicações detalhadas.
Módulo 2 – 2 Dicas para todo programador (5 / 7)
000 000
25
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Compatibilidade entre Navegadores: As documentações muitas vezes incluem informações sobre a compatibilidade das
propriedades e elementos em diferentes navegadores. Isso ajuda os desenvolvedores a lidar com desafios de compatibilidade e a
aplicar soluções específicas quando necessário.
• Aprendizado Contínuo: Para programadores, o aprendizado contínuo é essencial. As documentações proporcionam um ambiente
de aprendizado rico, onde você pode aprofundar seu conhecimento e habilidades em CSS e HTML, independentemente do seu nível
de experiência.
• Referência Rápida: As documentações são uma referência rápida e conveniente que você pode consultar sempre que tiver dúvidas
ou precisar de informações específicas. Elas estão disponíveis online e offline, o que facilita o acesso às informações quando
necessário.
As documentações oficiais do CSS e do HTML são mantidas por organizações de padronização e desenvolvimento web respeitadas. Aqui
estão as principais fontes de documentação oficial para CSS e HTML:
Documentação Oficial do HTML (HTML5):
•W3C HTML Specification (Especificação HTML do W3C): O World Wide Web Consortium (W3C) é a organização de padronização da
web e mantém a especificação oficial do HTML. Você pode encontrar a especificação HTML completa no site do W3C. Aqui está o link:
W3C HTML Specification
Documentação Oficial do CSS (CSS3):
•W3C CSS Specification (Especificação CSS do W3C): O W3C também mantém a especificação oficial do CSS. Ela descreve todas as
propriedades CSS, valores e comportamentos padrão. Você pode encontrar a especificação CSS completa no site do W3C. Aqui está o
link: W3C CSS Specification
https://www.w3.org/TR/html52/
https://www.w3.org/Style/CSS/Overview.en.html
Módulo 2 – 2 Dicas para todo programador (6 / 7)
000 000
26
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Outras Referências Úteis:
• MDN Web Docs: Embora não seja a fonte oficial, o Mozilla Developer Network
(MDN) fornece uma excelente documentação e tutoriais para HTML, CSS e muitas outras tecnologias web.
É amplamente respeitado pela comunidade de desenvolvedores. Você pode encontrar a documentação do HTML aqui: MDN HTML
Docs e a documentação do CSS aqui: MDN CSS Docs.
• W3Schools: O W3Schools é um recurso popular para aprender HTML, CSS
e muitas outras linguagens web. Embora não seja a fonte oficial,
é frequentemente usado por desenvolvedores iniciantes para aprender conceitos básicos e exemplos práticos. Aqui está o
link: W3Schools HTML Tutorial e W3Schools CSS Tutorial.
Lembre-se de que a documentação oficial é a fonte mais confiável para informações técnicas detalhadas. No entanto, muitos
desenvolvedores também acham útil usar recursos como o mDN Web Docs, que oferece explicações detalhadas e exemplos práticos
em um formato acessível.
https://developer.mozilla.org/en-US/docs/Web/HTML
https://developer.mozilla.org/en-US/docs/Web/HTML
https://developer.mozilla.org/en-US/docs/Web/CSS
https://www.w3schools.com/html/
https://www.w3schools.com/css/
Módulo 2 – 2 Dicas para todo programador (7 / 7)
000 000
27
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
"QUEBRAR A CABEÇA"
Enfrentar desafios complexos e resolver problemas difíceis é uma parte fundamental da jornada de aprendizado e crescimento de um
programador. Isso significa dedicar tempo e esforço para compreender profundamente os conceitos e tecnologias envolvidos. Às vezes,
pode ser uma tarefa árdua e exigente, mas os benefícios são inegáveis.
Ao "quebrar a cabeça" na programação, você está fortalecendo suas habilidades de resolução de problemas e desenvolvendo um
conhecimento sólido. Cada desafio superado é uma oportunidade para aprender algo novo e aplicar esse conhecimento em projetos
futuros.
A resolução de problemas também promove a criatividade. Você precisa pensar de forma inovadora para encontrar soluções eficazes,
muitas vezes fora dos padrões convencionais. Essa capacidade de pensar fora da caixa é um dos traços distintivos dos programadores
experientes.
Além disso, a sensação de satisfação pessoal ao superar um desafio difícil é incomparável. A confiança em suas habilidades cresce a
cada obstáculo superado, e essa confiança é um ativo valioso em sua carreira de programador.
No mundo real da programação, você frequentemente enfrentará problemas complexos e situações desafiadoras. Portanto, a prática
constante de resolver desafios difíceis prepara você para essas circunstâncias. Isso o torna um profissional competente e confiável, capaz
de lidar com projetos complexos e contribuir de maneira significativa para a equipe e a empresa.
Em última análise, "quebrar a cabeça" na programação é uma parte intrínseca do processo de crescimento profissional e pessoal. É uma
jornada que recompensa aqueles que estão dispostos a enfrentar desafios, aprender com eles e continuar progredindo em direção à
excelência na programação.
Módulo 3
INTRODUÇÃO AO HTML
INTRODUÇÃO AO HTML
INTRODUÇÃO AO HTML
28
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – O que é HTML? (1 / 1)
000 000
29
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
HTML, que significa Hypertext Markup Language (Linguagem de Marcação de Hipertexto), é a linguagem de marcação usada para
criar a estrutura e o conteúdo básico de páginas da web. Em outras palavras, é a linguagem que os desenvolvedores web usam para
criar os elementos fundamentais de uma página web, como títulos, parágrafos, imagens, links e formulários.
• Hypertext (Hipertexto): O termo "hipertexto" refere-se a um tipo de texto que contém links para outros documentos, recursos ou
partes do mesmo documento. No contexto da web, hipertexto permite a navegaçãonão linear, onde você pode clicar em links para
acessar informações relacionadas em diferentes partes de um documento ou em documentos separados.
• Markup (Marcação): A "marcação" em HTML refere-se ao processo de adicionar códigos e tags especiais para definir a estrutura e o
formato do conteúdo em um documento. As tags são usadas para identificar elementos específicos, como cabeçalhos, parágrafos,
links, imagens, etc. A marcação define como o conteúdo deve ser apresentado e interligado.
• Language (Linguagem): HTML é uma linguagem de marcação que os desenvolvedores web usam para criar e estruturar
documentos na web. É uma linguagem específica para definir a estrutura e o conteúdo de páginas da web, permitindo que os
navegadores interpretem e exibam essas páginas de maneira consistente.
Em resumo, "HTML" - "Hypertext Markup Language" é uma linguagem que permite a criação de documentos hipertexto na web, onde o
conteúdo é estruturado e formatado usando tags de marcação que definem como o conteúdo deve ser exibido e interligado por meio
de links. É a linguagem fundamental da web que possibilita a criação de páginas da internet com texto, imagens, links e outros
elementos.
Módulo 3 – Estrutura de um documento HTML (1 / 8)
000 000
30
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Antes de começar a usar o editor VS Code, é altamente recomendável que
você crie pastas organizadas para o curso. Você pode criar uma pasta para
cada módulo ou aula específica. Isso ajudará você a manter um controle
claro do conteúdo das aulas e a construir seus códigos de maneira
organizada.
A organização em pastas é especialmente importante porque permite que
você tire o máximo proveito da extensão Live Server no VS Code. Essa
extensão permite visualizar sua página HTML no navegador em tempo real
enquanto trabalha nela. Organizando seus arquivos em pastas separadas,
você evita conflitos entre as páginas HTML e torna mais fácil usar o Live
Server para visualização ao vivo.
Agora, abra o Visual Studio Code (VS Code) e, com o VS Code aberto,
selecione a opção "Open Folder" para abrir a pasta que você criou
anteriormente.
Módulo 3 – Estrutura de um documento HTML (2 / 8)
000 000
31
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos criar um arquivo HMTL chamado index.html no VS Code, e para criar você clicará no ícone a seguir, e nomeará de
index e utilizará a extensão ".html" :
A extensão ".html" indica que um arquivo é um documento HTML (Hypertext Markup Language). Então um arquivo com
a extensão ".html" contém código HTML que define a estrutura e o conteúdo de uma página da web.
O nome "index" é uma convenção que se desenvolveu ao longo do tempo para identificar o arquivo principal de um site,
a página inicial. Essa prática facilita a organização, a previsibilidade e a compatibilidade na construção de sites e na
configuração de servidores web. Embora não seja estritamente necessário nomear o arquivo principal dessa forma, é uma
prática recomendada para manter a consistência e facilitar o gerenciamento de sites na web.
Módulo 3 – Estrutura de um documento HTML (3 / 8)
000 000
32
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O ponto de exclamação (!) seguido de um espaço + Enter ou Tab é frequentemente usado como um atalho para inserir
um modelo básico de documento HTML, chamado de "esqueleto HTML" ou "boilerplate HTML".
Ao utilizar esse atalho, o editor pode automaticamente preencher o documento com o seguinte código:
Módulo 3 – Estrutura de um documento HTML (4 / 8)
000 000
33
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos analisar cada parte da estrutura inicial do nosso documento HTML, e o que cada parte significa:
<!DOCTYPE html>: Esta é uma declaração que informa ao navegador que o documento está escrito em HTML5, a versão mais
recente da linguagem HTML.
<html lang="en">: Aqui, começamos o documento HTML. A tag <html> é o elemento raiz de uma página da web e contém todo o
conteúdo da página. O atributo lang (idioma) é definido como "en" para indicar que o idioma da página é o inglês (English). Você
pode substituir "en" pelo código de idioma apropriado para sua página.
<head>: Dentro da tag <html>, temos a tag <head>. A seção do cabeçalho (<head>) é usada para incluir informações sobre o
documento que não são diretamente visíveis na página, são as configurações da nossa página. Aqui estão as partes dentro do
<head>:
• <meta charset="UTF-8" />: Essa meta tag define o conjunto de caracteres usado no documento como UTF-8, que é um padrão
amplamente aceito para codificar caracteres em várias línguas.
• <meta name="viewport" content="width=device-width, initial-scale=1.0" />: Esta meta tag é comumente usada para tornar
as páginas da web responsivas. Ela define a largura da viewport (a área visível da página) como igual à largura do dispositivo e
define a escala inicial para 1.0.
• <meta http-equiv="X-UA-Compatible" content="ie=edge" />: Esta meta tag é usada para configurar o modo de
compatibilidade do Internet Explorer. Nesse caso, está definida para "ie=edge", o que indica que o documento deve ser exibido
no modo de edge (borda) do IE, que é o modo mais recente e compatível.
• <title>Document</title>: A tag <title> define o título da página, que é exibido na barra de título do navegador ou na guia da
página.
<body></body>: Aqui é onde você coloca o conteúdo visível da página, como texto, imagens, links e outros elementos. O conteúdo
que você deseja que os visitantes vejam quando acessam sua página deve ser colocado entre as tags <body>...</body>.
Módulo 3 – Estrutura de um documento HTML (5 / 8)
000 000
34
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Uma tag em HTML é uma marcação usada para definir elementos e estruturar o conteúdo de uma página da web. A
sintaxe básica de uma tag HTML é a seguinte:
• <NomeDaTag>: É o nome da tag que define o elemento. Exemplos comuns incluem <p> para parágrafos, <a> para links
e <img> para imagens.
• Aqui vai o conteúdo da tag: É o conteúdo que está contido dentro da tag e pode variar dependendo do tipo de tag.
Por exemplo, em uma tag <p>, o conteúdo seria um parágrafo de texto, enquanto em uma tag <a>, o conteúdo seria o
texto do link.
• </NomeDaTag>: É a tag de fechamento que indica o término do elemento. Geralmente, os elementos HTML são
abertos com uma tag de abertura e fechados com uma tag de fechamento correspondente.
Atributos em HTML são informações adicionais que você pode incluir em uma tag para fornecer detalhes específicos
sobre como um elemento deve se comportar ou ser exibido. Os atributos geralmente são especificados na forma de pares
chave-valor e são colocados dentro da tag, com o formato:
Módulo 3 – Estrutura de um documento HTML (6 / 8)
000 000
35
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
DevTools
DevTools (F12) é um conjunto de ferramentas de desenvolvimento integradas aos navegadores que permite aos
desenvolvedores inspecionar, depurar e otimizar páginas da web em tempo real. Pressionar a tecla F12 ou a tecla "F12" no
teclado do seu computador em um navegador da web abre a ferramenta de desenvolvedor ou a inspeção de elementos.
Esta é uma ferramenta poderosa que permite aos desenvolvedores e usuários examinarem o código-fonte, os estilos, os
recursos da página e depurar problemas em uma página da web. O processo para abrir a inspeção de elementos pode
variar ligeiramente dependendo do navegador que você está usando, mas geralmente é semelhante em todos os
principais navegadores.
Depois de abrir a inspeção de elementos, você verá uma janela ou painel que permite inspecionar o código-fonte HTML,
os estilos CSS, os recursos da página, depurar JavaScript e muito mais. Você pode clicar nos elementos na página para ver
seu código-fonte, estilos e propriedades.
Módulo 3 – Estrutura de um documento HTML (7 / 8)
000 000
36
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos clicar na funcionalidade "Go Live" no Visual StudioCode (VS Code), que é habilitada pela extensão "Live Server".
Ela permite transformar seu ambiente de desenvolvimento em um servidor web local temporário. Dessa maneira, você
poderá ver os arquivos do seu projeto diretamente no navegador, possibilitando a visualização e interação com sua
página da web em tempo real, sem a necessidade de configurar um servidor web externo.
Módulo 3 – Estrutura de um documento HTML (8 / 8)
000 000
37
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos criar a nossa primeira página web, e utilizaremos uma tag <h1> e a <p>.
A tag <h1> em HTML é usada para criar um cabeçalho de nível 1 em uma página da web. Esse cabeçalho é geralmente
usado para o título principal ou o cabeçalho mais importante em uma página, e normalmente é exibido com uma
formatação de texto maior e mais enfatizado do que o restante do conteúdo.
A tag <p> em HTML é usada para definir um parágrafo de texto em uma página da web. Ela é uma das tags mais básicas
e comuns em HTML e é usada para organizar e estruturar o conteúdo textual de uma página.
Módulo 3 – Elementos de texto (1 / 10)
000 000
38
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
HEADINGS
Os cabeçalhos (headings) em HTML são elementos usados para estruturar o conteúdo de uma página da web,
fornecendo títulos e sub-títulos que ajudam a organizar e hierarquizar o texto. Os cabeçalhos são representados pelas
tags <h1>, <h2>, <h3>, <h4>, <h5> e <h6>, onde <h1> é o mais importante e <h6> é o menos importante. Aqui estão as
regras e diretrizes para o uso correto de cabeçalhos em HTML:
• Hierarquia: Os cabeçalhos devem ser usados em uma ordem hierárquica, onde <h1> é o nível mais alto de título e <h6>
é o nível mais baixo. Isso significa que você não deve pular níveis; por exemplo, não deve usar um <h3> diretamente
após um <h1>, a menos que haja um contexto muito específico que justifique isso.
• Semântica: Os cabeçalhos devem ser usados de maneira semântica, ou seja, eles devem refletir a estrutura e o
significado do conteúdo. O <h1> deve ser usado para o título principal da página, o <h2> para os títulos de seções
importantes, e assim por diante.
• Único <h1>: Cada página deve ter um e apenas um <h1> que representa o título principal da página. O <h1> geralmente
é o título da página ou o nome do artigo.
• Subtítulos: Use os cabeçalhos <h2>, <h3>, <h4>, <h5> e <h6> para criar uma hierarquia de subtítulos que dividem o
conteúdo em seções menores. Cada nível subsequente indica uma subseção mais detalhada da anterior.
• Estilo: O estilo (como fonte, cor e tamanho) dos cabeçalhos pode ser controlado por meio de CSS (Cascading Style
Sheets). Evite usar tags de estilo inline, como <h1 style="font-size: 24px;">, sempre que possível, e use CSS externo ou
interno para estilizar os cabeçalhos de maneira consistente em toda a sua página ou site.
Atalhos VS Code
O atalho "Copiar linha para cima" é
Shift + Alt + ↑, e ele duplica a linha
atual (ou linhas selecionadas)
acima do cursor. Isso é útil para
criar cópias de linhas ou blocos de
código.
O atalho "Mover linha para cima" é
Alt + ↑, e ele move a linha atual (ou
linhas selecionadas) para cima,
acima do cursor. É útil para
reorganizar o código alterando a
ordem das linhas.
000 000
39
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Elementos de texto (2 / 10)
Módulo 3 – Elementos de texto (3 / 10)
000 000
40
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos aplicar esses elementos dentro do nosso arquivo index.html. Para isso, vamos alterar a tag <title> para
"Elementos de Texto com a Hashtag" e dentro do elemento <body> vamos adicionar os elementos de headings e um
elemento <p>, que é usado para criar parágrafos de texto em uma página da web.
Módulo 3 – Elementos de texto (4 / 10)
000 000
41
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Além das diretrizes básicas de hierarquia de cabeçalhos que mencionei anteriormente, é importante entender como aplicar a
hierarquia de títulos e subtítulos de maneira eficaz em páginas da web. Aqui estão algumas considerações adicionais sobre a
hierarquia de subtítulos:
• Consistência: A consistência na aplicação da hierarquia de cabeçalhos é fundamental. Isso significa que você deve seguir um
padrão claro e consistente ao usar os diferentes níveis de cabeçalhos em sua página. Por exemplo, se você usar um <h2> para os
subtítulos de seções, mantenha esse padrão em todo o site.
• Clareza: Os cabeçalhos e subtítulos devem ser escolhidos de forma a tornar o conteúdo claro e compreensível para os leitores. Eles
devem refletir a estrutura lógica do conteúdo e ajudar os usuários a navegarem e entenderem o que está na página.
• Contexto: Lembre-se de que os cabeçalhos e subtítulos devem fazer sentido no contexto do conteúdo. Eles devem resumir ou
descrever o que os leitores encontrarão na seção que segue o cabeçalho. Evite usar cabeçalhos que não estão relacionados ao
conteúdo ou que não têm um propósito claro.
• Uso Responsivo: Considere como sua hierarquia de cabeçalhos se comporta em dispositivos móveis. Às vezes, é necessário ajustar
o tamanho e o estilo dos cabeçalhos para garantir que eles ainda sejam legíveis em telas menores.
• Navegação: A hierarquia de cabeçalhos também desempenha um papel importante na navegação do site. Muitas vezes, os
navegadores e mecanismos de busca usam os cabeçalhos para criar uma tabela de conteúdo ou uma lista de links que ajudam os
usuários a navegar rapidamente por uma página.
• SEO (Search Engine Optimization): O uso apropriado de cabeçalhos e subtítulos pode melhorar a otimização de mecanismos de
busca de uma página. Os mecanismos de busca tendem a dar mais peso aos cabeçalhos, portanto, escolher títulos e subtítulos
relevantes e descritivos pode beneficiar o SEO do seu site.
Módulo 3 – Elementos de texto (5 / 10)
000 000
42
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O <h3> é geralmente usado para representar títulos de seções ou subseções que são menos importantes, então vamos aplicar logo
abaixo do elemento <h2> e cada elemento terá um <p> com conteúdo.
Módulo 3 – Elementos de texto (6 / 10)
000 000
43
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O <h4> é útil quando você tem seções ou subseções de um conteúdo que precisam ser organizadas e diferenciadas
hierarquicamente, mas que não são tão importantes quanto os títulos de níveis mais altos. Então vamos criar esse elemento após o
primeiro elemento <h3>.
Módulo 3 – Elementos de texto (7 / 10)
000 000
44
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os elementos <h5> e <h6> em HTML são usados para criar cabeçalhos de nível 5 e 6, respectivamente, em uma página da web.
No entanto, esses níveis de cabeçalho são geralmente usados com menos frequência em comparação com os níveis de
cabeçalho mais altos, como <h1>, <h2>, <h3>, e até mesmo <h4>. A frequência de uso dos elementos <h5> e <h6> depende da
estrutura e da complexidade do conteúdo da página.
Aqui estão algumas diretrizes gerais sobre o uso de <h5> e <h6>:
• Uso Raro: Os <h5> e <h6> são normalmente usados raramente em uma página da web. Eles representam níveis de
importância relativamente baixa em comparação com os títulos de níveis mais altos e são usados para subdivisões muito
específicas ou detalhes menos relevantes.
• Organização de Detalhes: Os <h5> e <h6> podem ser usados para organizar detalhes dentro de seções ou subseções. Por
exemplo, se você estiver escrevendo um artigo acadêmico ou técnico com muitos subdetalhes, pode usar esses níveis de
cabeçalho para hierarquizar essas informações.
• Maior Profundidade: À medida que você avança para níveis de cabeçalho mais baixos, a profundidade da hierarquia
aumenta. Isso significa que o <h6> é usado para subdivisões dentro das subdivisões do <h5>.
Módulo 3 – Elementos de texto (8 / 10)
000 000
45
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O elemento <span> em HTML é uma tag genérica usadapara aplicar estilos ou manipular partes específicas do texto dentro de um
bloco de texto maior, sem afetar o layout geral do documento. Ele não impõe uma quebra de linha antes ou depois do conteúdo
marcado, tornando-o ideal para aplicar formatação ou comportamento a partes específicas do texto.
O <span> não adiciona significado semântico ao conteúdo; ele é usado principalmente para fins de formatação e estilo. Portanto, é
importante usá-lo com moderação e em conformidade com as diretrizes de acessibilidade.
Então nesse momento iremos aplicar esses elementos no nosso index.html:
Módulo 3 – Elementos de texto (9 / 10)
000 000
46
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A diferença mais notável é que o <p> é usado para agrupar parágrafos completos de texto, enquanto o <span> é usado para
estilizar ou manipular partes específicas de texto dentro de um bloco de texto maior. Em termos de comportamento padrão, o <p>
introduz espaços em branco adicionais para separar parágrafos, enquanto o <span> não adiciona espaços em branco extras e não
cria quebras de linha.
A diferença na página será mais perceptível quando você usar o <p> para criar parágrafos, pois ele adicionará quebras de linha
entre eles, tornando o conteúdo mais estruturado. O <span>, por outro lado, é mais útil para personalizar partes específicas do
texto dentro de um parágrafo ou bloco de texto maior, sem quebrar o fluxo do texto. Portanto, a diferença visual pode ser sutil,
dependendo de como são usados e estilizados.
Módulo 3 – Elementos de texto (10 / 10)
000 000
47
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O <span> também pode funcionar como uma "caixa" invisível que envolve e isola a parte do texto que você deseja tratar de
maneira diferente, seja para aplicar estilos ou para manipulação específica no código ou no layout da página. É uma forma de
segmentar partes específicas do conteúdo dentro de elementos de bloco, como parágrafos, para aplicar personalizações ou
comportamentos específicos apenas a essas partes.
Módulo 3 – Ênfase, Importância e Formatação de textos (1 / 7)
000 000
48
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Uma característica notável dos cabeçalhos (headings) é que eles já vêm por padrão em negrito. Isso significa que, quando você
usa uma tag de cabeçalho, como <h1>, <h2>, <h3>, <h4>, <h5>, ou <h6>, o texto contido dentro delas é exibido em negrito no
navegador, sem a necessidade de aplicar estilos adicionais.
Mas você pode usar diversos elementos e técnicas para enfatizar, dar importância e formatar textos de maneira a tornar o
conteúdo de outros elementos html. E vamos abordar esses conceitos nesse momento, recapitulando sobre o elemento <span>.
Lembrando que O elemento <span> é uma tag genérica usada para aplicar estilos ou manipular partes específicas do texto sem
afetar o layout geral. Ele não possui uma formatação padrão, mas pode ser estilizado com CSS. Então ele é um elemento muito útil
para formatar textos específicos. Mas se eu quisesse aplicar o estilo de negrito sem utilizar o CSS, isso seria possível?
Existem duas formas de aplicarmos o negrito utilizando elementos html (tags).
1. <b> (Bold):
• O elemento <b> é usado para aplicar formatação em negrito ao texto.
• Ele não implica uma forte ênfase semântica no conteúdo que está envolto, apenas indica que o texto deve ser exibido em
negrito.
• O uso do <b> é principalmente estilístico e visual, e não transmite a ideia de que o texto seja necessariamente mais importante
ou enfatizado do que o texto ao seu redor.
Módulo 3 – Ênfase, Importância e Formatação de textos (2 / 7)
000 000
49
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
2. <strong> (Strong Importance):
• O elemento <strong> é usado para indicar ênfase forte em um texto.
• Ele transmite uma ênfase semântica, significando que o texto dentro dele é de grande importância no contexto da página ou
documento.
• Embora o <strong> também aplique formatação em negrito por padrão, sua principal função é indicar a importância do texto
para leitores, mecanismos de busca e tecnologias assistivas.
Em resumo, enquanto o <b> é usado principalmente para fins de formatação visual em negrito, o <strong> é usado para indicar
ênfase semântica e importância real do conteúdo. Portanto, ao escolher entre esses elementos, é importante considerar o
significado que você deseja transmitir. O <strong> é geralmente preferido quando se deseja destacar a importância do texto,
especialmente para acessibilidade e otimização de mecanismos de busca.
Módulo 3 – Ênfase, Importância e Formatação de textos (3 / 7)
000 000
50
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Podemos também utilizar outros dois elementos para formatar textos e aplicar o estilo de itálico neles:
1. <i> (Italics):
• O elemento <i> é usado para aplicar formatação em itálico ao texto.
• Ele não implica uma ênfase semântica no conteúdo que está envolto, apenas indica que o texto deve ser exibido em itálico.
• O uso do <i> é principalmente estilístico e visual, e não transmite a ideia de que o texto seja necessariamente mais importante ou
enfatizado do que o texto ao seu redor.
2. <em> (Emphasis):
• O elemento <em> é usado para indicar ênfase ou destaque em um texto.
• Ele transmite uma ênfase semântica, significando que o texto dentro dele é enfatizado ou destacado no contexto da página ou
documento.
• O <em> também aplica formatação em itálico por padrão, mas sua principal função é indicar a ênfase no texto para leitores,
mecanismos de busca e tecnologias assistivas.
Módulo 3 – Ênfase, Importância e Formatação de textos (4 / 7)
000 000
51
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os elementos HTML <b>, <i>, <em> e <strong> são aplicados a texto dentro de outros elementos HTML para alterar a formatação
ou a ênfase do texto.
Lembre-se de que a escolha entre esses elementos deve ser baseada na intenção semântica do texto que você deseja destacar ou
enfatizar. O <em> e o <strong> são especialmente úteis quando você deseja transmitir ênfase ou importância semântica, enquanto
o <b> e o <i> são mais usados para formatação visual em negrito e itálico.
Agora vamos conhecer outras tags que utilizamos para formatar textos dentro da nossa estrutura html.
A tag <code> em HTML é usada para representar um trecho de código, como código de programação ou marcação, dentro de um
documento HTML. Ela preserva espaços em branco, tabulações e quebras de linha no código. Isso significa que o texto dentro de
<code> é exibido exatamente como foi digitado, sem quebras automáticas de linha ou formatação automática.
Módulo 3 – Ênfase, Importância e Formatação de textos (5 / 7)
000 000
52
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <blockquote> é um elemento HTML usado para designar um bloco de texto que é uma citação de outra fonte. Quando você
usa a tag <blockquote>, o navegador geralmente adiciona recuo ou outro estilo para destacar visualmente o texto citado. Ela é
comumente usada em páginas da web para indicar que uma seção específica de texto é uma citação.
Lembrando que na criação de páginas da web, existem muitas tags que você pode usar para formatar e organizar texto. Não
vamos cobrir todas elas aqui, pois algumas são pouco usadas. No entanto, não se preocupe, você sempre pode pesquisar por uma
tag específica quando precisar dela. Isso torna a criação de páginas da web mais flexível e fácil de aprender à medida que você
avança. Fique à vontade para explorar e descobrir as tags que melhor se adequam ao seu projeto!
Módulo 3 – Ênfase, Importância e Formatação de textos (6 / 7)
000 000
53
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <br> é usada em HTML para criar uma quebra de linha, o que significa que ela força o conteúdo seguinte a ser exibido em
uma nova linha, sem criar um novo parágrafo. Esta tag é um exemplo de uma tag vazia, o que significa que não possui um
elemento de fechamento correspondente. Em outraspalavras, você não precisa escrever </br>.
A diferença entre <br> e <br /> é principalmente uma questão de convenção e compatibilidade com diferentes versões de HTML.
Ambas as formas são válidas em HTML5 e HTML4.
• <br>: Esta é a forma mais comum e amplamente aceita. É conhecida como uma "tag não fechada" ou "tag vazia". Ela funciona
bem em todos os navegadores modernos.
• <br />: Esta forma é conhecida como uma "tag auto-fechada". Ela é mais comumente usada em XHTML e em XML, seguindo a
sintaxe XML rigorosa, que exige que as tags sejam fechadas explicitamente com uma barra antes do símbolo >. Em HTML5, é
aceita, mas não é estritamente necessária.
Módulo 3 – Ênfase, Importância e Formatação de textos (7 / 7)
000 000
54
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <hr> em HTML é usada para criar uma linha horizontal, geralmente para separar conteúdo em uma página da web. "HR"
significa "horizontal rule" (regra horizontal) e é uma tag vazia, o que significa que não possui um elemento de fechamento.
A tag <sup> em HTML é usada para criar texto sobrescrito, o que significa que o texto dentro dessa tag é exibido acima da linha de
texto normal. Isso é frequentemente usado para indicar expoentes em fórmulas matemáticas, abreviações ou notas de rodapé.
A tag <sub> em HTML é usada para criar texto subscrito, o que significa que o texto dentro dessa tag é exibido abaixo da linha de
texto normal. Isso é frequentemente usado para representar fórmulas químicas, notas de rodapé, datas e outras informações em
que o texto precisa ser exibido ligeiramente abaixo do texto principal.
Módulo 3 – Listas ordenadas e não ordenadas (1 / 4)
000 000
55
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Ao criar páginas da web, é fundamental apresentar informações de maneira organizada e estruturada. As listas em HTML são uma
maneira eficaz de alcançar esse objetivo, permitindo que você agrupe e formate informações de maneira fácil de ler e entender.
Existem dois tipos principais de listas em HTML: listas ordenadas e listas não ordenadas.
Listas Ordenadas (OL - Ordered Lists):
As listas ordenadas são usadas quando a ordem dos itens é importante e precisa ser mantida. Elas são frequentemente usadas
para criar listas numeradas ou com marcadores em sequência.
A tag <li> em HTML é usada para definir um item de lista. Quando usada em uma lista ordenada (<ol>) a tag <li> é usada para
definir cada item da lista e, por padrão, eles são automaticamente numerados em ordem crescente.
A tag <li> é uma tag de conteúdo de bloco, o que significa que ela cria um bloco de texto separado para cada item da lista.
Módulo 3 – Listas ordenadas e não ordenadas (2 / 4)
000 000
56
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para visualizarmos no navegador, vamos adicionar alguns itens à lista ordenada e verificar como ela é estruturada na nossa página
da web.
Listas Não Ordenadas (UL - Unordered Lists):
As listas não ordenadas são usadas quando a ordem dos itens não é importante. Elas são frequentemente usadas para criar listas
de itens que não têm uma sequência específica.
Quando usamos a tag <ul> para iniciar a lista não ordenada e a tag <li> para cada item da lista. Os itens geralmente são marcados
com pontos ou círculos, mas a aparência exata pode variar de acordo com o estilo da página.
Nesse exemplo, usamos a tag <ol> para iniciar a lista ordenada e
também a tag <li> para cada item da lista. Os itens são
automaticamente numerados em ordem crescente, mas você pode
personalizar o tipo de marcação (números, letras, algarismos romanos)
usando atributos específicos.
Ambos os tipos de listas, ordenadas e não ordenadas, desempenham um papel importante na
criação de páginas da web bem estruturadas. Ao escolher entre eles, considere se a ordem dos
itens é relevante para a compreensão do conteúdo. Se a ordem for importante, use uma lista
ordenada; caso contrário, opte por uma lista não ordenada. Essas ferramentas simples tornam a
organização e apresentação de informações em uma página da web mais claras e acessíveis aos
usuários.
Módulo 3 – Listas ordenadas e não ordenadas (3 / 4)
000 000
57
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Listas de Descrição (<dl> - Description Lists):
As listas de descrição em HTML são usadas para criar listas de termos e suas descrições associadas. Isso é especialmente útil
quando você deseja fornecer informações detalhadas sobre vários itens ou conceitos em uma página da web.
Tag <dl> (Description List):
• A tag <dl> é usada para iniciar uma lista de descrição.
• Ela envolve todo o conjunto de termos e suas descrições associadas.
•Tag <dt> (Description Term):
•A tag <dt> é usada para definir um termo ou título na lista de descrição.
•Ela deve ser colocada dentro da tag <dl>.
•Cada termo é frequentemente estilizado de maneira específica para indicar que é o termo associado a uma descrição.
Tag <dd> (Description Description):
• A tag <dd> é usada para fornecer a descrição associada ao termo definido pela tag <dt>.
• Ela deve ser colocada dentro da tag <dl>.
• A descrição é geralmente exibida após o termo e pode ser estilizada de forma diferente, como texto normal.
Módulo 3 – Listas ordenadas e não ordenadas (4 / 4)
000 000
58
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As listas de descrição em HTML são uma maneira semântica e organizada de apresentar informações que exigem a
correspondência entre termos e suas descrições. Elas são especialmente úteis quando se deseja criar conteúdo educacional,
explicativo ou técnico. Cada par de <dt> e <dd> está associado a um único termo e sua descrição, e você pode ter quantos pares
desejar em uma lista de descrição.
Módulo 3 – Hiperlinks (1 / 12)
000 000
59
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Hiperlinks, também conhecidos como links, são elementos fundamentais em HTML que permitem que você crie conexões entre
páginas da web, recursos, documentos e outros tipos de conteúdo na internet. Eles permitem que os usuários naveguem de uma
página para outra, cliquem em imagens ou texto para acessar informações adicionais e explorem a web de forma interativa.
Hiperlinks podem ser divididos em dois tipos principais com base em seu destino:
• Links Internos: São hiperlinks que apontam para recursos dentro do mesmo site ou domínio. Eles são frequentemente usados
para navegação interna, como links para outras páginas do mesmo site.
• Links Externos: São hiperlinks que apontam para recursos em outros sites ou domínios. Eles são usados para direcionar os
usuários para recursos externos à página atual.
Ambos os tipos de hiperlinks desempenham um papel vital na criação de sites interativos e na conectividade da web como a
conhecemos. Eles são a espinha dorsal da navegação na web, permitindo que os usuários explorem uma ampla variedade de
informações e recursos online.
Módulo 3 – Hiperlinks (2 / 12)
000 000
60
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A criação de um hiperlink em HTML envolve o uso da tag <a> (anchor) e do atributo href (hiperlink reference).
Tag <a> (Anchor):
• A tag <a> é usada para criar hiperlinks em HTML.
• Ela envolve o conteúdo que deve ser clicável (geralmente texto, imagens ou outros elementos).
• A tag <a> possui o atributo href, que especifica o destino do hiperlink, ou seja, para onde o usuário será levado quando clicar no
link.
Atributo href (Hiperlink Reference):
• O atributo href é usado para definir o URL (Uniform Resource Locator) ou o caminho para o recurso vinculado.
• Pode ser um URL absoluto (começando com "http://" ou "https://") ou um URL relativo (relativo à localização atual do documento
HTML).
Texto ou Conteúdo do Hiperlink:
• O texto ou conteúdo dentro da tag <a> é o que os usuários veem como o link clicável.
• É importante escolher um texto descritivo que indique para onde o link levará ou qual é o seu propósito.
http://
https://
Atalho "Windows +
V"No Windows, o atalho "Windows +
V" abre o históricode área de
transferência, permitindo acessar e
colar itens copiados anteriormente,
facilitando a seleção e colagem de
itens copiados recentemente em
um computador com Windows.
000 000
61
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Hiperlinks (3 / 12)
Módulo 3 – Hiperlinks (4 / 12)
000 000
62
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O atributo href (Hiperlink Reference) é um dos elementos mais essenciais e versáteis em HTML. Ele desempenha um papel crucial
na criação de hiperlinks, que são os elementos que permitem a navegação na web, conectando páginas da web, recursos e
documentos em toda a internet. O href é usado dentro da tag <a> (anchor) para especificar o destino de um hiperlink.
URL Absoluto vs. URL Relativo:
O atributo href pode conter um URL absoluto ou um URL relativo. Um URL absoluto é uma referência completa que inclui o
esquema (como "http://" ou "https://"), o nome de domínio (por exemplo, "www.exemplo.com"), e o caminho completo para o
recurso (por exemplo, "/pagina.html"). Já um URL relativo é uma referência que é relativa à localização atual do documento HTML.
Por exemplo, se o documento HTML está em "https://www.exemplo.com/pasta/", um URL relativo como "../outrapasta/arquivo.html"
apontaria para "https://www.exemplo.com/outrapasta/arquivo.html".
http://www.exemplo.com/
https://www.exemplo.com/pasta/
https://www.exemplo.com/outrapasta/arquivo.html
Módulo 3 – Hiperlinks (5 / 12)
000 000
63
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Alvos de Hiperlink:
Além de definir o destino do hiperlink, o href pode incluir um atributo target, que controla como o link é aberto:
▪ _blank: Abre o hiperlink em uma nova janela ou guia do navegador.
▪ _self: Abre o hiperlink na mesma janela ou guia em que o link foi clicado (comportamento padrão).
▪ _top: Abre o hiperlink na janela superior, substituindo todas as molduras ou frames existentes.
▪ _parent: Abre o hiperlink na janela pai, quando a página HTML está em um conjunto de frames ou iframes.
Cada um desses valores para o atributo target controla o comportamento de exibição do hiperlink, oferecendo flexibilidade na
forma como as páginas da web são abertas e exibidas para os usuários.
Quando navegamos em um site ou lemos um artigo longo, muitas vezes nos deparamos com o desafio de encontrar
informações específicas em uma página extensa. É aí que entra o atributo id em HTML, uma ferramenta poderosa que facilita a
navegação interna e melhora a experiência do usuário.
Módulo 3 – Hiperlinks (6 / 12)
000 000
64
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O que é o atributo id?
O atributo id é um identificador exclusivo que pode ser atribuído a elementos HTML, como parágrafos, títulos, imagens ou
qualquer outro elemento da página. Esse identificador único é como um "rótulo" que você cola em um elemento para identificá-lo
de maneira única.
Por que usar o atributo id para navegar dentro de uma página?
• Facilita a Navegação: Quando você atribui um id a um elemento específico, como um título importante ou uma seção
relevante, você cria um ponto de referência na página. Isso permite que os visitantes cliquem em links ou botões que
direcionam para esse id, fazendo com que o navegador role automaticamente para o elemento desejado. É como ter um guia
interno que ajuda os usuários a encontrar rapidamente o que estão procurando.
• Melhora a Experiência do Usuário: A navegação interna proporcionada pelo id melhora a experiência do usuário,
economizando tempo e esforço. Os visitantes podem pular diretamente para a seção de seu interesse, sem a necessidade de
percorrer toda a página.
• Índices e Menus de Navegação: O id é frequentemente usado em índices, tabelas de conteúdo e menus de navegação interna.
Isso permite que os visitantes acessem facilmente diferentes partes da página, tornando a estrutura do conteúdo mais acessível.
Módulo 3 – Hiperlinks (7 / 12)
000 000
65
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
LOREM IPSUM
Lorem Ipsum é um texto fictício e padrão da indústria de impressão e editoração. Ele é
usado como espaço reservado para preencher o layout de um documento ou site antes
que o conteúdo real seja inserido. O Lorem Ipsum tem sido usado desde o século XVI e é
uma série de palavras e frases em latim aparentemente aleatórias, que não têm
significado real. A ideia por trás do Lorem Ipsum é que ele se parece com texto real, mas
não distrai o leitor com o conteúdo real enquanto o layout e o design estão sendo
criados.
A aplicabilidade do Lorem Ipsum no HTML está relacionada ao desenvolvimento de sites
e ao design gráfico. Aqui estão algumas maneiras como ele é usado:
Layout e Design: Ao criar um site ou documento, os designers geralmente usam o
Lorem Ipsum para preencher áreas de texto e verificar como o layout ficará quando o
conteúdo real for inserido. Isso ajuda a ajustar o design, como fontes, tamanhos de texto,
espaçamento e alinhamento.
Teste de Funcionalidade: Em estágios iniciais de desenvolvimento de sites, o Lorem
Ipsum pode ser usado para testar a funcionalidade do site antes que o conteúdo real
esteja disponível. Isso permite verificar se links, menus e outros elementos interativos
estão funcionando corretamente.
Apresentações e Protótipos: Em apresentações de design ou protótipos de sites, o
Lorem Ipsum é usado para simular como o conteúdo será distribuído na página. Isso
ajuda os clientes e partes interessadas a visualizar o design final.
Preenchimento de Espaço Reservado: Quando o conteúdo real ainda não está pronto,
mas o layout precisa ser concluído, o Lorem Ipsum é usado para preencher o espaço
reservado nos elementos HTML, como parágrafos, divs ou caixas de texto.
Módulo 3 – Hiperlinks (8 / 12)
000 000
66
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No Visual Studio Code, a combinação de teclas "Ctrl + Shift + P" é usada para abrir a paleta de comandos. Isso permite que
você execute rapidamente comandos, extensões ou ações específicas no Visual Studio Code. Você pode digitar o nome do
comando desejado na paleta de comandos e, em seguida, selecionar o comando relevante para executá-lo.
A paleta de comandos é uma ferramenta poderosa para acessar rapidamente recursos e funcionalidades no Visual Studio
Code, especialmente quando você não deseja navegar pelos menus ou barra de ferramentas. É uma maneira eficiente de
realizar tarefas e personalizar sua experiência de desenvolvimento no editor de código.
E pesquise por Emmet Wrap with Abbreviation:
A funcionalidade "Wrap with Abbreviation" (Envolva com Abreviação) no Emmet permite que você envolva rapidamente
elementos HTML ou XML selecionados com uma abreviação especificada. É uma funcionalidade que economiza tempo e
simplifica o processo de envolvimento de elementos no desenvolvimento web.
Módulo 3 – Hiperlinks (9 / 12)
000 000
67
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para usar o "Wrap with Abbreviation" no Emmet, você irá clicar no ícone de engrenagem "Configure Keybinding":
• Você pode criar uma associação de tecla personalizada (keybinding):
• Clique com o botão direito do mouse sobre ela e escolha "Add Keybinding" (Adicionar Associação de Tecla).
• Ou clique duas vezes no atalho que você deseje substituir.
Módulo 3 – Hiperlinks (10 / 12)
000 000
68
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Certifique-se de criar atalhos que ainda não estão em uso, pois o próprio VS
Code indicará se a combinação de teclas que você está tentando criar já está
atribuída a outra funcionalidade.
Após criado o seu atalho do "Wrap with Abbreviation" no Emmet:
1. Selecione o Conteúdo: Primeiro, selecione os elementos HTML que você deseja envolver com uma abreviação. Isso pode
ser texto, tags ou qualquer parte do seu código.
2. Ative o Emmet: Assim que fizer a seleção, ative o Emmet usando o atalho de teclado que criou ou o padrão do VS Code. Isso
abrirá a entrada de abreviação do Emmet.
3. Digite a Abreviação: Naentrada de abreviação do Emmet, digite a abreviação para a estrutura HTML desejada na qual você
deseja envolver o conteúdo selecionado. Por exemplo, se você deseja envolver o conteúdo com uma tag <b>, você pode
digitar b ou qualquer outra abreviação válida.
4. Pressione "Tab" ou "Enter": Após inserir a abreviação, basta pressionar a tecla "Tab" ou "Enter", e o Emmet envolverá o
conteúdo selecionado com a estrutura HTML especificada. O resultado será gerado instantaneamente.
Módulo 3 – Hiperlinks (11 / 12)
000 000
69
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Deixar um link vazio com o atributo href definido como # é uma prática comum em HTML, e isso é feito por várias razões:
Comportamentos JavaScript: Às vezes, os desenvolvedores usam links com href="#" como marcadores ou gatilhos para
comportamentos JavaScript específicos. Quando o usuário clica no link, um script JavaScript pode ser ativado para executar
uma ação, como mostrar ou ocultar conteúdo, abrir um menu suspenso, ou realizar uma animação na página.
Manter o Comportamento Padrão: Quando você cria um link vazio com #, ele não leva o usuário a uma nova página ou
recarrega a página atual. Isso é útil quando você deseja manter o comportamento padrão da página enquanto implementa
interações adicionais por meio de JavaScript.
Espaço Reservado para Futuros Links: Às vezes, os desenvolvedores deixam links com # como espaços reservados para
futuros links que podem ser adicionados posteriormente. Isso pode ser útil quando você está desenvolvendo um site e planeja
adicionar links em um estágio posterior do projeto.
Acessibilidade: Ao adicionar um link com href="#", você fornece um elemento de foco para usuários que navegam na página
usando tecnologias de assistência, como leitores de tela. Isso pode melhorar a acessibilidade da sua página.
É importante observar que, quando se usa um link vazio com #, é uma boa prática incluir comentários no código HTML
explicando a finalidade do link, para que outros desenvolvedores entendam sua intenção e para que o código seja mais legível.
Módulo 3 – Hiperlinks (12 / 12)
000 000
70
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para praticarmos a criação de hiperlinks e a navegação entre páginas HTML, vamos criar uma nova página chamada
'contato.html'. Em seguida, adicionaremos uma âncora que levará a um link para o nosso arquivo 'index.html'.
Vamos adicionar um link ao nosso arquivo index.html:
E com isso conseguiremos que esses elementos de âncora permitem a navegação entre diferentes páginas HTML. O usuário
pode acessar facilmente as páginas "contato.html" ou "index.html" ao clicar nos links correspondentes. Cada link levará o
usuário para a página especificada no atributo href.
Módulo 3 – Imagens e seus atributos no HTML (1 / 4)
000 000
71
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <img> em HTML é usada para incorporar imagens em uma página da web, e você pode especificar a origem (source) da
imagem de duas maneiras:
Usando um arquivo dentro do projeto: Você pode carregar uma imagem que está localizada no mesmo diretório ou em um
subdiretório do seu projeto HTML. Para fazer isso, você especifica o caminho relativo para o arquivo de imagem no atributo src
(source) da tag <img>.
Nesse caso, "Logo Hashtag.jpg" é o nome do arquivo de imagem no mesmo diretório onde o arquivo HTML está localizado.
Você pode usar caminhos relativos para acessar imagens em diferentes pastas do projeto, por exemplo: <img
src="imagens/imagem.jpg" alt="Descrição da imagem">.
Usando um link externo (URL): Você também pode incorporar imagens que estão hospedadas em servidores da web ou em
qualquer outro local online, fornecendo o URL da imagem no atributo src.
Nesse caso, a imagem é carregada diretamente do URL especificado. Isso é útil quando você deseja exibir imagens de fontes
externas, como imagens de um site de terceiros.
Módulo 3 – Imagens e seus atributos no HTML (2 / 4)
000 000
72
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O atributo alt em HTML é usado com a tag <img> para fornecer um texto alternativo (alternative text) para uma imagem. Este
texto alternativo é exibido quando a imagem não pode ser carregada pelo navegador ou quando um leitor de tela é usado por
usuários com deficiência visual. Independentemente da origem da imagem, você deve fornecer um texto alternativo
significativo usando o atributo alt para garantir a acessibilidade da sua página.
Certifique-se de que o valor do atributo alt descreva adequadamente o conteúdo ou o propósito da imagem, para que os
usuários que não podem ver a imagem ainda entendam o que ela representa.
Aqui estão alguns pontos importantes sobre o atributo alt:
• Acessibilidade: O atributo alt é essencial para tornar uma página da web acessível a todos os usuários, incluindo aqueles
com deficiência visual. Quando uma imagem não pode ser exibida, o texto alternativo fornece uma descrição da imagem
para que os usuários saibam o que deveria estar lá.
• SEO (Search Engine Optimization): Os mecanismos de busca usam o texto alternativo para entender o conteúdo da
imagem, o que pode afetar a classificação da página nos resultados de pesquisa. Portanto, é importante usar o alt de forma
descritiva e relevante para a imagem.
• Exibição em Leitores de Tela: Leitores de tela, que são usados por pessoas cegas ou com deficiência visual, leem o texto
alternativo em voz alta. Isso permite que esses usuários compreendam o conteúdo da imagem.
• Imagens Decorativas: Em casos de imagens puramente decorativas, que não têm um significado funcional na página, você
pode usar alt="" (uma string vazia) para indicar que a imagem é decorativa e não requer uma descrição.
• Texto Descritivo: O texto alternativo deve ser uma descrição precisa do conteúdo da imagem. Tente fornecer informações
relevantes que ajudem os usuários a entenderem o contexto da imagem. Evite usar "imagem" ou "foto" como texto
alternativo, a menos que seja apropriado.
Módulo 3 – Imagens e seus atributos no HTML (3 / 4)
000 000
73
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <img> possui alguns atributos opcionais, como:
width (largura) e height (altura): Esses atributos permitem definir a largura e a altura da imagem em pixels. Eles são opcionais,
mas úteis para controlar o tamanho da imagem na página.
Quando você define um valor apenas para um dos atributos width (largura) ou height (altura) em uma tag <img>, o navegador
normalmente ajustará automaticamente o valor não especificado para manter a proporção original da imagem. Isso significa
que a imagem será redimensionada de forma proporcional para que nem a largura nem a altura pareçam distorcidas.
Módulo 3 – Imagens e seus atributos no HTML (4 / 4)
000 000
74
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <figure> em HTML é usada para encapsular elementos que representam uma figura ou ilustração em um documento,
como uma imagem, gráfico, diagrama, vídeo, entre outros. O elemento <figure> é frequentemente usado em conjunto com a
tag <figcaption> para fornecer uma legenda ou descrição associada à figura.
• <figure>: Este elemento é usado para envolver a figura ou ilustração em questão. Pode conter qualquer elemento ou
conteúdo multimídia que represente uma figura no contexto do documento. A tag <figure> é usada para criar um
agrupamento semântico que indica que os elementos dentro dela estão relacionados como uma figura.
• <figcaption>: Este elemento é usado para fornecer uma legenda ou descrição para a figura encapsulada pela tag <figure>. A
tag <figcaption> geralmente é colocada dentro da tag <figure>. A legenda ajuda a descrever ou explicar a figura, tornando-a
mais compreensível para os leitores.
A tag <figure> envolve uma imagem com a descrição fornecida no atributo alt. A tag <figcaption> é usada para fornecer uma
legenda explicativa para a imagem.
O uso dos elementos <figure> e <figcaption> ajuda a criar uma estrutura semântica para figurasem seu conteúdo, tornando-o
mais acessível e compreensível para os leitores, além de melhorar a indexação de conteúdo por mecanismos de busca.
Módulo 3 – Ferramenta do Programador (1 / 2)
000 000
75
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A ferramenta do programador, também conhecida como DevTools ou Console do navegador, é uma poderosa ferramenta de
desenvolvimento incorporada nos navegadores da web, como Google Chrome, Mozilla Firefox, Microsoft Edge e outros. Ela é
usada por desenvolvedores web para depurar, testar e analisar páginas da web, elementos HTML, CSS e scripts JavaScript. A
ferramenta do programador geralmente é acessada pressionando a tecla F12 ou usando o atalho de teclado Ctrl + Shift + I (ou
Cmd + Option + I no macOS).
Ou você pode acessar através das configurações do navegador, como imagem abaixo:
Módulo 3 – Ferramenta do Programador (2 / 2)
000 000
76
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Aqui estão algumas das principais funcionalidades da ferramenta do programador:
• Console: A aba Console permite que você veja mensagens de erro, depure código
JavaScript, execute comandos interativos e registre informações de depuração.
• Elements (Elementos): Esta aba permite inspecionar e modificar o HTML e o CSS
de uma página em tempo real. Você pode selecionar elementos na página e ver
suas propriedades, estilos e eventos associados.
• Network (Rede): A aba Network exibe todas as solicitações feitas pelo navegador
ao carregar uma página, incluindo solicitações HTTP, recursos como imagens,
scripts e arquivos CSS. Isso é útil para otimizar o desempenho da página.
• Sources (Fontes): Esta aba permite depurar código JavaScript. Você pode definir
pontos de interrupção, inspecionar variáveis, rastrear a execução do código e até
mesmo editar scripts em tempo real.
• Application (Aplicação): A aba Application fornece informações sobre cookies,
armazenamento local, armazenamento de sessão e outras informações
relacionadas à aplicação web.
• Emulação de Dispositivo: Permite simular diferentes dispositivos móveis e
tamanhos de tela para verificar como uma página se comporta em dispositivos
variados.
Módulo 3 – Desafio 1 – Apresentando o Desafio (1 / 3)
000 000
77
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Desafio de HTML: Crie uma Página de Anúncio de Smart TV
Parabéns, você chegou a um momento emocionante em nosso curso de HTML para
iniciantes! Agora que exploramos conceitos e elementos fundamentais, é hora de
aplicar tudo o que aprendemos na prática. Para isso, lançaremos o nosso primeiro
desafio emocionante: a criação de uma página web que anuncia uma Smart TV.
Uma Oportunidade de Colocar em Prática Seus Conhecimentos
Este desafio não apenas testará suas habilidades recém-adquiridas, mas também o
levará a um cenário real de desenvolvimento web. Você aprenderá a criar uma página
atraente que não só informa, mas também cativa o público.
Elementos-Chave a Serem Abordados
Nesta tarefa, você usará elementos HTML essenciais, como títulos, listas e formatação
de texto para criar uma página de anúncio convincente. Além disso, praticará a
organização de conteúdo com seções bem definidas.
Módulo 3 – Desafio 1 – Apresentando o Desafio (2 / 3)
000 000
78
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesta aula você precisa fazer o download do arquivo que está em nossa plataforma. Feito o download, você terá um arquivo
imagem-smart-tv.png que é a imagem que utilizará no seu site, e também as instruções dentro do arquivo desafio-1.txt, com
todos os requisitos para montar a sua página.
Após a leitura, você irá criar um arquivo chamado desafio1.html e iniciar a estrutura do desafio. Lembre-se de utilizar a extensão
Live Server para acompanhar o desenvolvimento do seu site no navegador e caso sinta dificuldades retorne as aulas ou tire suas
dúvidas no suporte da plataforma. Mas lembre-se que é um momento de quebrar a cabeça e pesquisar.
Módulo 3 – Desafio 1 – Apresentando o Desafio (3 / 3)
000 000
79
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Destaque para Acessibilidade e Estilo
Não esqueceremos a importância da acessibilidade. Você garantirá que a imagem tenha um texto alternativo apropriado e que o
conteúdo seja estruturado de forma clara para todos os visitantes.
• Conteúdo Estratégico para uma Venda Eficiente
Ao criar esta página, pense em como destacar as características importantes da Smart TV. Você ajudará os potenciais
compradores a tomar decisões informadas.
• Um Espaço para a Criatividade
Embora tenhamos algumas diretrizes a seguir, lembre-se de que a criatividade é bem-vinda. Personalize a página, escolha a
imagem e a marca da Smart TV, e dê seu toque especial ao texto.
• Compartilhe Seu Progresso e Aprendizado
Depois de concluir o desafio, compartilhe sua criação com seus colegas do curso. Não se esqueça de aproveitar a oportunidade
para aprender uns com os outros e trocar ideias.
Este desafio não é apenas um teste de suas habilidades em HTML, mas também uma chance de demonstrar sua criatividade.
Estou ansioso para ver o que você criará e como aplicará tudo o que aprendeu. Boa sorte e divirta-se construindo a página de
anúncio da Smart TV!
Módulo 3 – Desafio 1 – Construindo o desafio do zero (1 / 7)
000 000
80
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos iniciar o Desafio criando o arquivo chamado desafio-1.html e iniciando um documento do tipo HTML. Você pode utilizar o
atalho ( ! ) para construir a estrutura inicial do HTML e iremos adicionar a tag title e adicionaremos o título da nossa página.
Seguindo o passo a passo da instruções do arquivo desafio-1.txt, vamos adicionar a imagem e um título a nossa página, para isso
vamos relembrar os conceitos os elementos que iremos utilizar:
• <figure>: Este elemento envolve a imagem da Smart TV e sua legenda, fornecendo uma estrutura semântica para conteúdo
relacionado.
• <img src="imagem-smart-tv.png" alt="Smart TV" width="400px" />: Insere uma imagem com o atributo src especificando o
caminho da imagem, o atributo alt fornece um texto alternativo (importante para acessibilidade) e o atributo width define a
largura da imagem.
• <figcaption>Smart TV da marca XYZ</figcaption>: Aqui está a legenda da imagem.
• <h1>Smart TV 75" da marca XYZ</h1>: Cria o título principal da página.
Módulo 3 – Desafio 1 – Construindo o desafio do zero (2 / 7)
000 000
81
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesse momento teremos a estrutura do nosso desafio da seguinte maneira:
Agora está na hora de adicionarmos o link, utilizando a tag <a>, com o atributo href vazio, pois será um link que não encaminhará
o usuário a outra lugar.
Módulo 3 – Desafio 1 – Construindo o desafio do zero (3 / 7)
000 000
82
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos construir a próxima seção que é a seção de Preço. O título deve ser "Preço" e os textos da seção "R$ 4.999 ou 12xR$
416,58" e "Desconto de 10% no PIX", sendo que queremos dar importância ao texto "R$ 4.999" e apenas deixar em negrito o texto
"Desconto de 10%".
E vamos criar uma separação horizontal entre a seção de preço e a de condições, utilizando a tag <hr />:
Módulo 3 – Desafio 1 – Construindo o desafio do zero (4 / 7)
000 000
83
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Analisando a estrutura de elementos do slide anterior, vamos relembrar os conceitos das tags
utilizadas e como elas estão estruturando a nossa página web.
• <h2>Preço</h2>: Define o título da seção de preço.
• <p><strong>R$ 4.999</strong> ou 12xR$ 416,58</p>: Formata o preço em negrito com <strong>.
• <p><b>Desconto de 10%</b> no PIX</p>: Define o desconto de 10% em negrito com <b>.
• <hr />: Insere uma linha horizontal para separar as seções.
A próxima seção que iremos construir será a seção de Condições. Vamos criar os elementos para que
essa seção tenha o título "Condições" e os textos "Parcelamento sem juros" e "Frete grátis", sendo
que o"sem juros" deverá estar em itálico, utilizando a tag <i> e o "Frete grátis" deverá receber uma
ênfase, que podemos utilizar a tag <em> para isso.
Entre as seções condições e de características também iremos utilizar a tag <hr /> para criar uma
separação horizontal entre elas.
Módulo 3 – Desafio 1 – Construindo o desafio do zero (5 / 7)
000 000
84
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A nossa última seção será a de Características. O título da seção é "Características" e nela teremos três sub-seções, são elas: "Inteligência
Artificial & Smart", "Imagem" e "Conexões".
Em cada seção vamos colocar uma lista não ordenada com 4 itens em cada uma delas. Os itens das listas são esses (4 itens para cada sub-seção):
Alexa
Google Assistente
Game Optimizer
Configuração da família
4K UHD
Processador XYZ
HDR
HDMI 2.0
3 Entradas HDMI 2.0
2 Entradas USB
1 Bluetooth In/Out
1 Saída digital óptica
Módulo 3 – Desafio 1 – Construindo o desafio do zero (6 / 7)
000 000
85
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos entender os elementos utilizados para construir a seção de Características e o que cada parte está fazendo:
• <h2>Características</h2>: Aqui, estamos criando um título de nível 2, indicando que estamos começando uma nova seção na
página, que se concentra nas características da Smart TV.
• <h3>Inteligência Artificial & Smart</h3>: Dentro da seção de características, usamos um título de nível 3 para criar uma
subseção com o nome "Inteligência Artificial & Smart". Isso ajuda a organizar e estruturar as informações.
• <ul>: Abrimos uma lista não ordenada (<ul>) para listar as características da subseção "Inteligência Artificial & Smart". Listas não
ordenadas são usadas quando você deseja apresentar itens sem uma ordem específica, como uma lista de recursos.
• <li>Alexa</li>: Usando o elemento <li>, listamos o primeiro item das características, que é "Alexa". Repetimos esse processo para
listar os outros itens, como "Google Assistente", "Game Optimizer" e "Configuração da família".
• <h3>Imagem</h3>: Continuamos com a próxima subseção, "Imagem", usando novamente um título de nível 3.
• <ul>: Abrimos uma nova lista não ordenada para as características da subseção "Imagem". Aqui, listamos itens relacionados à
qualidade da imagem, como "4K UHD", "Processador XYZ", "HDR" e "HDMI 2.0".
• <h3>Conexões</h3>: Finalmente, introduzimos a terceira subseção, "Conexões", com um título de nível 3.
• <ul>: Abrimos outra lista não ordenada para listar as características de conexões da Smart TV, que incluem "3 Entradas HDMI
2.0", "2 Entradas USB", "1 Bluetooth In/Out" e "1 Saída digital óptica".
Essa estrutura de títulos de diferentes níveis (<h2>, <h3>) e listas não ordenadas (<ul>) ajuda a organizar as informações de forma
hierárquica e legível, tornando a página mais clara para os visitantes. Cada subseção agrupa características relacionadas, o que
facilita a leitura e compreensão do conteúdo.
Módulo 3 – Desafio 1 – Construindo o desafio do zero (7 / 7)
000 000
86
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A estrutura final do nosso arquivo HTML e a interface visual final do nosso site terá essas estruturas:
Módulo 3 – Desafio 2 – Home da Hashtag Treinamentos (1 / 2)
000 000
87
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Desafio 2: Construindo a Home da Hashtag Treinamentos
Olá, caros alunos! Chegamos ao emocionante Desafio 2, no qual construiremos a página inicial (Home) do site da Hashtag
Treinamentos (Hashtag Treinamentos | Cursos de Excel, VBA, Python e mais!). Este desafio é uma oportunidade empolgante para
aplicar tudo o que você aprendeu até o momento no módulo de Introdução ao HTML. Vamos criar o esqueleto básico da página
inicial, e à medida que avançamos nos módulos seguintes, aprimoraremos e adicionaremos recursos adicionais.
Quando e Como
Vamos concluir este desafio ao final do Módulo 6, quando já teremos explorado os conceitos mais avançados de HTML e CSS. Por
enquanto, nosso objetivo é criar a estrutura básica da Home da Hashtag Treinamentos, utilizando apenas o conhecimento que
adquirimos até este ponto. Se surgir a necessidade de incluir elementos que ainda não foram abordados em nossas aulas,
simplesmente coloque um placeholder, como <p>VÍDEO</p>, para representar esses elementos que serão substituídos nas
próximas etapas.
https://www.hashtagtreinamentos.com/
Módulo 3 – Desafio 2 – Home da Hashtag Treinamentos (2 / 2)
000 000
88
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O Gabarito
O resultado desse Desafio 2 será um site que reflete a Home da Hashtag Treinamentos usando apenas os conceitos que
estudamos até agora. Se você precisar relembrar ou revisitar algum tópico, não hesite em voltar às aulas ou consultar o arquivo
"elementos.txt" que fornecemos.
Divirta-se!
Lembre-se de que a programação e a criação de páginas web são uma jornada empolgante e criativa. Este desafio oferece a você
a oportunidade de aplicar seus conhecimentos, desenvolver suas habilidades e criar algo incrível. Divirta-se ao construir a Home
da Hashtag Treinamentos e esteja preparado para aprimorá-la à medida que avançamos em nosso curso. Se tiver alguma dúvida,
nossa comunidade está aqui para ajudar. Boa sorte e aproveite!
Faça os downloads dor arquivos para instruções e links necessários para construir a página!
Módulo 3 – Desafio 2 – Criando o Cabeçalho (1 / 7)
000 000
89
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O que é a Seção de Cabeçalho?
Em HTML, a seção de cabeçalho, é uma parte essencial de uma página da web que engloba elementos como o título da página,
logotipos, menus de navegação, informações de contato e outras informações que geralmente aparecem na parte superior de
uma página.
Elementos Comuns na Seção de Cabeçalho:
• Título da Página: O título da página, que aparece na barra de título do navegador, ajuda os visitantes a entender o conteúdo
da página.
• Logotipo: Empresas e sites frequentemente exibem seus logotipos no cabeçalho, reforçando sua marca.
• Navegação: Menus de navegação são colocados no cabeçalho para facilitar a experiência do usuário na exploração do site.
• Informações de Contato: Algumas páginas incluem detalhes de contato no cabeçalho, como números de telefone ou links
para formulários de contato.
• Redes Sociais: Ícones ou links para redes sociais permitem que os visitantes compartilhem e se conectem com a organização.
Por que a Seção de Cabeçalho é Importante?
A seção de cabeçalho desempenha um papel crítico na usabilidade e identidade visual de um site. Ela fornece aos visitantes
informações essenciais e cria uma base para uma experiência de usuário consistente. Além disso, é comum que o cabeçalho seja
compartilhado em várias páginas, mantendo a coesão visual e de navegação em todo o site.
Módulo 3 – Desafio 2 – Criando o Cabeçalho (2 / 7)
000 000
90
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos iniciar criando um arquivo HTML chamado home-hashtag.html. Dentro desse arquivo teremos toda a estrutura da nossa
página. Lembrando que para iniciarmos um documento html, podemos utilizar o atalho ( ! ) no Visual Studio Code e teremos a
estrutura básica do nosso arquivo.
E adicionaremos o título da nossa página dentro da tag title:
Lembre-se de utilizar a extensão Live Server para acompanhar como a estrutura da sua página dentro do navegador.
Módulo 3 – Desafio 2 – Criando o Cabeçalho (3 / 7)
000 000
91
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesse momento vamos construir a estrutura do cabeçalho, contendo todos os
elementos da página inicial do Hashtag Treinamentos. E vamos relembrar os
conceitos dos elementos e suas estruturas.
Vamos construir o código HTML que cria a estrutura básica do cabeçalho do site da
Hashtag Treinamentos, com um logotipo no topo e um menu de navegação que
permite aos visitantes acessar diferentes partes do site. A utilização de listas não
ordenadas (<ul>) e itens de lista (<li>) é umaabordagem comum para a criação de
menus de navegação em HTML, tornando a navegação do site mais organizada e
intuitiva para os usuários.
Para colocarmos o logo, vamos copiar o endereço da imagem do próprio site da
Hashtag Treinamentos, clicando com o botão direito do mouse em cima do logo e
colocarmos no nosso arquivo html utilizando a tag img :
• <img src="https://www.hashtagtreinamentos.com/wp-
content/uploads/2022/05/Logo-Hashtag-Original-100x45px.png.webp"
alt="Logo da Hashtag">
Este é um elemento de imagem (<img>) que exibe o logotipo da Hashtag
Treinamentos. O atributo src define o caminho da imagem, e o atributo alt fornece
um texto alternativo que é exibido se a imagem não puder ser carregada. O logotipo
é um link para a página inicial do site.
Módulo 3 – Desafio 2 – Criando o Cabeçalho (4 / 7)
000 000
92
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos crias os próximos elementos que serão links que encaminham o usuário as páginas de cada item. Para isso
precisamos utilizar as listas:
• <ul>: Este elemento cria uma lista não ordenada (<ul>), que será usada para criar o menu de navegação do site.
• <li>: Cada item de menu é representado por um elemento de lista (<li>) dentro da lista não ordenada.
• <a href="https://www.hashtagtreinamentos.com/curso-de-excel-online">Curso de Excel</a>: Este é um link de âncora
(<a>) que aponta para a página do "Curso de Excel" no site da Hashtag Treinamentos. O atributo href define o URL de
destino e o texto entre as tags <a> é o texto visível do link.
A estrutura se repete para outros itens do menu, como "Curso de Power BI," "Curso de Python," "Outros Cursos," "Para
empresas," "Blog" e "Contato." Cada um deles é um link para diferentes seções do site.
Para saber para qual página cada link encaminha, você pode utilizar a ferramenta do programador, DevTools (F12), o primeiro
ícone representa a seleção dos elementos da página:
Módulo 3 – Desafio 2 – Criando o Cabeçalho (5 / 7)
000 000
93
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para os itens "Outros Cursos" e "Contato," há submenus aninhados. Isso é representado pela criação de outra lista não ordenada
(<ul>) dentro de um item de lista (<li>). Esses submenus contêm links adicionais para páginas relacionadas.
Então a estrutura do cabeçalho será:
Módulo 3 – Desafio 2 – Criando o Cabeçalho (6 / 7)
000 000
94
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Continuando com a estrutura:
Módulo 3 – Desafio 2 – Criando o Cabeçalho (7 / 7)
Comentários no HTML
Os caracteres <!-- e --> (CTRL + ;)são usados
em HTML para criar comentários. Os
comentários são trechos de texto que não
são renderizados na página pelo
navegador, mas servem para incluir notas
ou explicações que podem ser lidas por
desenvolvedores ou mantenedores do
código. Eles são úteis para documentar o
HTML, tornando-o mais compreensível e
facilitando a colaboração em projetos.
000 000
95
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Hero (1 / 3)
O que é uma Seção "Hero"?
Uma seção "hero" é a área proeminente que você geralmente encontra no topo de muitas páginas web. Ela é projetada para
chamar a atenção do visitante e transmitir informações importantes ou cativantes de forma impactante. Essa seção é chamada
de "hero" porque desempenha um papel heróico ao fazer uma primeira impressão notável. Vamos explorar suas características
típicas:
• Imagem ou Vídeo de Destaque: A seção "hero" geralmente apresenta uma imagem de fundo ou vídeo impactante e relevante.
• Título e Subtítulo Impactantes: Inclui um título grande e chamativo, muitas vezes acompanhado por um subtítulo informativo.
• Chamada para Ação (CTA): Geralmente contém um botão de ação (CTA) que incentiva os visitantes a tomar ações específicas.
• Conteúdo de Destaque: Além do título, pode destacar elementos de conteúdo relevantes, como depoimentos ou números.
• Design Responsivo: Deve ser responsivo, ajustando-se a diferentes tamanhos de tela sem perder qualidade visual.
• Simplificação da Navegação: Pode incluir links ou botões para facilitar a navegação nas áreas importantes do site.
• Foco na História ou na Marca: Muitas vezes, conta a história da empresa, destaca os valores da marca ou transmite uma
mensagem poderosa.
Por que é Importante Aprender sobre Seções "Hero"?
As seções "hero" desempenham um papel crucial na criação de uma primeira impressão marcante em uma página web. Elas são
usadas em sites de empresas, páginas de produtos, eventos e muito mais. A compreensão dessas seções é fundamental para
criar designs atraentes e envolventes.
000 000
96
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Hero (2 / 3)
Vamos construir a nossa seção Hero, com os elementos da página da Hashtag Treinamentos:
000 000
97
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Hero (3 / 3)
• Vamos analisar as estruturas utilizadas para criarmos nosso seção Hero:
• <!-- Seção Hero --> é um comentário que descreve o início da seção "hero" para fins de documentação e entendimento.
• <h1> contém o título principal da seção "hero."
• <p> inclui um parágrafo com informações adicionais ou descritivas.
• Os dois <a> (âncoras ou links) direcionam os visitantes para páginas específicas quando clicados. O primeiro link leva para
"Cursos Hashtag Treinamentos," e o segundo para "Cursos Hashtag Programação."
• <p> adicionaremos por enquanto o texto "VÍDEO".
000 000
98
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Conteúdos Gratuitos (1 / 5)
Agora vamos iniciar a próxima seção de Conteúdos Gratuitos:
Vamos começar com os elementos da imagem da seta e o título (h2):
000 000
99
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Conteúdos Gratuitos (2 / 5)
Adicionaremos a próxima imagem e um subtítulo que será responsável pelos itens dos Treinamentos:
E iniciaremos a lista de cursos com logotipos, utilizando as âncoras para criarmos os links e as imagens:
000 000
100
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Conteúdos Gratuitos (3 / 5)
E agora vamos adicionar a lista para plataformas digitais, elas estarão dentro de uma lista e vamos utilizar as âncoras para
criarmos os links e as imagens de cada elemento:
000 000
101
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Conteúdos Gratuitos (4 / 5)
Nesse momento vamos estruturar o segundo subtítulo da seção que será Programação, e para isso também utilizaremos a
tag <h3> e as âncoras de links com suas respectivas imagens:
E assim como estruturamos os links paras mídias sociais e suas imagens, faremos nesse momento, mas com os endereços da
Programação.
000 000
102
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Conteúdos Gratuitos (5 / 5)
000 000
103
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Diferenciais (1 / 6)
000 000
104
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A próxima seção que vamos criar é a de Diferenciais: Vamos iniciar adicionando o título a seção e o primeiro texto:
Módulo 3 – Desafio 2 – Criando a Seção Diferenciais (2 / 6)
000 000
105
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No código acima, a seção Diferenciais, possui uma estrutura de elementos "Foco no Mercado" que apresenta informações
sobre o foco dos materiais de treinamento da Hashtag Treinamentos no mercado de trabalho. Os comentários explicam o
propósito de cada elemento no código.
Módulo 3 – Desafio 2 – Criando a Seção Diferenciais (3 / 6)
000 000
106
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No código abaixo, vamos criar a estrutura dos elementos do "Nível Impressionador" que apresenta informações sobre o nível de
treinamento oferecidopela Hashtag Treinamentos, destacando a jornada desde o início até o "Nível Impressionador".
Módulo 3 – Desafio 2 – Criando a Seção Diferenciais (4 / 6)
000 000
107
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
E por último faremos a mesma criação de estrutura para os elementos da estrutura de "+84.600 alunos formados" destaca o
número de alunos que a Hashtag Treinamentos formou e fornece informações sobre o impacto positivo de seus cursos.
Módulo 3 – Desafio 2 – Criando a Seção Diferenciais (5 / 6)
000 000
108
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Continuando a nossa seção de diferenciais, vamos adicionar uma tag <h3> e dentro desse elemento vamos adicionar uma
âncora que direciona o usuário a um link.
E abaixo dessa estrutura adicionaremos as imagens de diversas logomarcas de empresas e os links das imagens estão
disponíveis na plataforma Hashtag, dentro dessa aula:
Módulo 3 – Desafio 2 – Criando a Seção Diferenciais (6 / 6)
000 000
109
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção O que falam (1 / 2)
000 000
110
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A seção "O que falam sobre a Hashtag Treinamentos" refere-se a depoimentos em vídeo de alunos ou clientes. Ela inclui
ícones, títulos, marcadores para botões de navegação e um link para "Veja mais depoimentos" no YouTube. No entanto,
partes do código estão marcadas como "BOTÃO ESQUERDA," "BOTÃO DIREITA," e "BOTÕES DE NAVEGAÇÃO," pois
esses elementos de interface são implementados usando CSS e JavaScript para criar uma experiência interativa de
navegação de depoimentos.
Módulo 3 – Desafio 2 – Criando a Seção O que falam (2 / 2)
000 000
111
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Na mídia (1 / 1)
000 000
112
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Neste código, a seção "Na mídia" destaca a presença da Hashtag Treinamentos em várias mídias, como Globo News e O
Globo. Ela inclui ícones, títulos e links para os artigos ou conteúdos relacionados à empresa na mídia.
Módulo 3 – Desafio 2 – Criando a Seção Blog da Hashtag (1 / 5)
000 000
113
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Essa é uma seção do site que destaca os últimos posts do Blog da Hashtag
Treinamentos. A seção inclui informações sobre cada post, como título, data de
postagem, categoria, uma imagem de destaque e uma breve descrição do
conteúdo.
Cada entrada do post consiste em:
• Título do Post: O título do post é uma chamada atraente para o conteúdo
que será apresentado.
• Data e Categoria: A data de postagem e a categoria em que o post se
encaixa, permitindo aos visitantes saber quando foi publicado e em qual
área do conhecimento se encaixa.
• Imagem de Destaque: Cada post é representado por uma imagem de
destaque que dá uma prévia visual do conteúdo do post.
• Descrição do Post: Uma breve descrição ou resumo do conteúdo do post é
fornecido para dar aos visitantes uma ideia do que podem esperar
encontrar.
Cada entrada de post é acompanhada por um link que leva os visitantes
diretamente ao post completo no blog, permitindo que eles leiam o conteúdo
completo. Essa seção é uma maneira eficaz de destacar os últimos conteúdos
do blog e incentivar os visitantes a explorarem o blog da Hashtag
Treinamentos.
Módulo 3 – Desafio 2 – Criando a Seção Blog da Hashtag (2 / 5)
000 000
114
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Blog da Hashtag (3 / 5)
000 000
115
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Blog da Hashtag (4 / 5)
000 000
116
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Blog da Hashtag (5 / 5)
000 000
117
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Como ajudar (1 / 2)
000 000
118
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A próxima seção que vamos criar é a Como ajudar: Nesta seção, a Hashtag Treinamentos apresenta informações sobre
como seus cursos e treinamentos podem ajudar os alunos a se
destacarem no mercado de trabalho, tornando-se referências em suas
áreas de atuação. Eles enfatizam sua experiência e sucesso na formação
de mais de 84.600 alunos em diversos programas. Também fornecem
links para obter mais informações sobre seus cursos e treinamentos.
Módulo 3 – Desafio 2 – Criando a Seção Como ajudar (2 / 2)
000 000
119
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando a Seção Minicurso (1 / 1)
000 000
120
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesse trecho de código HTML, temos a "Seção Minicurso", onde a Hashtag Treinamentos oferece aos visitantes a oportunidade
de se inscrever e receber um minicurso gratuitamente. Aqui está a explicação dos elementos presentes:
Módulo 3 – Desafio 2 – Criando o Rodapé (1 / 6)
000 000
121
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O rodapé de uma página web é uma seção localizada na parte inferior da página e tem várias funções importantes. Ele é geralmente
projetado para fornecer informações adicionais e recursos úteis aos visitantes do site. Aqui estão algumas das principais funções e
elementos comuns encontrados em um rodapé:
• Informações de Contato: O rodapé costuma conter informações de contato, como endereço de e-mail, número de telefone e
endereço físico da empresa ou organização. Isso permite que os visitantes entrem em contato facilmente.
• Links de Navegação: Muitas vezes, o rodapé inclui links para seções importantes do site, como "Sobre Nós", "Produtos", "Serviços",
"Blog" e "Perguntas Frequentes". Esses links ajudam os visitantes a navegar pelo site de maneira mais eficaz.
• Links para Políticas: É comum encontrar links para políticas importantes, como "Política de Privacidade" e "Termos de Uso". Esses
links são fundamentais para a transparência e a conformidade legal.
• Links de Redes Sociais: O rodapé geralmente inclui ícones ou links para as páginas de redes sociais da empresa, como Facebook,
Twitter, LinkedIn e Instagram. Isso permite que os visitantes se conectem nas redes sociais da empresa.
• Direitos Autorais: O rodapé costuma conter uma declaração de direitos autorais que informa aos visitantes que o conteúdo do
site está protegido por direitos autorais e quem detém os direitos.
• Logotipo da Empresa: O logotipo da empresa é frequentemente exibido no rodapé para ajudar a reforçar a marca e fornecer uma
identificação visual.
• Outras Informações: Dependendo do site, o rodapé pode conter informações adicionais, como prêmios, selos de segurança,
certificações, parceiros, selos de qualidade e muito mais.
O conteúdo específico e o design do rodapé podem variar amplamente de um site para outro, dependendo dos objetivos e
necessidades da empresa ou organização. O objetivo principal é tornar o site mais informativo, acessível e fácil de usar para os
visitantes, garantindo que eles possam encontrar as informações de que precisam. Além disso, o rodapé desempenha um papel
fundamental na credibilidade e profissionalismo de um site, transmitindo confiança aos visitantes.
Módulo 3 – Desafio 2 – Criando o Rodapé (2 / 6)
000 000
122
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos iniciar a estrutura do rodapé com os seguintes elementos:
• <img>: Este elemento <img> exibe o logotipo da Hashtag. O atributo src especifica o URL da imagem, enquanto o atributo alt
fornece um texto alternativo que é exibido se a imagem não puder ser carregada. Nesse caso, o texto alternativo é "Logo da
Hashtag".
• <p>: São elementos de parágrafo HTML. Os três parágrafos a seguir ao logo representam informações no rodapé:
• "Fale Conosco"
• "Cursos Online"
• "Carol | Assistente de Suporte"
Módulo 3 – Desafio 2 – Criando o Rodapé (3 / 6)
000 000
123
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag SVG (Scalable VectorGraphics) é usada para criar imagens ou gráficos vetoriais escaláveis em páginas da web. Em vez de serem
baseados em pixels, como imagens regulares, os gráficos SVG são criados com vetores, o que significa que são formados por
equações matemáticas, linhas e formas. Isso permite que sejam ampliados ou reduzidos sem perder qualidade ou ficar pixelados. O
SVG é especialmente útil para ícones, logotipos e ilustrações em websites, pois eles sempre ficam nítidos e bem definidos,
independentemente do tamanho em que são exibidos. Isso ajuda a melhorar a qualidade visual das páginas da web.
Você pode utilizar o DevTools(F12) para inspecionar os elementos e copiar todo o código svg para adicionar as imagens como
elemento svg diretamente:
Módulo 3 – Desafio 2 – Criando o Rodapé (4 / 6)
000 000
124
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos adicionar todos os elementos svg com os elementos copiados e também as demais informações de cada elemento:
Módulo 3 – Desafio 2 – Criando o Rodapé (5 / 6)
000 000
125
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 3 – Desafio 2 – Criando o Rodapé (6 / 6)
000 000
126
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
E com essas últimas linhas de código, criamos a estrutura da nossa página web e
finalizamos o Desafio 2 com SUCESSO!!
Módulo 4
INTRODUÇÃO AO CSS
INTRODUÇÃO AO CSS
INTRODUÇÃO AO CSS
127
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 4 – O que é CSS (1 / 1)
000 000
128
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
CSS, que significa "Cascading Style Sheets" em inglês, é uma linguagem de marcação usada para controlar a apresentação e o
estilo de elementos em documentos HTML (Hypertext Markup Language). Em outras palavras, o CSS é usado para definir como os
elementos HTML devem ser exibidos em uma página da web, incluindo coisas como cores, fontes, espaçamento, posicionamento e
muito mais.
O CSS separa a estrutura e o conteúdo de uma página web (geralmente definidos em HTML) da forma como essa página é estilizada
e apresentada. Isso é benéfico porque permite que os desenvolvedores alterem o design de uma página sem ter que reescrever
todo o conteúdo HTML. Além disso, o CSS permite criar layouts responsivos, adaptando a aparência da página de acordo com o
tamanho da tela ou o dispositivo em que está sendo visualizada.
Os estilos em CSS são definidos por meio de regras que selecionam elementos HTML e especificam como eles devem ser estilizados.
Essas regras podem ser aplicadas diretamente no documento HTML usando tags <style>, incorporadas em um arquivo CSS externo
vinculado ao documento ou ainda podem ser definidas inline diretamente nos elementos HTML.
Style sheets, ou folhas de estilo em português, referem-se a documentos ou arquivos que contêm regras de estilo para controlar a
apresentação de elementos em uma página da web. As folhas de estilo são usadas principalmente em conjunto com a linguagem
de marcação HTML (Hypertext Markup Language) para definir o layout, cores, fontes, tamanhos e outros aspectos visuais de uma
página da web.
As folhas de estilo podem ser escritas em diferentes linguagens, sendo o CSS (Cascading Style Sheets) a mais comum e amplamente
utilizada. O CSS permite que os desenvolvedores definam estilos de maneira eficiente e flexível, separando a estrutura e o conteúdo
da página da formatação e do estilo. Isso facilita a manutenção, o design responsivo e a consistência visual em um site.
Módulo 4 – As três formas de escrever CSS (1 / 10)
000 000
129
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Folhas de estilo, ou "style sheets", são utilizadas para controlar a apresentação e o estilo dos elementos em uma página da web. Elas
desempenham um papel fundamental na criação de designs atraentes e na formatação consistente de páginas da web.
Existem três principais abordagens para aplicar folhas de estilo:
Estilos Embutidos (Inline Styles): Com estilos embutidos, você define estilos diretamente nos elementos HTML usando o atributo
"style". Isso significa que os estilos são específicos para o elemento em que são definidos e se sobrepõem a quaisquer estilos
externos ou internos. Embora seja útil para situações muito específicas, o uso excessivo de estilos embutidos pode tornar o código
HTML menos legível e mais difícil de manter.
Estilos Internos (Internal Styles): Os estilos internos são definidos em um bloco <style> dentro do documento HTML, normalmente
na seção <head>. Os estilos internos afetam todos os elementos que correspondem às regras definidas no documento. Isso permite
um controle mais amplo, mas ainda se aplica apenas à página atual.
Estilos Externos (External Styles): Os estilos externos são definidos em um arquivo CSS separado e, em seguida, vinculados ao
documento HTML usando a tag <link>. Essa é a abordagem mais comum e recomendada para projetos de desenvolvimento web.
Os estilos externos podem ser reutilizados em várias páginas, promovendo a consistência visual em todo o site e tornando a
manutenção mais eficiente.
Módulo 4 – As três formas de escrever CSS (2 / 10)
000 000
130
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para entendermos melhor essas três maneiras, vamos criar um arquivo index.html com o elemento h1, com conteúdo "Meu título
com formatação diferente" e uma tag p, "Um textinho qualquer".
Vamos utilizar a extensão Live Server, para observar o comportamento dos nosso elementos dentro do navegador.
Módulo 4 – As três formas de escrever CSS (3 / 10)
000 000
131
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O primeiro comportamento será o conceito de style inline, no qual o nosso estilo será aplicado através da propriedade style a linha
do elemento que vamos estilizar, nesse caso será o elemento H1.
Podemos também alterar outras propriedades de outros elementos, como o p, diretamente em seu elemento:
Módulo 4 – As três formas de escrever CSS (4 / 10)
000 000
132
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade font-size do CSS define o tamanho da fonte de um elemento. Ela pode ser especificada em várias unidades, cada
uma adequada para diferentes contextos. Aqui está uma visão geral rápida dos valores que você pode definir:
Valores Absolutos
• px (pixels): Define um tamanho fixo. Ex: font-size: 16px;
• pt (points): Muito usado em documentos impressos. Ex: font-size: 12pt;
• cm (centimeters), mm (millimeters), in (inches): Menos comuns, usados para tamanhos físicos. Ex: font-size: 2cm;
Valores Relativos
• em: Relativo ao tamanho da fonte do elemento pai. Ex: font-size: 1.5em;
• rem: Relativo ao tamanho da fonte da raiz (elemento <html>). Ex: font-size: 1rem;
• %: Relativo ao tamanho da fonte do elemento pai. Ex: font-size: 100%;
• vw (viewport width), vh (viewport height): Relativo às dimensões da janela de visualização. Ex: font-size: 5vw;
Palavras-chave
• xx-small, x-small, small, medium, large, x-large, xx-large: Tamanhos pré-definidos pelo navegador.
• larger, smaller: Ajusta o tamanho da fonte relativamente ao tamanho da fonte do elemento pai.
Módulo 4 – As três formas de escrever CSS (5 / 10)
000 000
133
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Usar CSS inline, ou seja, diretamente no atributo style de elementos HTML, geralmente não é considerado uma boa prática por
várias razões. Primeiramente, a manutenção do código torna-se difícil. CSS inline espalha estilos diretamente no HTML, o que
dificulta localizar e alterar estilos posteriormente, especialmente em projetos grandes. Isso pode levar a inconsistências e tornar a
manutenção complexa. Além disso, o uso de CSS inline resulta em muita repetição de código, pois o mesmo estilo pode precisar ser
aplicado a muitos elementos, aumentando o tamanho do HTML e dificultando alterações globais. Outra questão é a separação de
preocupações. Boas práticas de desenvolvimento web recomendam manter a estrutura (HTML), apresentação (CSS) e
comportamento (JavaScript) separados. CSS inlineviola essa separação, misturando apresentação e estrutura.
Em termos de desempenho e caching, estilos CSS em arquivos separados podem ser cacheados pelo navegador, melhorando o
desempenho da página. CSS inline não pode ser cacheado da mesma forma, o que pode aumentar o tempo de carregamento da
página. A reutilização de estilos também é prejudicada. Estilos definidos inline não podem ser facilmente reutilizados em outros
elementos ou páginas, ao contrário de estilos em arquivos CSS externos, que permitem aplicar as mesmas regras a múltiplos
elementos e páginas com facilidade. Além disso, o uso de ferramentas de desenvolvimento, como pré-processadores (SASS, LESS),
frameworks (Bootstrap, Tailwind), e práticas como BEM (Block Element Modifier), é dificultado ou impossível com CSS inline. A
depuração de estilos inline pode ser mais complexa, já que os estilos não são centralizados e podem ser sobrepostos por estilos em
cascata (CSS).
A responsividade também é um desafio com CSS inline. Gerenciar estilos responsivos diretamente no HTML é impraticável,
enquanto arquivos CSS separados permitem o uso eficiente de media queries e outras técnicas responsivas. Um exemplo
comparativo ilustra isso: ao usar CSS inline, você pode ter um código HTML como <div style="color: red; font-size: 20px;">Texto em
vermelho</div>, repetido várias vezes. Com CSS externo, você pode centralizar esses estilos em um arquivo styles.css e aplicar uma
classe aos elementos, como <div class="text-red">Texto em vermelho</div>, tornando o código mais limpo e fácil de manter.
Utilizar um arquivo CSS externo melhora a manutenção, reutilização e separação de preocupações, facilitando o desenvolvimento e
a escalabilidade do projeto.
Módulo 4 – As três formas de escrever CSS (6 / 10)
000 000
134
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A segunda forma de escrevermos CSS que vamos ver é o CSS interno, no qual construímos a estilização também dentro do arquivo
html, porém toda a estilização ficará dentro do elemento <style></style>.
CSS interno refere-se à prática de incluir estilos CSS diretamente dentro do arquivo HTML, mas em um bloco <style> no cabeçalho
do documento. Esta abordagem, situada entre o CSS inline e o CSS externo, pode ser útil em certas situações específicas. A principal
vantagem do CSS interno é a facilidade de implementação, especialmente para páginas pequenas. Ele permite adicionar estilos de
forma rápida e centralizada, sem precisar criar múltiplos arquivos. Diferente do CSS inline, onde os estilos estão espalhados pelos
elementos HTML, o CSS interno centraliza todos os estilos em um só lugar no cabeçalho do documento, tornando-os mais fáceis de
gerenciar e editar. Além disso, elimina a necessidade de múltiplos arquivos, simplificando a estrutura do projeto quando você não
quer ou não pode criar arquivos separados.
Módulo 4 – As três formas de escrever CSS (7 / 10)
000 000
135
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Por outro lado, o CSS interno apresenta algumas desvantagens, especialmente em termos de manutenção e escalabilidade. Em
projetos maiores, ou quando há necessidade de reutilização de estilos entre várias páginas, ele pode se tornar difícil de gerenciar,
pois alterações nos estilos exigem que você edite cada página HTML individualmente. Também não segue completamente o
princípio de separação de preocupações, que recomenda manter o conteúdo (HTML), a apresentação (CSS) e o comportamento
(JavaScript) em arquivos separados para facilitar a manutenção e a clareza do código. Em termos de desempenho, embora melhor
do que o CSS inline, o CSS interno impede o cache de estilos entre diferentes páginas, o que pode levar a um desempenho inferior
comparado ao uso de um arquivo CSS externo, que pode ser cacheado pelo navegador.
Quando Usar CSS Interno
O CSS interno pode ser uma boa escolha quando você está criando uma página única ou um protótipo rápido, e não espera
reutilizar esses estilos em outras páginas. Também pode ser útil em situações onde é necessário modificar estilos rapidamente sem
a complexidade de configurar arquivos CSS externos. No entanto, para projetos maiores e mais complexos, o uso de CSS externo é
geralmente preferível para manter o código organizado, escalável e de fácil manutenção.
Módulo 4 – As três formas de escrever CSS (8 / 10)
000 000
136
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A terceira forma de escrever CSS e que iremos adotar em nosso curso é o CSS externo, e para isso vamos criar um arquivo novo com
extensão .css, chamado style, que será nosso arquivo padrão de CSS.
Agora vamos Definir seus estilos dentro do arquivo CSS, escrevendo todas as regras de estilo que desejamos aplicar ao seu HTML.
Agora vamos vincular o arquivo CSS ao HTML:
No documento HTML em que deseja aplicar os estilos, adicione um elemento <link> dentro da seção <head> para vincular o arquivo
CSS externo. O atributo href deve apontar para o caminho do seu arquivo CSS.
Módulo 4 – As três formas de escrever CSS (9 / 10)
000 000
137
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
CSS externo refere-se à prática de escrever estilos CSS em um arquivo separado (.css) e vinculá-lo ao documento HTML por meio do
elemento <link> no cabeçalho do HTML. Esta abordagem é considerada uma prática recomendada na maioria dos cenários de
desenvolvimento web devido a várias vantagens que oferece.
A principal razão para usar CSS externo é a separação de preocupações, um conceito fundamental no desenvolvimento web. A
separação de preocupações significa que diferentes aspectos de um projeto web, como conteúdo (HTML), apresentação (CSS) e
comportamento (JavaScript), devem ser mantidos separados para facilitar a manutenção, escalabilidade e colaboração entre os
membros da equipe.
Ao utilizar CSS externo, você mantém todos os estilos em um arquivo separado, tornando-os reutilizáveis e facilmente aplicáveis a
várias páginas. Isso promove uma melhor organização do código, facilitando a manutenção e evitando a repetição desnecessária de
estilos. Por exemplo, se você tiver um estilo que se aplica a vários elementos em diferentes páginas do seu site, só precisa definir
esse estilo uma vez no arquivo CSS externo e ele será aplicado automaticamente em todas as páginas que o utilizam.
Outra vantagem significativa do CSS externo é o desempenho. Os navegadores podem armazenar em cache arquivos CSS externos,
o que significa que eles só precisam ser baixados uma vez e podem ser reutilizados em várias páginas do mesmo site ou em visitas
subsequentes à mesma página. Isso resulta em tempos de carregamento mais rápidos para os usuários e uma experiência de
navegação mais suave.
Além disso, o CSS externo facilita a colaboração entre os membros da equipe de desenvolvimento. Como os estilos estão em um
arquivo separado, várias pessoas podem trabalhar no mesmo projeto simultaneamente sem interferir no trabalho umas das outras.
Isso é especialmente útil em equipes grandes ou projetos complexos.
Módulo 4 – As três formas de escrever CSS (10 / 10)
000 000
138
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O uso de CSS externo é preferível porque:
• Promove a separação de preocupações, facilitando a manutenção e a organização do código.
• Permite a reutilização de estilos em várias páginas.
• Melhora o desempenho do site, graças ao caching de arquivos CSS pelos navegadores.
• Facilita a colaboração entre membros da equipe de desenvolvimento.
Essas vantagens tornam o CSS externo uma escolha recomendada na maioria dos projetos de desenvolvimento web.
Módulo 4 – Seletores no CSS (1 / 5)
000 000
139
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seletores CSS
Seletores CSS são padrões que definem quais elementos HTML serão estilizados por determinadas regras CSS. Eles são usados para
segmentar elementos específicos em uma página da web com base em seus tipos, classes, IDs, atributos e relações com outros
elementos. Os seletores sãocombinados com declarações CSS para aplicar estilos aos elementos correspondentes.
Existem vários tipos de seletores CSS, cada um direcionando diferentes elementos HTML de maneiras específicas. Aqui estão alguns
dos tipos mais comuns de seletores CSS:
• Seletores de Tipo: Direcionam elementos com base em seus tipos HTML.
Os Seletores de Tipo são utilizados para direcionar elementos HTML com base em seus tipos específicos. Cada elemento HTML tem
um tipo associado a ele, como <h1>, <p>, <div>, <a>, entre outros. Esses seletores visam todos os elementos que correspondem ao
tipo especificado.
Por exemplo:
• h1 seleciona todos os elementos <h1> na página.
• p seleciona todos os elementos <p> na página.
• div seleciona todos os elementos <div> na página.
Esses seletores são úteis quando você deseja aplicar um estilo específico a um tipo particular de elemento em toda a sua página. Por
exemplo, você pode querer definir o tamanho da fonte para todos os cabeçalhos <h1> como 24px ou a cor do texto para todos os
parágrafos <p> como cinza.
Módulo 4 – Seletores no CSS (2 / 5)
000 000
140
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Uma possível desvantagem dos seletores de tipo é que eles são muito genéricos e aplicam estilos a todos os elementos de um tipo
específico na página. Isso pode levar a estilos indesejados ou não intencionais se não forem usados com cuidado.
Por exemplo, se você definir um estilo para todos os elementos <p> em sua página, isso afetará todos os parágrafos, mesmo aqueles
dentro de áreas específicas da página que você não pretendia estilizar dessa maneira. Isso pode resultar em uma perda de controle
sobre o design da página e tornar a manutenção mais difícil, especialmente em projetos grandes.
Além disso, os seletores de tipo não são tão flexíveis quanto outros tipos de seletores mais específicos, como seletores de classe ou
seletores de ID. Eles aplicam estilos com base apenas no tipo de elemento, o que pode limitar a capacidade de estilizar elementos
de maneira mais granular e seletiva.
Portanto, enquanto os seletores de tipo são úteis para aplicar estilos básicos a elementos específicos em uma página, é importante
usá-los com cautela e considerar se outros seletores mais específicos podem ser mais apropriados para o seu caso de uso específico.
Isso pode ajudar a evitar problemas de estilo indesejados e facilitar a manutenção do código CSS.
Módulo 4 – Seletores no CSS (3 / 5)
000 000
141
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O seletor de ID é um tipo de seletor CSS que é usado para direcionar um elemento específico na página com base em seu ID único.
Cada elemento HTML pode ter um ID único atribuído a ele usando o atributo id. O seletor de ID é representado pelo símbolo #
seguido pelo nome do ID.
A hierarquia do seletor de ID em relação a outros seletores é determinada pela especificidade do seletor. A especificidade é uma
maneira de determinar qual regra CSS deve ser aplicada a um elemento quando várias regras têm estilos conflitantes.
O seletor de ID é altamente específico porque seleciona um elemento com base em seu ID único, o que significa que ele tem
precedência sobre outros seletores menos específicos, como seletores de classe, seletores de tipo e seletores de atributo.
Por exemplo, se você tiver uma regra CSS para um elemento específico com um seletor de ID e outra regra para o mesmo elemento
com um seletor de classe, a regra com o seletor de ID terá precedência e será aplicada ao elemento, mesmo que a regra com o
seletor de classe venha depois no código CSS.
Portanto, ao usar seletores de ID em seu CSS, você pode garantir que certos estilos sejam aplicados apenas a elementos específicos
na página, tornando-os úteis para estilizar elementos exclusivos e individualizados. No entanto, é importante usar os seletores de ID
com moderação e evitar seu uso excessivo, já que eles podem diminuir a reutilização de estilos e complicar a manutenção do código
CSS.
Módulo 4 – Seletores no CSS (4 / 5)
000 000
142
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O seletor de classe é um dos seletores mais comuns e poderosos em CSS. Ele é usado para direcionar elementos que possuem uma
classe específica atribuída a eles no HTML. As classes são atributos que podem ser aplicados a vários elementos HTML e podem ser
reutilizadas em diferentes partes do documento ou em várias páginas.
O seletor de classe é representado por um ponto . seguido pelo nome da classe desejada.
O seletor de classe oferece flexibilidade e reutilização, permitindo que você aplique o mesmo estilo a vários elementos sem precisar
repetir o código CSS. Além disso, você pode aplicar várias classes a um único elemento, permitindo uma combinação de estilos.
A hierarquia do seletor de classe em relação a outros seletores é determinada pela especificidade do seletor. Em geral, os seletores
de classe têm uma especificidade menor do que os seletores de ID, o que significa que eles têm menos precedência. No entanto,
eles têm uma precedência maior do que os seletores de tipo e seletores universais.
Módulo 4 – Seletores no CSS (5 / 5)
000 000
143
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Atalho - Comentário
O atalho "CTRL + ;" é usado para comentar ou descomentar rapidamente uma linha de código CSS em
alguns editores de texto. Ele adiciona ou remove os caracteres de comentário ("/" e "/") de uma linha de
código, permitindo que você ative ou desative a linha de forma rápida e conveniente durante o
desenvolvimento. Isso ajuda a economizar tempo e reduzir erros de digitação ao trabalhar com estilos CSS.
Módulo 4 – Combinando Seletores (1 / 3)
000 000
144
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando você está inspecionando um elemento em uma página da web usando as ferramentas de desenvolvedor do seu
navegador (geralmente acessíveis pressionando F12 ou clicando com o botão direito em um elemento e selecionando "Inspecionar"
ou "Inspecionar elemento"), você pode visualizar os estilos aplicados a esse elemento na guia "Elementos" ou "Inspector".
Aqui está como você pode fazer isso:
• Abra as Ferramentas de Desenvolvedor: Pressione F12 no seu teclado ou clique com o botão direito em qualquer parte da
página da web e selecione "Inspecionar" ou "Inspecionar elemento" no menu contextual.
• Selecione o Elemento Desejado: Use o seletor de elementos na parte superior das ferramentas de desenvolvedor para selecionar
o elemento que você deseja inspecionar. Basta clicar no elemento na página da web ou usar os botões de seta para navegar pela
estrutura HTML.
• Visualize os Estilos Aplicados: Na guia "Elementos" ou "Inspector", você verá o HTML do elemento selecionado e também a seção
"Styles" (ou "Estilos" em alguns navegadores). Nesta seção, você verá todos os estilos CSS aplicados ao elemento, incluindo estilos
herdados e estilos de CSS externos ou embutidos.
• Você pode ver os estilos que são aplicados diretamente ao elemento (estilos inline), bem como os estilos que são herdados de
elementos pai ou definidos em folhas de estilo externas.
• Cada regra de estilo exibe o seletor CSS que a originou, juntamente com as propriedades e valores associados.
• Navegue pelos Estilos: Você pode clicar nos estilos individuais para vê-los mais detalhadamente e até mesmo modificar
temporariamente os valores para ver como isso afeta a aparência do elemento em tempo real.
• Use as Ferramentas de Desenvolvedor para Depurar: Além de visualizar os estilos, as ferramentas de desenvolvedor também
oferecem outras funcionalidades úteis, como a capacidade de editar HTML e CSS em tempo real, depurar JavaScript, analisar o
desempenho da página e muito mais.
Módulo 4 – Combinando Seletores (2 / 3)
000 000
145
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os seletores de descendência são simplesmente usados para direcionar elementos que são descendentes de outros elementos em
HTML. Eles permitem estilizar elementos específicos queestão aninhados dentro de outros elementos.
Por exemplo, se você tem um elemento filho (como <span>) que está dentro de um elemento pai (como <p>), você pode usar um
seletor de descendência para estilizar esse elemento filho específico apenas quando ele estiver dentro do elemento pai.
Isso é feito escrevendo o seletor do elemento pai, seguido de um espaço e, em seguida, o seletor do elemento filho. Por exemplo, p
span irá direcionar todos os elementos <span> que estão dentro de elementos <p>.
Essa abordagem é útil quando você precisa aplicar estilos específicos a elementos que estão organizados dentro de uma estrutura
hierárquica em sua página da web. É uma maneira eficiente e precisa de estilizar elementos específicos em relação aos seus pais.
Módulo 4 – Combinando Seletores (3 / 3)
000 000
146
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O seletor span.span-textinho é um exemplo de seletor de classe combinado com um seletor de tipo. Ele direciona especificamente
os elementos <span> que também têm a classe "span-textinho" atribuída a eles.
• span é o seletor de tipo, que direciona todos os elementos <span> na página.
• .span-textinho é o seletor de classe, que direciona todos os elementos que possuem a classe "span-textinho".
Juntos, span.span-textinho direciona apenas os elementos <span> que também possuem a classe "span-textinho".
Usar um seletor como span.span-textinho é útil quando você deseja aplicar estilos específicos apenas a elementos <span> que
tenham uma determinada classe. Isso oferece várias vantagens:
• Precisão na Estilização: Ao usar um seletor de classe combinado com um seletor de tipo, você pode aplicar estilos apenas a
elementos <span> que atendam a critérios específicos, como ter uma determinada classe atribuída a eles. Isso evita que outros
elementos <span> na página sejam afetados pelos mesmos estilos.
• Reutilização de Estilos: Atribuir uma classe específica a elementos <span> permite reutilizar estilos em vários lugares da sua
página ou em várias páginas do seu site. Isso promove a consistência visual e facilita a manutenção do código CSS.
• Separação de Preocupações: Ao separar a seleção de elementos do estilo aplicado a eles, você adota uma prática conhecida
como separação de preocupações. Isso torna seu código CSS mais organizado e legível, facilitando a compreensão e a
manutenção futura.
• Especificidade Controlada: Usar um seletor de classe combinado com um seletor de tipo oferece um nível de especificidade
controlada ao aplicar estilos. Isso significa que você pode direcionar com precisão os elementos desejados sem precisar recorrer a
seletores mais genéricos ou complexos.
Módulo 4 – Estilizando textos (1 / 5)
000 000
147
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Conseguimos através da ferramenta do desenvolvedor (F12) na opção de selecionar um elemento, verificar as formatações que o
elemento selecionado possui, exemplo se queremos verificar a formatação padrão de um H1.
E através disso podemos alterar algumas propriedades dentro do nosso arquivo CSS, nesse exemplo vamos modificar o tamanho e o
tipo da fonte desse elemento:
Módulo 4 – Estilizando textos (2 / 5)
000 000
148
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando desejamos utilizar a mesma estilização para vários elementos a forma simples que podemos fazer é da seguinte maneira:
• Eficiência: Ao agrupar seletores, você pode aplicar as mesmas propriedades de estilo a vários elementos de uma só vez. Isso reduz
a quantidade de código CSS necessário, tornando-o mais eficiente e fácil de gerenciar.
• Consistência: Usar o mesmo estilo de fonte em diferentes tipos de elementos (como títulos <h1>, <h2>, <h3> e parágrafos <p>)
cria uma sensação de uniformidade visual em toda a página ou site. Isso é importante para garantir uma experiência do usuário
coesa e profissional.
• Manutenção Simplificada: Se você precisar fazer alterações nos estilos de fonte mais tarde, agrupar os seletores permite que você
faça essas alterações em um único lugar, em vez de ter que atualizar cada seletor individualmente. Isso simplifica o processo de
manutenção e ajuda a evitar erros.
• Legibilidade: Ao agrupar seletores relacionados juntos, você torna seu código CSS mais legível e fácil de entender para outros
desenvolvedores que possam estar trabalhando no mesmo projeto. Isso facilita a colaboração e o entendimento do código.
Módulo 4 – Estilizando textos (3 / 5)
000 000
149
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade CSS font-style é usada para definir o estilo da fonte de um elemento de texto. Ela pode ter três valores principais:
• normal: Este é o valor padrão. A fonte é exibida no estilo normal, sem itálico ou obliquidade.
• italic: Este valor faz com que o texto seja exibido em itálico. Isso é geralmente uma versão inclinada da fonte, projetada para
enfatizar palavras ou frases.
• oblique: Similar ao itálico, mas nem todas as fontes suportam este estilo. Quando a fonte não possui uma variante itálica, o estilo
oblique é usado para inclinar a fonte na direção especificada.
Essa propriedade é especialmente útil para adicionar ênfase ou estilo visual a certos trechos de texto em uma página da web. Por
exemplo, você pode usar font-style: italic; para destacar citações ou termos técnicos, enquanto o valor font-style: normal; é
frequentemente usado para texto comum.
A propriedade CSS font-weight é usada para definir a espessura ou a "grossura" da fonte de um elemento de texto. Ela pode ser
definida usando diferentes valores numéricos ou palavras-chave, que indicam a intensidade da espessura da fonte.
Alguns valores comuns para font-weight incluem:
• normal: Este é o valor padrão, que indica uma espessura de fonte normal.
• bold: Este valor indica uma fonte mais pesada ou em negrito.
• lighter: Este valor indica uma fonte mais leve do que o normal.
• bolder: Este valor indica uma fonte mais pesada do que o normal.
Além disso, existem valores numéricos que podem ser usados para definir a espessura da fonte com mais precisão. Por exemplo,
font-weight: 400; é equivalente a normal, enquanto font-weight: 700; é equivalente a bold.
Essa propriedade é comumente usada para dar destaque a certos elementos de texto em uma página da web, como títulos,
subtítulos ou partes importantes do conteúdo. A escolha da espessura da fonte pode afetar significativamente a aparência e a
legibilidade do texto em uma página.
Módulo 4 – Estilizando textos (4 / 5)
000 000
150
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade CSS line-height é usada para definir a altura da linha em um elemento de texto. Ela especifica a altura que uma linha
de texto deve ter, o que afeta o espaçamento entre as linhas de texto dentro desse elemento.
Você pode definir o valor da propriedade line-height de várias maneiras:
• Valor fixo: Você pode especificar um valor em pixels, ems ou qualquer outra unidade de medida para definir a altura da linha de
forma fixa.
• Valor unitário: Você pode especificar um valor unitário semelhante a 1.5, 1.2, etc. Isso multiplica o tamanho atual da fonte para
determinar a altura da linha.
• Valor percentual: Você pode especificar um valor percentual que define a altura da linha em relação ao tamanho da fonte. Por
exemplo, line-height: 150%; define a altura da linha como 150% do tamanho da fonte atual.
• Normal: Você também pode usar o valor normal, que define a altura da linha automaticamente com base no tamanho da fonte
atual.
Controlar a altura da linha é importante para garantir uma boa legibilidade e aparência estética do texto em uma página da web.
Uma linha muito apertada pode tornar o texto difícil de ler, enquanto uma linha muito espaçada pode desperdiçar espaço e tornar o
texto mais difícil de seguir. A propriedade line-height permite ajustar o espaçamento entre as linhas para atender às necessidades
específicas de design e legibilidade.
Módulo 4 – Estilizando textos (5 / 5)
000 000
151HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade CSS text-transform é usada para especificar a transformação de texto em um elemento de texto. Ela permite
modificar a capitalização do texto em um elemento, alterando como as letras são exibidas.
Existem várias opções para a propriedade text-transform:
• none: Este é o valor padrão. Ele não aplica nenhuma transformação de texto.
• capitalize: Transforma o primeiro caractere de cada palavra para maiúsculas.
• uppercase: Transforma todo o texto em letras maiúsculas.
• lowercase: Transforma todo o texto em letras minúsculas.
• initial: Define a propriedade como seu valor padrão.
• inherit: Herda o valor da propriedade de seu elemento pai.
Essa propriedade é útil para aplicar consistência na capitalização do texto em uma página da web. Por exemplo, você pode usar
text-transform: uppercase; para garantir que todos os títulos sejam exibidos em letras maiúsculas, independentemente de como
são escritos no HTML. Isso pode ser especialmente útil para garantir que o estilo do texto seja consistente em todo o site,
independentemente de como o texto foi digitado originalmente.
Módulo 4 – Trabalhando com cores (1 / 5)
000 000
152
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade CSS color é usada para definir a cor do texto de um elemento. Ela permite especificar a cor do texto usando uma
variedade de formatos de cor, como nomes de cores, valores hexadecimais, valores RGB ou valores HSL.
Por exemplo, você pode definir a cor do texto para vermelho usando diferentes métodos:
• Nome da cor: color: red;
• Valor hexadecimal: color: #FF0000;
• Valor RGB: color: rgb(255, 0, 0);
• Valor HSL: color: hsl(0, 100%, 50%);
A propriedade color é amplamente usada para personalizar a aparência do texto em uma página da web. Você pode usá-la para
garantir que o texto seja legível e se destaque do fundo, além de criar uma estética visual atraente para o seu conteúdo.
Módulo 4 – Trabalhando com cores (2 / 5)
000 000
153
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos explorar cada método para definir a cor do texto em CSS com mais detalhes:
• Nome da Cor:
• Esta abordagem permite definir a cor do texto usando um nome de cor pré-definido, como "red", "blue", "green", entre outros.
• Essa é uma maneira simples e fácil de especificar a cor do texto, especialmente para cores comuns amplamente reconhecidas.
• No entanto, a gama de cores disponíveis é limitada aos nomes de cores definidos na especificação CSS, o que pode restringir
as opções de cor.
• Valor Hexadecimal (Hex):
• O valor hexadecimal é uma representação numérica da cor que utiliza uma combinação de seis dígitos hexadecimais (0-9 e A-
F) para representar a intensidade de vermelho, verde e azul (RGB).
• Cada par de dígitos hexadecimais representa a intensidade de uma das cores primárias (R, G, B), em ordem. Por exemplo,
"#FF0000" representa a cor vermelha pura, enquanto "#0000FF" representa a cor azul pura.
• Este método oferece uma ampla gama de cores disponíveis e é comumente usado devido à sua precisão e flexibilidade.
Módulo 4 – Trabalhando com cores (3 / 5)
000 000
154
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Valor RGB (Red Green Blue):
• O valor RGB permite definir a cor do texto especificando a intensidade de vermelho, verde e azul em uma escala de 0 a 255
para cada cor.
• Por exemplo, rgb(255, 0, 0) representa a cor vermelha pura, onde o primeiro valor (255) é a intensidade de vermelho, seguido
pela intensidade de verde (0) e azul (0).
• Essa abordagem fornece controle granular sobre a cor, permitindo ajustes precisos na intensidade de cada cor primária para
obter a cor desejada.
• Valor HSL (Hue Saturation Lightness):
• O valor HSL representa a cor em termos de matiz (tonalidade), saturação e luminosidade.
• O matiz define a tonalidade da cor (0 a 360 graus), a saturação determina a pureza ou a quantidade de cinza na cor (0% a
100%), e a luminosidade indica a claridade da cor (0% é preto, 100% é branco).
• Por exemplo, hsl(0, 100%, 50%) representa a cor vermelha pura, onde 0 é a tonalidade do vermelho, 100% é a saturação
máxima e 50% é a luminosidade média.
• Este método oferece uma abordagem intuitiva para definir cores com base em características perceptuais, como matiz,
saturação e luminosidade.
Módulo 4 – Trabalhando com cores (4 / 5)
000 000
155
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O Visual Studio Code possui uma funcionalidade que exibe uma prévia da cor quando você digita um valor de cor CSS. Quando você
digita uma cor em qualquer lugar que aceite código CSS, como em um arquivo CSS, HTML ou em uma propriedade CSS dentro de
um arquivo HTML, o Visual Studio Code automaticamente exibe uma caixa de cor ao lado do valor da cor que você digitou.
Essa caixa de cor fornece uma representação visual da cor que você especificou, permitindo que você visualize rapidamente como
será a cor no seu código. Além disso, você pode clicar na caixa de cor para abrir um seletor de cores mais avançado, que permite
escolher a cor de uma paleta de cores ou inserir um valor hexadecimal, RGB ou HSL diretamente.
Essa funcionalidade é útil para facilitar a seleção e visualização de cores enquanto você escreve código CSS, tornando mais fácil
escolher as cores desejadas e garantir uma aparência visual consistente em seu projeto.
Módulo 4 – Trabalhando com cores (5 / 5)
000 000
156
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando você está aplicando transparência a uma cor usando o modelo de cores RGB no CSS, você está na verdade adicionando um
quarto valor à função rgba() (Red Green Blue Alpha), que representa a transparência da cor.
Por exemplo, se você tem a cor vermelha pura e deseja torná-la semi-transparente, você pode adicionar um valor de transparência
(alfa) ao final da função rgba(). Este valor de transparência é um número entre 0 e 1, onde 0 representa total transparência
(totalmente transparente ou invisível) e 1 representa opacidade total (totalmente sólido ou opaco).
Por exemplo:
• rgba(255, 0, 0, 0.5) representa a cor vermelha com 50% de transparência.
• rgba(0, 0, 255, 0.2) representa a cor azul com 20% de transparência.
Isso permite que você crie efeitos de transparência em elementos HTML, permitindo que o conteúdo subjacente seja parcialmente
visível através da cor aplicada. Essa técnica é útil para criar sobreposições, sombreamentos suaves e outros efeitos visuais em
elementos da página da web.
Módulo 4 – Estilizando hiperlinks (1 / 3)
000 000
157
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade CSS text-decoration é usada para adicionar decorações visuais ao texto, como sublinhado, tachado, sublinhado duplo
ou remoção da decoração padrão.
Alguns valores comuns para a propriedade text-decoration incluem:
• none: Remove todas as decorações de texto, como sublinhado ou tachado. Este é o valor padrão.
• underline: Adiciona uma linha abaixo do texto, geralmente indicando que é um link.
• overline: Adiciona uma linha sobre o texto.
• line-through: Adiciona uma linha no meio do texto, geralmente para indicar que foi riscado.
• underline overline: Adiciona uma linha abaixo e outra acima do texto.
• inherit: Herda a propriedade text-decoration do elemento pai.
Essa propriedade é frequentemente usada para estilizar links (<a>), mas também pode ser aplicada a qualquer elemento de texto
para adicionar ou remover decorações conforme necessário. Por exemplo, você pode usar text-decoration: none; para remover
sublinhados padrão de links ou text-decoration: line-through; para riscar o texto.
Você também pode especificar estilos de linha mais complexos, como dotted, dashed, wavy, entre outros, que controlam a
aparência da linha de decoração.
Aqui está uma explicação desses valores adicionais:
• dotted: Adiciona uma linha pontilhada sob o texto.
• dashed: Adiciona uma linha tracejada sob o texto.
• wavy: Adiciona uma linha ondulada sob o texto.
Essesestilos de linha podem ser úteis para criar efeitos visuais mais interessantes em textos decorados, adicionando variedade aos
sublinhados padrão. Por exemplo, você pode usar text-decoration: dotted; para adicionar um sublinhado pontilhado a um link.
Módulo 4 – Estilizando hiperlinks (2 / 3)
000 000
158
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade text-decoration-line é uma versão mais específica da propriedade text-decoration, introduzida no CSS3, que
permite definir apenas o estilo de linha de texto, como sublinhado, tachado, linha sobre o texto, entre outros.
Alguns valores possíveis para a propriedade text-decoration-line incluem:
• none: Remove todas as decorações de texto, como sublinhado ou tachado. Este é o valor padrão.
• underline: Adiciona uma linha abaixo do texto, geralmente indicando que é um link.
• overline: Adiciona uma linha acima do texto.
• line-through: Adiciona uma linha no meio do texto, geralmente para indicar que foi riscado.
• underline overline: Adiciona uma linha abaixo e outra acima do texto.
A principal diferença entre text-decoration e text-decoration-line é que text-decoration pode aceitar valores adicionais, como
line-through e underline, enquanto text-decoration-line apenas aceita esses valores específicos relacionados à linha do texto.
Essa propriedade é útil quando você precisa definir apenas o estilo da linha de texto sem afetar outras decorações, como cores ou
estilo de linha. Por exemplo, você pode usar text-decoration-line: underline; para adicionar sublinhado a um texto sem afetar
outras decorações existentes.
Módulo 4 – Estilizando hiperlinks (3 / 3)
000 000
159
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade text-decoration-color é usada para definir a cor da linha de decoração aplicada a um texto decorado, como um link
ou texto com sublinhado. Ela permite especificar uma cor diferente da cor do texto para a linha de decoração.
Alguns pontos importantes sobre text-decoration-color:
• Valor Padrão: Se não for especificado, o valor padrão é geralmente a cor atual do texto (currentColor).
• Cor Personalizada: Você pode definir a cor da linha de decoração para ser diferente da cor do texto, fornecendo um valor de cor
válido, como um nome de cor, valor hexadecimal, valor RGB ou valor HSL.
• Herança de Cor: Por padrão, a cor da linha de decoração é herdada do elemento pai, a menos que seja explicitamente definida
em um elemento filho.
Essa propriedade é útil quando você deseja personalizar a cor da linha de decoração, tornando-a mais visível ou contrastante com o
texto. Por exemplo, você pode usar text-decoration-color: blue; para aplicar uma linha de decoração azul a um link, mesmo que o
texto seja de outra cor. Isso pode ajudar a destacar os links em uma página da web.
Módulo 4 – Desafio 1 – Formatando uma página em HTML (1 / 2)
000 000
160
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No módulo anterior, você aprendeu os fundamentos
essenciais de HTML, construindo uma página da web
básica. Agora, é hora de dar um passo adiante e adicionar
estilo à sua criação. Estamos prontos para explorar o
mundo do CSS (Cascading Style Sheets) e transformar sua
página HTML em algo visualmente atraente e profissional.
O CSS é uma linguagem de estilo que permite controlar a
apresentação de elementos HTML em uma página da web.
Com o CSS, podemos definir cores, fontes, margens,
tamanhos e muitos outros aspectos visuais que tornam sua
página única e cativante.
Seu desafio hoje é aplicar o CSS à página HTML que você
desenvolveu anteriormente. Você terá a oportunidade de
experimentar diferentes propriedades CSS, criar layouts
interessantes e personalizar completamente a aparência
da sua página.
Ao final deste desafio, você não apenas terá uma
compreensão mais profunda do CSS, mas também terá
uma página da web visualmente atraente e pronta para
impressionar.
Módulo 4 – Desafio 1 – Formatando uma página em HTML (2 / 2)
000 000
161
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Todas as orientações para o seu desafio estão dentro do arquivo desafio-1.txt
Módulo 4 – Desafio 1 – Resolvendo o Desafio (1 / 5)
000 000
162
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para iniciarmos o nosso desafio vamos criar um arquivo com extensão .css e linkar dentro do nosso arquivo html:
Agora vamos seguir as instruções do arquivo desafio-1.txt e ir adicionando as estilização dentro do nosso CSS, a primeira
delas é que a fonte de todos os textos da página deverá ser Montserrat e, caso o navegador não consiga carregar, deverá
usar uma fonte sans-serif.
Módulo 4 – Desafio 1 – Resolvendo o Desafio (2 / 5)
000 000
163
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para iniciarmos o nosso desafio vamos criar um arquivo com extensão .css e linkar dentro do nosso arquivo html:
Vamos alterar o tamanho dos textos da página de acordo com a tabela --->
Dentro do CSS vamos aplicar os seguintes seletores e propriedades:
O próximo passo é que a legenda da imagem deverá ter 12px de tamanho e deverá estar em itálico.
Módulo 4 – Desafio 1 – Resolvendo o Desafio (3 / 5)
000 000
164
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O link de compra deverá estar na cor #c44105 com
24px de tamanho, negrito e com um sublinhado duplo:
Os itens de lista deverão estar na cor #035276 e em itálico.
Módulo 4 – Desafio 1 – Resolvendo o Desafio (4 / 5)
000 000
165
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos realçar o texto '75"' que está dentro do H1 com a cor #0588c4.
Os dois realces que fizemos na seção de Preço deverão ter a cor #0588c4. (Existem várias formas certas de fazer isso). Você
pode trocar os códigos em HTML, só lembre de não perder a parte semântica do que tínhamos construído.
Módulo 4 – Desafio 1 – Resolvendo o Desafio (5 / 5)
000 000
166
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
E por último do nosso desafio 1 , os dois realces da seção de Condições deverão estar na cor #0588c4 e o realce do frete grátis
deverá adicionar um sublinhado também. Lembre de não perder a parte semântica do HTML aqui também.
Módulo 4 – Desafio 2 – Formatando a Home da Hashtag (1 / 1)
000 000
167
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No módulo anterior, você aprendeu os fundamentos do HTML e criou a estrutura básica do site da Hashtag. Agora, é hora de
avançar e dar vida a esse site com um toque de estilo utilizando CSS (Cascading Style Sheets).
O CSS é a linguagem de estilo que nos permite controlar a aparência visual dos elementos HTML em uma página web. Com
o CSS, podemos definir cores, tipos de fontes, espaçamentos, tamanhos e muitos outros aspectos visuais, transformando seu
site simples em algo visualmente impressionante.
O desafio de hoje é aplicar CSS ao site da Hashtag que você desenvolveu. Vamos utilizar como base o site da Hashtag
Treinamentos (https://www.hashtagtreinamentos.com/) e, através da ferramenta do desenvolvedor (F12), pegar as
informações necessárias do layout utilizado, como fontes, cores, tamanhos e outras propriedades.
O objetivo para o Desafio 2 nesse módulo (Introdução ao CSS) é estilizar o esqueleto básico da Home da Hashtag
Treinamentos que criamos ao final do módulo de Introdução ao HTML.
Como ainda não vimos tudo o que precisamos para concluir o desafio, vamos formatar apenas as coisas que já aprendemos.
Vamos precisar consultar MUITO o site da Hashtag. Essa vai ser uma ótima hora para se familiarizar com as Ferramentas do
Programador. Vamos utilizá-las o tempo todo para entender o que está acontecendo no site que vamos reproduzir.
Ao completar este desafio, você não apenas melhorará suas habilidades em CSS, mas também terá uma transformação
visual no seu site!
https://www.hashtagtreinamentos.com/
Módulo 4 – Desafio 2 – Formatando o cabeçalho (1 / 3)
000 000
168
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nessa aula vamos iniciar os primeiros passos para estilizar o cabeçalho doseu site da Hashtag, o primeiro passo é criar um arquivo CSS e
adicionar o seu link dentro do arquivo HTML.
Os primeiros elementos nos quais vamos trabalhar serão as nossas listas dentro do cabeçalho. Inicialmente vamos adicionar uma classe
para as listas que estão com uma hierarquia maior, ou seja, as listas filhas do ul principal, que estão circuladas em amarelo:
Vamos adicionar a classe item-lista-cabecalho nessas li em destaque abaixo:
Módulo 4 – Desafio 2 – Formatando o cabeçalho (2 / 3)
000 000
169
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Com o auxílio da ferramenta do desenvolvedor, vamos selecionar os elementos e verificar as
informações dos elementos.
O próximo passo é colocarmos a estilização do elemento, dentro do arquivo CSS.
• Selecionando Descendentes: Quando escrevemos .item-lista-cabecalho a no CSS, estamos
dizendo ao navegador para selecionar todos os elementos <a> que estão dentro (descendentes
de) de elementos <li class="item-lista-cabecalho">.
• Herança de Estilos: Agora, vamos abordar a lógica por trás disso. Imagine que você tenha estilizado
os elementos <li>, definindo sua cor de fundo, tamanho da fonte, etc. Por padrão, os elementos <a>
dentro desses <li> não herdarão esses estilos automaticamente. No entanto, se quisermos que
esses links também tenham os mesmos estilos que seus elementos pai (<li>), precisamos dizer
explicitamente ao navegador para fazer isso.
• Transmitindo Estilos: Ao escrever .item-lista-cabecalho a no CSS, estamos basicamente dizendo:
"Para todos os elementos <a> que estão dentro de elementos <li>, aplique os estilos que definimos
para os elementos <li>". Isso garante que os links herdem os estilos de seus itens de lista pai,
proporcionando uma aparência uniforme e consistente dentro da lista.
Módulo 4 – Desafio 2 – Formatando o cabeçalho (3 / 3)
000 000
170
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando se trata de estilizar texto em um site, a escolha da fonte desempenha um papel crucial na aparência e na legibilidade do
conteúdo. É por isso que frequentemente recorremos ao uso da propriedade font-family em estilos mais globais ou em diversos
elementos de uma vez só.
• Consistência Visual: Ao definir a propriedade font-family em um nível mais global, como no seletor do corpo (body), você estabelece
uma fonte padrão que será aplicada a todo o texto no site, a menos que seja especificado de outra forma. Isso ajuda a garantir uma
aparência visual consistente em todas as páginas e elementos.
• Facilidade de Manutenção: Usar font-family de forma global simplifica a manutenção do site. Se você decidir alterar a fonte em algum
momento, pode fazer isso em um único lugar (por exemplo, no seletor do corpo), e essa alteração será refletida em todo o site. Isso é
especialmente útil em sites maiores, nos quais a consistência visual é essencial e a atualização de estilos pode se tornar trabalhosa se
aplicada individualmente a cada elemento.
• Eficiência de Código: Reduzir a repetição de código é uma prática recomendada em desenvolvimento web. Ao aplicar a font-family
em um nível mais global, você evita a necessidade de repetir a mesma declaração de estilo em vários elementos. Isso resulta em um
código mais limpo e conciso, facilitando a leitura e a manutenção no longo prazo.
• Coerência na Experiência do Usuário: Uma fonte consistente em todo o site contribui para uma experiência de usuário coesa e
profissional. Os visitantes do seu site podem se sentir mais confiantes e engajados quando a aparência do texto é uniforme e fácil de ler
em todos os dispositivos e páginas.
Portanto, ao utilizar a propriedade font-family em estilos mais globais ou em diversos elementos de uma vez só, você não apenas melhora
a consistência visual e a eficiência de código do seu site, mas também proporciona uma experiência de usuário mais agradável e
profissional.
Módulo 4 – Desafio 2 – Formatando a Seção Hero (1 / 2)
000 000
171
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos começar a estilização da seção Hero do nosso site, e vamos continuar utilizando a ferramenta do desenvolvedor para
verificar os estilos aplicados para adicionarmos as propriedades dentro do nosso arquivo CSS.
O primeiro passo será adicionarmos a cor padrão do site nos elementos de forma global, então vamos adicionar a propriedade e
valor nos elemetos:
Módulo 4 – Desafio 2 – Formatando a Seção Hero (2 / 2)
000 000
172
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os próximos elementos que vamos começar sua estilização serão os botões da nossa seção, apenas nesse momento não vamos
alterar a cor do texto que é branco e teríamos dificuldade de encontrar esses elementos nesse momento. Nesse elementos vamos
adicionar classes também, lembrando que esses "botões" na verdade são elementos âncoras, em forma de botão por conta de
estilização do CSS.
Módulo 4 – Desafio 2 – Formatando a Seção Conteúdos Gratuitos (1 / 3)
000 000
173
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesse momento vamos estilizar a nossa seção de conteúdos gratuitos, e através da ferramenta do desenvolvedor conseguimos
verificar algumas das propriedades que vamos criar no nosso arquivo de estilização CSS.
O primeiro elemento que vamos inspecionar é o título dessa seção, e já conseguimos observar que ele não está em negrito e que e
existe um trecho de seu texto realçado. Vamos adicionar ao elemento h2 a classe="gratuito-h2".
Módulo 4 – Desafio 2 – Formatando a Seção Conteúdos Gratuitos (2 / 3)
000 000
174
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos criar a estilização do nosso span que está realçado dentro do nosso subtítulo h2. Para isso vamos criar uma classe para
nosso span chamada "gratuito-realce". E podemos criar de duas formas:
Os próximos elementos que vamos modificar será os <h3> de Treinamento e Programação, vamos adicionar a mesma classe para
eles, chamada "gratuito-h3" e aplicar os estilos.
Módulo 4 – Desafio 2 – Formatando a Seção Conteúdos Gratuitos (3 / 3)
000 000
175
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesse momento vamos trabalhar nas listas de cada um dos elemento h3 dessa seção. Vamos adicionar a classe="gratuito-link-lista"
em todos os elementos de âncora que pertence a lista abaixo, tanto para o <h3> Treinamentos quanto o <h3> Programação.
Módulo 4 – Desafio 2 – Formatando a Seção Diferenciais (1 / 4)
000 000
176
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos estilizar a nossa seção diferenciais utilizando a ferramenta do desenvolvedor verificaremos algumas das propriedades, o
primeiro elemento que vamos inspecionar é o título dessa seção, e já conseguimos observar suas características. Vamos adicionar ao
elemento h2 a classe="diferenciais-h2".
Vamos controlar o realce do elemento strong:
O próximo elemento que vamos inspecionar é o parágrafo e vamos adicionar uma classe chamada "diferenciais-p" e estilizar com a
seguinte propriedade:
Módulo 4 – Desafio 2 – Formatando a Seção Diferenciais (2 / 4)
000 000
177
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para estilizarmos os elementos <h3> dessa seção, vamos adicionar uma classe="diferenciais-h3" e as seguintes propriedades:
Dentro das configurações globais do nosso arquivo CSS, ou seja, as primeiras linhas de estilização, vamos subir o estilo
aplicado para o elemento h1 e também criar um estilo padrão para elementos do tipo parágrafo:
Módulo 4 – Desafio 2 – Formatando a Seção Diferenciais (3 / 4)
000 000
178
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Conseguimos nesse momento verificar, que os elementos strong não utilizam o valor de 700, ou seja, que o font-weight desse
elementos é um pouco mais suave, possuindo o valor de 600. Para isso vamos comentar uma especificação do nosso arquivo CSS e
adicionar essa propriedade em nossa estrutura global. Além de colocarmos nosso elemento h2 também como padrão.
Módulo 4 – Desafio 2 – Formatando a Seção Diferenciais(4 / 4)
000 000
179
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Dentro dessa seção teremos mais um elemento <h3>, porém vamos estilizar ele com valores diferentes, então vamos localizar ele em
nosso arquivo html e adicionar uma classe chamada "diferenciais-h3-empresas".
E para finalizar vamos criar a estilização para o realce dessa âncora, que está localizada dentro desse elemento h3.
Módulo 4 – Desafio 2 – Formatando a Seção o que Falam (1 / 1)
000 000
180
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A seção o que falam possui poucos elementos nesse momento para estilizarmos, o que vamos adicionar é no elemento <h2> um span
no texto que precisa estar em realce e esse span receberá uma classe chamada "oque falam-realce".
Observando o layout do site em relação aos nossos botões, vamos retornar na seção HERO e adicionar uma nova classe chamada
botão, e também vamos colocar essa classe no botão da nossa seção o que falam, para padronizar algumas propriedades e valores, e
quando falamos em padronizar é porque vamos utilizar essa classe na nossa estrutura global:
Seção Hero
Seção O que Falam
Módulo 4 – Desafio 2 – Formatando a Seção na Mídia (1 / 1)
000 000
181
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesta seção da mídia, à medida que avançamos no desenvolvimento do nosso projeto, estamos começando a padronizar alguns
estilos dentro do nosso arquivo CSS. Isso significa que estamos definindo estilos globais e específicos da seção para garantir
consistência e coesão no design do nosso site. Como resultado, podemos observar que não será necessário criar nenhuma nova classe
ou realizar estilizações adicionais, pois já implementamos as características corretas do layout dentro desta seção específica.
• Padronização de Estilos: Uma prática comum no desenvolvimento web é estabelecer estilos padronizados que se aplicam a todo o
site ou a seções específicas. Isso é alcançado através da definição de estilos globais para elementos comuns, como tipografia, cores,
espaçamento, etc., e também através da criação de estilos específicos para cada seção do site.
• Eficiência no Desenvolvimento: Ao padronizar os estilos dentro de uma seção da mídia, estamos economizando tempo e esforço
no desenvolvimento. Em vez de criar novas classes ou estilizações para cada elemento individual, podemos reutilizar estilos
existentes que já foram cuidadosamente projetados e implementados. Isso não apenas agiliza o processo de desenvolvimento, mas
também reduz a probabilidade de erros e inconsistências no design.
• Consistência Visual: Manter uma aparência visual consistente é essencial para a experiência do usuário. Ao padronizar os estilos
dentro de uma seção, garantimos que todos os elementos dentro dessa área do site sigam as mesmas diretrizes de design. Isso cria
uma experiência coesa e profissional para os visitantes, aumentando a credibilidade e a usabilidade do site.
• Facilidade de Manutenção: Uma vez que os estilos foram padronizados e implementados, a manutenção do site se torna mais
simples e eficiente. Futuras atualizações ou ajustes no design podem ser feitos de forma rápida e fácil, pois já temos uma estrutura
sólida de estilos estabelecida. Isso permite que nossa equipe de desenvolvimento trabalhe de forma mais ágil e produtiva, focando
em melhorias e novos recursos.
Módulo 4 – Desafio 2 – Formatando a Seção Blog da Hashtag (1 / 3)
000 000
182
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Na seção do blog, podemos observar que não será necessário realizar estilizações adicionais ao nosso elemento h2, pois já
implementamos as características corretas do layout dentro do nosso projeto.
Agora precisamos modificar alguns elementos dentro dos posts. Lembrando que todos os posts receberão as mesmas classes e
características.
Módulo 4 – Desafio 2 – Formatando a Seção Blog da Hashtag (2 / 3)
000 000
183
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os primeiros elementos que vamos alterar é o primeiro parágrafo dos posts, vamos adicionar a classe "blog-postadoem" em todos
os primeiros parágrafos de cada um dos posts. E adicionar a estilização para a classe e também para âncora dentro do elemento.
Depois vamos modificar o elemento âncora, que representa o título do nosso post. Vamos adicionar uma nova classe a esse
elemento, chamado "blog-titulopost"
Módulo 4 – Desafio 2 – Formatando a Seção Blog da Hashtag (3 / 3)
000 000
184
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
E o último elemento do nosso post é mais um parágrafo, e vamos adicionar a classe "blog-descricaopost".
Verifique se aplicou todas as classes á todos os elementos de cada um dos posts da nossa seção Blog.
Módulo 4 – Desafio 2 – Formatando a Seção Como ajudar (1 / 2)
000 000
185
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nessa seção vamos começar com o elemento h2, no qual possui um texto com realce. Primeiro vamos adicionar um elemento span e
colocar o conteúdo realçado dentro dele e também colocar uma classe chamada "comoajudar-realce".
Os próximos elementos serão os itens de lista dessa seção. Desta vez, vamos colocar uma classe no elemento pai, o nosso elemento
<ul>, ou seja, nossa lista não ordenada. A classe será "comoajudar-lista".
Módulo 4 – Desafio 2 – Formatando a Seção Como ajudar (2 / 2)
000 000
186
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os parágrafos dessa seção também possuem o valor de font-size: 19px, e para adicionarmos essa característica todos eles receberam
uma classe chamada "comoajudar-paragrafo"
Para as demais características vamos utilizar os elementos filhos das classe e colocar as novas propriedades:
Módulo 4 – Desafio 2 – Formatando a Seção Minicurso (1 / 1)
000 000
187
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Na seção Minicurso, como temos elementos de formulário no qual ainda não vamos alterar a estilização, vamos aplicar apenas as
alterações no elemento do h2, para isso vamos adicionar a classe "minicurso-realce" e a seguinte estilização.
A partir dessa seção, conseguimos verificar que essa é uma estrutura que estamos repetindo em alguns elementos, então vamos
refatorar o nosso CSS, e as classes que vamos deixar padronizadas como "realce-semibold".
Módulo 4 – Desafio 2 – Formatando a Seção Rodapé (1 / 2)
000 000
188
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Na nossa última seção Rodapé vamos estilizar os primeiros três parágrafos, porém cada um deles receberá uma classe e uma
estilização:
A classe "rodape-titulo" nós vamos replicar, ou seja, adicionar essas classes em alguns outros elementos dessa seção:
Módulo 4 – Desafio 2 – Formatando a Seção Rodapé (2 / 2)
000 000
189
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Podemos verificar que já existem estruturas com a estilização global. E para finalizarmos o nosso rodapé é estilizar os nossos links:
Vamos adicionar a esses elementos a classe "rodape-link" e vamos alterar a sua cor.
Módulo 5
APROFUNDANDO NO HTML
APROFUNDANDO NO HTML
APROFUNDANDO NO HTML
190
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 5 – Apresentando o módulo (1 / 1)
000 000
191
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Bem-vindo ao módulo "Aprofundando no HTML"! Vamos explorar aspectos avançados do HTML, capacitando você com
conhecimentos sobre tags e componentes essenciais para a criação de páginas web robustas e dinâmicas.
Temas abordados:
• Tags Avançadas e Componentes:
• Citações: Uso das tags <blockquote> e <q> para citações.
• Abreviações: Utilização da tag <abbr> para definir abreviações e acrônimos.
• Detalhes de Contato: Apresentação de informações de contato com <address>.
• Códigos: Exibição de código com <code>, <pre>, e <samp>.
• Datas: Marcação de datas e horários com <time>.
• Estruturas de Documento: Organização semântica com <header>, <footer>, <article>, <section>, e <aside>.
• Componentes:
• Formulários: Criação de formulários eficientes usando <form>, <input>, <textarea>,e <button>.
• Tabelas: Construção de tabelas acessíveis com <table>, <thead>, <tbody>, <tfoot>, <tr>, <th>, e <td>.
• Iframes: Incorporação de conteúdo externo com <iframe>.
• Paginação: Implementação de paginação para melhorar a navegação.
• Carrossel: Criação de carrosséis de imagens e conteúdo.
Este módulo visa elevar suas habilidades de HTML, permitindo a criação de páginas web sofisticadas, funcionais e acessíveis.
Prepare-se para aprimorar seu domínio dessa linguagem essencial!
Módulo 5 – Citações, Abreviações e Detalhes de contato (1 / 4)
000 000
192
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Tags de citação ou avançadas são mecanismos usados em linguagens de marcação e em sistemas de gerenciamento de conteúdo
para identificar e formatar trechos específicos de texto. Eles são amplamente utilizados para melhorar a organização, a legibilidade e a
semântica de documentos e páginas web. Vou detalhar cada um desses conceitos:
Tags de Citação
As tags de citação são usadas para marcar citações de outras fontes, diferenciando-as do texto principal. Elas ajudam a indicar que o
conteúdo foi retirado de outra obra, garantindo a atribuição adequada e ajudando a evitar plágio. Em HTML, por exemplo, temos duas
tags principais de citação:
• <blockquote>: Usada para citações longas. O conteúdo dentro dessa tag é geralmente exibido com uma indentação.
• <cite>: Usada para citar a fonte de uma obra. É geralmente usada junto com <blockquote> ou para referenciar títulos de obras em
textos.
Módulo 5 – Citações, Abreviações e Detalhes de contato (2 / 4)
000 000
193
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <blockquote> pode incluir o atributo cite para fornecer a URL da fonte da citação. Este atributo não é exibido na página, mas
pode ser útil para SEO, metadados e para fornecer informações adicionais sobre a origem da citação. Aqui está um exemplo de como
usar o atributo cite com a tag <blockquote>:
A tag <q> em HTML é usada para delimitar citações curtas, incorporadas diretamente no texto. Esta tag é diferente da tag
<blockquote>, que é usada para citações mais longas e que normalmente são exibidas como um bloco separado do texto principal.
As citações dentro da tag <q> são geralmente exibidas entre aspas pelo navegador. Assim como a tag <blockquote>, a tag <q>
também pode usar o atributo cite para fornecer a URL da fonte da citação.
Módulo 5 – Citações, Abreviações e Detalhes de contato (3 / 4)
000 000
194
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Tags de abreviação em HTML são usadas para indicar abreviações ou acrônimos no texto. Essas tags fornecem informações adicionais
sobre a abreviação, geralmente na forma de um texto expandido que descreve o que a abreviação significa. Isso melhora a
acessibilidade e a clareza do conteúdo, especialmente para leitores que podem não estar familiarizados com a abreviação.
A tag <abbr> é usada para marcar abreviações. Você pode usar o atributo title para fornecer a forma completa da abreviação, que
aparecerá como uma dica (tooltip) quando o usuário passar o mouse sobre a abreviação.
Neste exemplo, "HTML" é a abreviação de "HyperText Markup Language ". Quando o usuário passa o mouse sobre "HTML", a forma
completa é exibida como uma dica.
Módulo 5 – Citações, Abreviações e Detalhes de contato (4 / 4)
000 000
195
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Em HTML, há tags específicas que ajudam a estruturar e formatar detalhes de contato de maneira clara e semântica. Essas tags
são úteis para fornecer informações de contato, como nomes, endereços, números de telefone e outras informações pessoais ou
organizacionais.
A tag <address> é usada para definir informações de contato de um autor ou proprietário de um documento ou artigo. É uma
tag semântica que indica que o conteúdo dentro dela é uma seção de detalhes de contato.
• Acessibilidade: Usar a tag <address> melhora a semântica e a acessibilidade do seu documento, indicando claramente que o
conteúdo é uma seção de informações de contato.
Módulo 5 – Códigos e Datas (1 / 3)
000 000
196
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Tags de código são usadas em HTML para exibir blocos de código ou trechos de código em uma página da web. Elas ajudam a
formatar e destacar o código para facilitar a leitura e a compreensão por parte dos desenvolvedores e usuários. As duas tags
principais para exibir código em HTML são <code> e <pre>, com finalidades ligeiramente diferentes.
A tag <code> é usada para envolver pequenos trechos de código incorporados no texto. Ela é ideal para destacar palavras-
chave, variáveis, funções ou outros elementos de código em um parágrafo ou frase.
A tag <pre> é usada para exibir blocos de código pré-formatados, mantendo a formatação original, como espaços em branco e
quebras de linha. É útil para exibir trechos de código que precisam manter a formatação exata, como blocos de código HTML,
CSS, JavaScript ou qualquer outra linguagem de programação.
Módulo 5 – Códigos e Datas (2 / 3)
000 000
197
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <var> em HTML é usada para definir uma variável em um contexto matemático ou em um texto técnico. Ela é usada para
indicar que o conteúdo dentro da tag representa uma variável ou um argumento em uma equação, fórmula ou expressão
matemática.
A tag <samp> em HTML é usada para definir uma amostra de saída de um programa de computador ou de um script. Ela é
comumente usada para exibir o resultado de um código de programação ou de um comando de terminal, destacando-o como
saída do sistema.
A tag <kbd> em HTML é usada para definir o texto que representa entrada do teclado, como teclas pressionadas ou atalhos de
teclado. Ela é comumente usada para mostrar ao usuário as teclas que ele deve pressionar para realizar uma determinada ação.
Módulo 5 – Códigos e Datas (3 / 3)
000 000
198
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As tags de data em HTML são usadas para representar datas e horários de maneira semântica, permitindo que os navegadores e
mecanismos de busca compreendam o significado dos dados de data em uma página da web.
A tag <time> é usada para representar datas e/ou horários específicos. Ela pode incluir um ou mais dos seguintes atributos:
datetime, pubdate e aria-hidden.
Módulo 5 – Entrando mais a fundo na estruturas dos documentos (1 / 3)
000 000
199
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Tags semânticas são elementos HTML que adicionam significado estrutural ao conteúdo de uma página da web, facilitando a
compreensão tanto para os navegadores quanto para os desenvolvedores e usuários. Aqui estão alguns exemplos de tags
semânticas avançadas e suas funções:
• <header>: Encontrado no topo da página ou de cada seção principal, o cabeçalho contém informações importantes, como o
título da página, logotipo e possivelmente links de navegação.
• <main>: Esta tag é essencial para definir o conteúdo principal da página. Ele contém o núcleo do conteúdo que os visitantes
estão procurando, como artigos, postagens de blog, produtos em uma loja online, etc.
• <footer>: Localizado no final da página, o rodapé contém informações adicionais, como links de contato, políticas de
privacidade, direitos autorais e outras informações relevantes. É uma parte importante para a conclusão da experiência do
usuário na página.
• <nav>: Embora seja encontrado no topo ou no cabeçalho da página em muitos sites, a seção de navegação é considerada
menos crucial do que o <main> e <footer>, pois fornece acesso a outras partes do site, mas não é o foco principal do
conteúdo.
• <article>: Usado para conteúdo independente e autocontido, como postagens de blog ou notícias, o <article> é importante,
mas pode não estar presente em todas as páginas de um site, dependendo do tipo de conteúdo que está sendo exibido.
• <section>: Embora a tag <section> seja usada para agrupar conteúdo relacionado semanticamente, ela pode ser vistacomo
menos essencial na estrutura geral de um site. No entanto, é útil para organizar o conteúdo em partes distintas, como
capítulos de um livro ou seções de uma página.
Módulo 5 – Entrando mais a fundo na estruturas dos documentos (2 / 3)
000 000
200
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Uma <div> em HTML é um elemento de divisão genérico que é usado para agrupar e estruturar outros elementos HTML em
uma página da web. O nome "div" é uma abreviação de "divisão". A tag <div> não possui significado semântico específico e é
frequentemente usada como um contêiner genérico para outros elementos, permitindo aos desenvolvedores agrupar e estilizar
partes específicas de uma página da web.
Principais Características da <div>:
• Semântica Neutra: Ao contrário de tags como <header>, <footer>, <nav>, etc., que têm significado semântico específico, a
<div> não tem significado inerente. Ela é usada principalmente para fins de organização e estilização.
• Versatilidade: A <div> pode ser usada em uma variedade de contextos e para diversos fins. Por exemplo, ela pode ser usada
para criar layouts de página, agrupar elementos para estilização com CSS, ou envolver partes específicas do conteúdo para
manipulação com JavaScript.
• Bloco de Construção: A <div> é frequentemente usada como um bloco de construção básico para criar estruturas mais
complexas em uma página da web. Por exemplo, um desenvolvedor pode usar várias <div>s para criar colunas em um layout
de página.
Módulo 5 – Entrando mais a fundo na estruturas dos documentos (3 / 3)
000 000
201
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
CONSIDERAÇÕES FINAIS
• Semântica Adequada: Use as tags semânticas de acordo com a função semântica do conteúdo. Por exemplo, o <header>
deve ser usado apenas para o cabeçalho da página, não para cabeçalhos de seções individuais.
• Organização Lógica: Organize o conteúdo da página de forma lógica e hierárquica. Use as tags semânticas para refletir a
estrutura lógica do conteúdo da página.
• Acessibilidade: Certifique-se de que a estrutura da sua página é acessível a todos os usuários, incluindo aqueles que usam
tecnologias assistivas. Use as tags semânticas de forma apropriada para melhorar a acessibilidade do seu site.
• Manutenção e Legibilidade do Código: Evite o uso excessivo de <div>s aninhadas e estruturas complicadas que possam
tornar o código difícil de manter e entender. Mantenha o código limpo e organizado.
Módulo 5 – Formulários (1 / 5)
000 000
202
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Um formulário em HTML é um elemento de marcação usado para criar campos interativos em uma página da web, onde os
usuários podem inserir e enviar informações. Ele permite que os visitantes forneçam dados, como texto, números, seleções de
opções, caixas de seleção e botões de rádio.
Os formulários HTML são criados usando a tag <form> e contêm vários elementos de entrada, como <input>, <textarea>,
<select>, entre outros. Quando o usuário preenche os campos e clica no botão de envio dentro do formulário, os dados são
geralmente enviados para um servidor web para processamento adicional.
Os formulários HTML são uma parte essencial do desenvolvimento da web, pois são usados em uma variedade de cenários,
desde simples caixas de pesquisa até formulários de registro complexos.
A tag <form> é usada para criar um formulário em uma página da web. Ela envolve um conjunto de elementos de entrada,
como campos de texto, botões de rádio, caixas de seleção e botões de envio.
• action: Este atributo especifica para onde os dados do formulário serão enviados quando o usuário clicar no botão de envio.
Pode ser um URL relativo ou absoluto.
• method: Este atributo especifica como os dados do formulário serão enviados. Ele pode ter um dos dois valores: "get" ou
"post". Quando definido como "get", os dados são anexados à URL como parâmetros de consulta. Quando definido como
"post", os dados são enviados no corpo da solicitação HTTP.
Módulo 5 – Formulários (2 / 5)
000 000
203
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Elementos de entrada: Dentro da tag <form>, você pode incluir diversos elementos de entrada, como <input>, <textarea>, <select>,
etc. Esses elementos coletam informações dos usuários.
A tag <input> é um dos elementos mais versáteis em HTML, usada para criar diversos tipos de campos de entrada em formulários. Aqui
estão mais detalhes sobre a tag <input>:
• type: Este é um atributo obrigatório que define o tipo de campo de entrada que o elemento <input> representa. Existem vários valores
possíveis para o atributo "type", incluindo:
• text: Cria um campo de texto simples onde os usuários podem digitar texto.
• password: Cria um campo de senha onde os caracteres digitados são ocultados.
• checkbox: Cria uma caixa de seleção que permite aos usuários selecionar uma ou mais opções.
• radio: Cria um botão de rádio que permite aos usuários selecionar apenas uma opção de um conjunto de opções.
• submit: Cria um botão de envio que envia o formulário quando clicado.
• file: Cria um campo de entrada para selecionar arquivos para upload.
• email, number, date, url, entre outros: Esses tipos específicos de entrada fornecem validação e comportamento específicos para
tipos específicos de dados.
• name: Este atributo é usado para identificar o campo quando o formulário é enviado para o servidor. Cada campo de entrada deve ter
um nome exclusivo dentro do formulário.
• id: O atributo "id" é opcional, mas útil para associar um rótulo (usando a tag <label>) a um campo de entrada. Também é útil para
selecionar e manipular o campo usando JavaScript ou CSS.
• value: Este atributo define o valor inicial do campo de entrada. Para campos de texto, é o texto predefinido. Para caixas de seleção e
botões de rádio, é o valor que será enviado para o servidor se o campo estiver marcado.
• placeholder: Este atributo é opcional e fornece um texto de exemplo que desaparece quando o usuário começa a digitar no campo.
Ele é útil para fornecer dicas sobre o que deve ser inserido no campo.
• required: Este atributo é usado para tornar um campo obrigatório. Se presente, o formulário não pode ser enviado até que o campo
seja preenchido.
Módulo 5 – Formulários (3 / 5)
000 000
204
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• name: Cada elemento de entrada dentro do formulário deve ter um atributo "name" que identifica o campo no servidor quando o
formulário é enviado. Isso é usado para acessar os dados enviados pelo usuário.
A tag <label> em HTML é usada para associar um rótulo descritivo a um elemento de entrada, como um campo de texto, uma caixa de
seleção ou um botão de opção. Aqui estão alguns detalhes sobre a tag <label>:
• For: O atributo "for" da tag <label> especifica qual elemento de entrada ela está associada. O valor do atributo "for" deve ser o mesmo
que o valor do atributo "id" do elemento de entrada. Isso conecta o rótulo ao campo de entrada e oferece alguns benefícios
importantes, como:
• Quando um usuário clica no rótulo, o navegador coloca o foco no campo de entrada associado.
• Torna os formulários mais acessíveis, facilitando a seleção do campo de entrada para usuários que usam tecnologias assistivas,
como leitores de tela.
• Conteúdo: O conteúdo dentro da tag <label> é o texto descritivo que será exibido na interface do usuário.
Módulo 5 – Formulários (4 / 5)
000 000
205
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos utilizar de exemplo para construirmos o nosso formulário, o Newsletter do site da Hashtag:
Então vamos adicionar um novo input que será responsável pelo email.
O atributo placeholder em HTML é usado em elementos de entrada, como <input> e <textarea>, para fornecer um texto de exemplo ou
uma dica sobre o tipo de informação que se espera que seja inserida nesse campo.
O texto fornecido no atributo placeholder geralmente dá uma pista ao usuário sobre o formato ou o tipo de informação que deve ser
inseridono campo. Por exemplo, um campo de entrada de data pode ter um placeholder como "DD/MM/AAAA", enquanto um campo de
entrada de e-mail pode ter um placeholder como "exemplo@dominio.com".
Módulo 5 – Formulários (5 / 5)
000 000
206
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando um botão está vinculado ao envio (submit) de um formulário em HTML, significa que clicar nesse botão irá enviar os dados
preenchidos no formulário para o servidor especificado na tag <form>. Isso é útil para permitir que os usuários enviem os dados do
formulário quando estiverem prontos.
Normalmente, um botão vinculado ao envio de um formulário é do tipo <input> com o atributo type definido como "submit" ou
"button", ou do tipo <button> com o atributo type definido como "submit".
Se o botão estiver fora da tag <form>, ele não será automaticamente vinculado ao envio do formulário, a menos que seja feito por meio
de JavaScript.
Módulo 5 – Tabelas (1 / 6)
000 000
207
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Uma tabela em HTML é uma estrutura organizada de linhas e colunas usada para exibir dados de forma tabular em uma
página da web. Ela é criada usando a tag <table> e consiste em várias outras tags que definem partes diferentes da tabela.
Aqui estão os elementos principais de uma tabela em HTML:
• <table>: Esta é a tag principal que envolve toda a tabela. Ela contém todas as outras tags que definem a estrutura da tabela.
• <tr>: Esta é a tag que define uma linha da tabela. Ela deve ser usada dentro da tag <table>. Cada linha da tabela contém
uma ou mais células.
• <td>: Esta é a tag que define uma célula de dados em uma tabela. Ela deve ser usada dentro da tag <tr>. O conteúdo de
cada célula é exibido dentro dela.
• <th>: Similar à tag <td>, <th> define uma célula de cabeçalho em uma tabela. É usada dentro da tag <tr> para criar uma
linha de cabeçalho. O texto dentro de uma célula de cabeçalho é geralmente exibido em negrito e centralizado por padrão.
• Atributos de estilização: Você pode usar atributos de estilo, como border, cellpadding, cellspacing, entre outros, na tag
<table> para controlar a aparência e o espaçamento da tabela.
Módulo 5 – Tabelas (2 / 6)
000 000
208
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Dentro de uma tabela HTML, a tag <caption> é usada para fornecer um título ou uma legenda descritiva para a tabela. Esta tag
é opcional e deve ser colocada imediatamente após a tag de abertura <table> e antes das tags de <thead>, <tbody>, <tfoot>
ou qualquer outra tag de conteúdo da tabela.
Agora vamos construir algumas linhas dentro da nossa tabela, e usaremos a tag <tr> (table row). Dentro de uma linha da
tabela precisamos adicionar outro elemento, a tag <td> (table data), que é o local para adicionar os dados.
Módulo 5 – Tabelas (3 / 6)
000 000
209
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos continuar adicionando informações e analisando o comportamento dos nossos elementos dentro da nossa tabela:
Para melhorarmos nossa estrutura de tabela, vamos retirar a legenda armazenada na caption, e adicionar um elemento <tbody>.
A tag <tbody> em HTML é usada para agrupar o conteúdo das células de uma tabela que contêm os dados principais da tabela. Ela é
usada em conjunto com as tags <table> e <tr>, que definem a estrutura geral da tabela e suas linhas, respectivamente.
Módulo 5 – Tabelas (4 / 6)
000 000
210
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <thead> em HTML é usada para definir o cabeçalho de uma tabela. Ela agrupa as linhas de uma tabela que contêm os títulos das
colunas ou outras informações importantes relacionadas ao conteúdo da tabela.
O uso da tag <thead> é uma prática recomendada em HTML, pois ajuda a melhorar a acessibilidade da tabela e fornece um contexto
claro para os leitores de tela e outros dispositivos assistivos. Além disso, contribui para a semântica do código HTML, tornando-o mais
compreensível tanto para os desenvolvedores quanto para os motores de busca.
Dentro da tag <thead>, cada linha (<tr>) geralmente contém células de cabeçalho (<th>) que representam os títulos das colunas da
tabela.Então será usada em conjunto com a tag <th>, que representa as células de cabeçalho em uma tabela HTML. A tag <thead>
agrupa todas as linhas que contêm os cabeçalhos das colunas, e esses cabeçalhos são definidos com a tag <th>.
Módulo 5 – Tabelas (5 / 6)
000 000
211
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <tfoot> em HTML é usada para definir o rodapé de uma tabela. Ela agrupa as linhas que contêm informações de rodapé, como
totais, sumários ou outras informações relevantes para o conteúdo da tabela.O uso da tag <tfoot> é útil para fornecer informações de
resumo ou totais no final de uma tabela, ajudando a destacar os resultados mais importantes.
A tag <colgroup> em HTML é usada para agrupar uma ou mais colunas de uma tabela HTML. Ela é útil quando você deseja aplicar
estilos ou atributos a várias colunas de uma vez, em vez de ter que aplicá-los individualmente a cada célula de uma coluna.
Módulo 5 – Tabelas (6 / 6)
000 000
212
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A tag <tfoot> em HTML é usada para definir o rodapé de uma tabela. Ela agrupa as linhas que contêm informações de rodapé, como
totais, sumários ou outras informações relevantes para o conteúdo da tabela.O uso da tag <tfoot> é útil para fornecer informações de
resumo ou totais no final de uma tabela, ajudando a destacar os resultados mais importantes.
Aqui, a tag <colgroup> está sendo usada para definir um grupo de colunas em uma
tabela HTML. Dentro dessa tag, são definidas três colunas usando as tags <col>.
• A primeira coluna (<col>) está recebendo um estilo específico de background
(background-color: red;). Isso significa que todas as células dessa coluna terão um
fundo vermelho.
• As duas colunas subsequentes (<col>) não têm estilos ou atributos específicos
definidos. Isso significa que elas não terão nenhuma formatação adicional aplicada a
elas, então seguirão o estilo padrão definido pela tabela ou qualquer outro estilo CSS
aplicado globalmente.
O uso de <colgroup> e <col> é útil para aplicar estilos ou atributos a várias colunas de
uma vez, em vez de ter que aplicá-los individualmente a cada célula de uma coluna. Isso
pode ajudar a simplificar o código HTML e tornar a formatação mais consistente em uma
tabela.
Módulo 5 – Iframe (1 / 4)
000 000
213
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O conceito de "embedar" está intimamente relacionado ao uso do elemento <iframe> em HTML.
O elemento <iframe> é uma ferramenta fundamental para incorporar conteúdo de outras fontes em uma página da web. Ele permite
que você "embede" documentos HTML completos ou qualquer outro tipo de conteúdo, como vídeos, mapas, widgets de mídia social,
entre outros.
Ao utilizar <iframe>, você está essencialmente incorporando um documento HTML externo dentro do documento atual. Isso é muito
útil para integrar conteúdos de diferentes fontes em uma única página da web.
Por exemplo, se você quiser "embedar" um vídeo do YouTube em sua página, você pode usar um <iframe> com o código fornecido
pelo YouTube para incorporar o vídeo diretamente em sua página. Da mesma forma, se você quiser "embedar" um mapa do Google,
você pode usar um <iframe> com o código fornecido pelo Google Maps para incorporar o mapa em sua página.
Portanto, o elemento <iframe> é uma ferramenta poderosa para o processo de "embedar" conteúdo de fontes externas em uma
página da web, permitindo uma integração flexível e eficiente de diferentes tipos de mídia e conteúdo.
O elemento <iframe> em HTML (Inline Frame) é usado para incorporar outro documento HTML dentro do documento atual. Esses
documentos podem ser de qualquer tipo, incluindo HTML, XML, SVG e até mesmo arquivos de vídeo ou áudio.
Módulo 5 – Iframe (2 / 4)
000 000
214
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando você usa o elemento <iframe>em HTML e define o atributo src com um URL específico, o navegador realmente carrega e
exibe o conteúdo desse URL dentro da janela do <iframe>, assim como um navegador separado faria. No entanto, há algumas
diferenças importantes a serem observadas:
• Contido dentro da página pai: O conteúdo carregado dentro do <iframe> está contido dentro da página pai. Isso significa que,
embora o conteúdo seja exibido dentro do <iframe>, ele faz parte da página principal e não é um navegador independente.
• Limitações de segurança: Devido às políticas de segurança do navegador, o conteúdo dentro do <iframe> tem algumas restrições.
Por exemplo, scripts dentro do <iframe> geralmente têm um escopo restrito e não podem interagir livremente com a página pai.
• Controle de tamanho: Você pode definir o tamanho do <iframe> usando os atributos width e height. Isso permite que você
controle o espaço ocupado pelo conteúdo carregado dentro do <iframe> dentro da página pai.
Módulo 5 – Iframe (3 / 4)
000 000
215
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Um exemplo são os vídeos de youtube que carregamos na página da Hashtag, que são no formato de iframe.
Módulo 5 – Iframe (4 / 4)
000 000
216
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• src: Especifica o URL do recurso a ser incorporado no <iframe>. Por exemplo: <iframe src="pagina.html"></iframe>.
• width: Define a largura do <iframe>. Pode ser especificado em pixels (por exemplo, <iframe width="500">) ou em porcentagem do
tamanho da janela do navegador (por exemplo, <iframe width="50%">).
• height: Define a altura do <iframe>. Assim como o atributo width, pode ser especificado em pixels ou em porcentagem (por
exemplo, <iframe height="300"> ou <iframe height="50%">).
• frameborder: Controla a exibição da borda ao redor do <iframe>. Um valor de "0" remove a borda, enquanto "1" a exibe. Exemplo:
<iframe frameborder="0"></iframe>.
• scrolling: Define se barras de rolagem são exibidas dentro do <iframe>. Valores possíveis são "yes" para exibir barras de rolagem,
"no" para ocultá-las e "auto" para exibir barras de rolagem apenas quando necessário. Exemplo: <iframe scrolling="no"></iframe>.
• sandbox: Este atributo permite restringir o comportamento do documento incorporado usando uma lista de restrições. Isso é útil
para evitar ataques de scripts maliciosos. Exemplo: <iframe sandbox="allow-same-origin allow-scripts"></iframe>.
• name: Define um nome para o <iframe>, que pode ser usado como o alvo para links de destino. Exemplo: <iframe
name="meu_iframe"></iframe>.
• allowfullscreen: Permite ou nega ao documento dentro do <iframe> a capacidade de entrar no modo de tela cheia. Exemplo:
<iframe allowfullscreen></iframe>.
Módulo 5 – Desafio 1 - Apresentando o Desafio (1 / 1)
000 000
217
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seja bem-vindo ao Desafio 1 do módulo "Aprofundando no HTML". Este desafio é uma oportunidade para você colocar em prática os
conhecimentos adquiridos até agora e enfrentar novos desafios.
Para começar, você precisará baixar o arquivo "desafio-1.html" da pasta "Do zero". Dentro deste arquivo, você encontrará todas as
informações necessárias para realizar as tarefas propostas.
Prepare-se para aplicar conceitos de semântica HTML, estilização inline, abreviações, citações com links, manipulação de código CSS,
criação de tabelas e formulários HTML, entre outras habilidades.
Dentro do arquivo, encontrará instruções detalhadas sobre como aplicar cada elemento no desafio.
Módulo 5 – Desafio 1 - Construindo juntos (1 / 7)
000 000
218
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo as instruções do desafio, através do arquivo desafio-1.txt,e a primeira tarefa é que vamos precisar dividir a nossa página de
acordo com a estrutura que aprendemos até aqui. Logo, teremos que introduzir as três grandes seções de uma página, além das
seções menores.
A primeira tag semântica que vamos utilizar é para o Cabeçalho, nossa tag <header>. O nosso cabeçalho será composto pelas
seguintes estruturas:
O nosso elemento header, irá ser aplicado envolvendo o elemento svg e a ul, que possui links de navegação
Módulo 5 – Desafio 1 - Construindo juntos (2 / 7)
000 000
219
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Entendendo como o nosso cabeçalho está estruturado, e como adicionamos o elementos header para melhorar sua semântica,
também vamos adicionar a tag nav, para envolver nossos links de navegação que o nosso cabeçalho possui.
Agora está na hora de localizarmos na estrutura do nosso site o que se refere ao nosso Rodapé e adicionaremos o elemento footer.
Módulo 5 – Desafio 1 - Construindo juntos (3 / 7)
000 000
220
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora que adicionamos as tags que representam nosso cabeçalho e nosso rodapé, sabemos que todo o restante do conteúdo será
envolvido em uma tag main, e vamos começar a adicionar as seções que cada parte representa.
Para identificar cada seção, vamos utilizar os elementos de h2 que estão separando os nossos conteúdos, exceto pela primeira seção
que irá iniciar no elemento do h1. E todos os demais h2 serão envolvidos por uma tag section.
Módulo 5 – Desafio 1 - Construindo juntos (4 / 7)
000 000
221
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é que a logo da MDN deverá ter 150px de largura, mas como será a única estilização que vamos fazer na página,
não é necessário criar um arquivo css para isso. Vamos utilizar a estilização inline, dentro do elemento svg e adicionar a propriedade
width.
A seguir vamos seguir a instrução: No primeiro parágrafo que mencionarmos "HTML" ou "CSS", você deverá criar uma abreviação
com o nome completo da linguagem.
Módulo 5 – Desafio 1 - Construindo juntos (5 / 7)
000 000
222
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Coloque o ano de criação do HTML dentro de uma tag que os computadores consigam entender.
Agora vamos adicionar um citação com o link da citação junto ao elemento de parágrafo, vamos adicionar um elemento âncora
que envolva a citação e adicionar também a tag adequada para citação, nesse caso <cite>:
Módulo 5 – Desafio 1 - Construindo juntos (6 / 7)
000 000
223
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos colocar em todas as tags em HTML para
serem exibidas na página final da forma correta, isto é,
como um código.
E na segunda citação da página, você deverá usar uma
citação inline. Utilizando a tag <q>.
A próxima modificação será referente ao código em CSS dentro
da página que deverá ser retratado exatamente do jeito que ele
seria visualizado dentro de um arquivo CSS.
Logo no parágrafo seguinte, fazemos uma referência ao código
em CSS. Retrate o seletor como se fosse uma variável.
Módulo 5 – Desafio 1 - Construindo juntos (6 / 7)
000 000
224
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nesse momento vamos transformar o modelo de tabela
em uma tabela HTML.
Vamos utilizar a tag Iframe para criarmos o contexto de
navegação para referenciar um site, assim como fizemos no
exemplo da aula.
Módulo 5 – Desafio 1 - Construindo juntos (7 / 7)
000 000
225
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Substitua os parágrafos utilizados para retratar o
formulário pelo formulário em si.
E para finalizar a página use a forma adequada de retratar
informações de contato.
Módulo 5 – Desafio 2 - Explicando as novidades (1 / 1)
000 000
226
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Neste módulo "Aprofundando no HTML", você já percorreu um caminho significativo de aprendizado, explorando as
nuances e capacidades avançadas que o HTML oferece. Agora, chegou o momento de colocar em prática tudo o que foi
absorvido. Este é o Desafio 2, uma oportunidade para consolidar seus conhecimentos ao aplicar as tags e componentes
avançados aprendidos, aprimorando a página que você construiu até o momento.
O desafio é claro: transformar a Home da Hashtag, respeitandoa estrutura e o conteúdo da página real, enquanto
incorpora os seguintes focos do módulo:
Citações, Abreviações e Detalhes de Contato
• blockquote, q, cite e address
Códigos e Datas
• code, pre, var, kbd, samp e time:
Estrutura dos Documentos
• header, nav, main, article, aside, section e footer:
• div e span:
Formulários
Tabelas
iFrames
Ao longo deste desafio, sua tarefa é integrar essas diversas tags e componentes na página da Home da Hashtag. A meta é
não apenas aplicar esses elementos, mas também assegurar que a página resultante seja funcional, esteticamente
agradável e fiel à estrutura original.
Este é o momento de demonstrar seu domínio do HTML, transformando o conhecimento teórico em prática efetiva.
Mergulhe no desafio, explore sua criatividade e técnica, e veja a página ganhar vida com uma nova profundidade e
riqueza de detalhes.
Divirta-se e bom trabalho!
Módulo 5 – Desafio 2 - Completando o Cabeçalho (1 / 1)
000 000
227
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No HTML, a semântica é fundamental para organizar o conteúdo de uma página de forma que seja compreensível tanto para
humanos quanto para máquinas, como motores de busca e leitores de tela. Então vamos envolver nosso cabeçalho na tag header
e a lista de navegação em nav.
Módulo 5 – Desafio 2 - Completando a Seção Hero (1 / 3)
000 000
228
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A primeira tag semântica que vamos adicionar nessa aula é a tag main, que envolverá todo o conteúdo do nosso site com
exceção do nosso cabeçalho, que já utilizamos a tag header para identificar, e o nosso rodapé.
Agora vamos adicionar a tag section para envolver toda a nossa seção Hero. Lembrando que cada seção do nosso site, depois
colocaremos dentro um tag section, para separar seus conteúdos semanticamente.
Módulo 5 – Desafio 2 - Completando a Seção Hero (2 / 3)
000 000
229
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Muitas estruturas vão estar relacionadas a construção do CSS, mas conseguimos observando o site, entender como alguns
elementos estão estruturados, que no caso da seção hero, conseguimos verificar que as informações estão em um bloco separado
do vídeo. Vamos utilizar a estrutura de uma div, pois ela é um bloco genérico.
Módulo 5 – Desafio 2 - Completando a Seção Hero (3 / 3)
000 000
230
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos substituir a imagem que está representando o vídeo da nossa seção, pelo elemento que aprendemos no módulo que é o
Iframe, e para termos todas as informações dele correta, vamos utilizar a ferramenta do desenvolvedor e copiar a referência do
elemento e substituir no nosso arquivo HTML.
Módulo 5 – Desafio 2 - Completando a Seção Conteúdos Gratuitos (1 / 2)
000 000
231
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A primeira modificação que vamos na nossa seção conteúdos
gratuitos, é envolver todos os seus elementos dentro da tag
section, para definirmos e separar de forma semântica a nossa
seção.
Observar dentro da seção os elementos que estão agrupados e
envolve-los em uma div, cada grupo terá um elemento div
encapsulando.
O bloco de Treinamentos também será encapsulado por uma
div, assim como o da Programação.
Módulo 5 – Desafio 2 - Completando a Seção Conteúdos Gratuitos (2 / 2)
000 000
232
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Dentro do bloco de Treinamentos e Programação, vamos também encapsular as âncoras, lembrando que cada um
desses blocos será feito o mesmo processo :
Módulo 5 – Desafio 2 - Completando a Seção Diferenciais (1 / 2)
000 000
233
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como fizemos nas demais seções, vamos envolver toda
a nossa seção diferencias dentro de um elementos
section, e depois analisaremos quais elementos estão
estão agrupados e quais outras mudanças vamos
precisar realizar nessa seção.
Dentro dessa seção, teremos 5 subdivisões que criaremos
utilizando o elemento div, para envolver cada uma delas.
Módulo 5 – Desafio 2 - Completando a Seção Diferenciais (2 / 2)
000 000
234
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Continuando com as subdivisões da seção: Vamos envolver todas as imagens das empresas em
uma única div.
Módulo 5 – Desafio 2 - Completando a Seção O que falam e Na mídia (1 / 2)
000 000
235
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nessa aula vamos modificar as seções O que falam e
Na mída, o primeiro passo é envolver cada uma das
seções por uma tag section.
Agora vamos começar as subdivisões na seção o que
falam:
Módulo 5 – Desafio 2 - Completando a Seção O que falam e Na mídia (2 / 2)
000 000
236
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos começar as subdivisões na seção na mídia:
Módulo 5 – Desafio 2 - Completando a Seção Blog da Hashtag (1 / 1)
000 000
237
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Na seção do Blog da Hashtag, vamos englobar toda a seção dentro da tag section, e depois observar as suas subdivisões,
que no caso dessa seção, conseguimos visualizar através de caixas bem definidas de cada Post.
Cada post será envolvido por uma div.
Módulo 5 – Desafio 2 - Completando a Seção Como ajudar (1 / 1)
000 000
238
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Na seção Como ajudar, vamos encapsular a seção inteira dentro da tag section, e verificar que ela possui um bloco já definido pelo
elemento <ul> que engloba toda a sua lista, e vamos criar uma subdivisão para os elementos de parágrafos ficarem agrupados:
Módulo 5 – Desafio 2 - Completando a Seção Minicurso (1 / 2)
000 000
239
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Até o momento aprendemos tags importantes para estruturar o HTML, na seção minicurso vamos utilizar a tag form para
modificarmos os nossos campos de entrada Nome e E-mail, além de lembrando que essa seção será encapsulado primeiramente
por uma tag section.
Vamos criar nosso formulário com a palavra form, e substituir alguns dos elementos, criando dois inputs com suas respectivas
labels.
Módulo 5 – Desafio 2 - Completando a Seção Minicurso (2 / 2)
000 000
240
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é envolver cada um dos nossos inputs e
labels dentro de uma div.
E para finalizar a nossa seção minicurso, vamos adicionar um
botão de envio dentro do nosso formulário.
Módulo 5 – Desafio 2 - Completando o Rodapé (1 / 3)
000 000
241
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora que finalizamos o header/cabeçalho e todas as seções do nosso main, vamos adicionar ao nosso rodapé, a tag footer que
encapsulará todos os elementos do rodapé.
E vamos analisar no site da Hashtag, como estão agrupados os elementos desse footer, para sabermos quais tags unir com uma div,
ou com uma tag semântica que aprendemos ao longo desse módulo.
Módulo 5 – Desafio 2 - Completando o Rodapé (2 / 3)
000 000
242
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A primeira parte será dividir em subdivisões utilizando a tag div, com exceção a estrutura Newsletter que será um formulário e para
isso utilizaremos a tag form.
Módulo 5 – Desafio 2 - Completando o Rodapé (3 / 3)
000 000
243
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora para finalizarmos o nosso rodapé, vamos refatorar os elementos do Newsletter e modificar para um formulário.
Módulo 6
APROFUNDANDO NO CSS
APROFUNDANDO NO CSS
APROFUNDANDO NO CSS
244
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Apresentando o módulo (1 / 1)
000 000
245
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Bem-vindo ao módulo "Aprofundando no CSS"! Neste módulo, você irá explorar os aspectos mais robustos e avançados do CSS,
e como transformar suas páginas web em experiências visuais dinâmicas e profissionais.
Temas abordados:
• Especificidade e Seletores: Você aprenderá novos seletores que lhe darão maior controle sobre os elementos.
• Pseudo-classes: Aplique estilos a elementosem estados específicos, com quando tocados pelo mouse.
• Pseudo-elementos: Aprenda a estilizar partes específicas de um elemento, como a primeira letra ou linha da sua página.
• Seletor Universal: Aplique estilos a todos os elementos de uma página, simplificando a manutenção do CSS.
• Box Model: Entenda como o CSS interpreta e manipula as "caixas" que compõem os elementos do seu documento.
• Espaçamentos e Dimensões: Crie espaços internos e externos entre elementos, para um design limpo e bem organizado.
• Sombras: Adicione profundidade e destaque aos seus elementos, tornando sua página mais atraente e moderna.
• Elementos Arredondados: Aprenda a criar cantos arredondados e bordas estilizadas.
• Tipos de Visualização e Posicionamento: Introdução à criação de layouts, utilizando diferentes técnicas de
visualização e posicionamento, preparando você para projetos de design mais avançados.
Este módulo é projetado para ampliar suas habilidades em CSS, capacitando você a criar páginas web elegantes, eficientes e
acessíveis. Prepare-se para dominar técnicas essenciais que transformarão suas habilidades de design web!
Módulo 6 – Especificidade no CSS (1/7)
000 000
246
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando há múltiplas regras conflitantes para um mesmo elemento, a especificidade determina qual regra de estilo
será aplicada. No CSS, a especificidade age como uma espécie de regra de importância que o navegador de internet irá usar
para decidir qual estilo aplicar.
Exemplo:
No código abaixo podemos ver um seletor h1 que indica que a cor do texto deve ser vermelha. Porém, um seletor de ID informa
que a cor deve ser azul. Qual será a cor do texto "Olá, mundo"?
Módulo 6 – Especificidade no CSS (2/7)
000 000
247
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No CSS, existe uma hierarquia de seletores que determina quais regras de estilo terão prioridade quando várias regras se aplicam ao
mesmo elemento. Entender essa hierarquia é crucial para criar estilos que funcionem como esperado.
Menor Maior
Prioridade Prioridade
Da esquerda para a direita, podemos visualizar a importância que cada tipo de seletor tem no momento de decidir sua especificidade.
Benefícios de entender a Hierarquia de Seletores:
• Saber qual regra será aplicada facilita a manutenção e a atualização do CSS.
• Crie estilos mais eficientes, evitando conflitos de regras.
• Tenha maior controle sobre a estilização dos elementos da sua página.
• Facilita a resolução de problemas relacionados à estilos inesperados.
Módulo 6 – Especificidade no CSS (3/7)
000 000
248
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os Seletores são:
• Universal: Este seletor serve para definir alguma característica para todos os elementos da página. Serve geralmente para definir
padrões na página, como o tamanho padrão da fonte, por exemplo. Por ser um seletor muito geral, tem a menor prioridade.
• Tag: Aplica estilos a todos os elementos de um determinado tipo. Por exemplo, h1 estiliza todos os elementos <h1> na página.
• Classe/Pseudo-Classe: Aplicam estilos a elementos com uma classe específica ou em um estado específico. Eles são mais
específicos que os seletores de tag e têm uma prioridade maior.
• Atributo: Os seletores de atributo selecionam elementos com um atributo específico ou um valor de atributo específico.
• ID: Aplica estilos a um elemento com um ID específico. Um ID deve ser único em uma página, então esse seletor é muito
específico e tem uma prioridade alta.
• Inline: As regras CSS aplicadas diretamente ao elemento HTML usando o atributo style têm a maior especificidade (além das
regras importantes). Essas regras têm prioridade máxima porque são aplicadas diretamente ao elemento. Normalmente são
evitadas, por deixarem o código com aparência um pouco desorganizada.
• !important: A regra !important adicionada a qualquer declaração CSS faz com que essa declaração tenha a prioridade máxima,
sobrescrevendo até mesmo seletores inline. No entanto, o uso de !important deve ser evitado, pois pode dificultar a manutenção
do código.
Módulo 6 – Especificidade no CSS (4/7)
DICA
Quanto mais específico for o
seletor, maior será sua prioridade
na hierarquia. Quanto mais
genérico, menor a prioridade do
seletor.
000 000
249
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Menor Maior
Prioridade Prioridade
Mais genérico! Mais específico!
Módulo 6 – Especificidade no CSS (5/7)
000 000
250
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos voltar ao exemplo do início. Qual será a cor do texto "Olá, mundo!"?
Como o seletor de ID é mais especifico, ele tem uma prioridade maior que o seletor de tag. Por isso "Olá, mundo!" será azul.
Módulo 6 – Especificidade no CSS (6/7)
000 000
251
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Da mesma forma, em algumas situações, os seletores podem especificar apenas parte da estilização de um elemento. Veja o exemplo
abaixo:
Exemplo:
O seletor de ID tem maior prioridade que o seletor de tag, então a cor do texto será azul. No entanto, o estilo da fonte (font-style) não
tem conflito, então ele permanece como definido no seletor de tag.
DICA
Em casos de seletores com a
mesma prioridade e que se
contradizem, a última regra
declarada prevalecerá (se
temos dois seletores h1,
prevalece o último que foi
declarado).
000 000
DICA
Em casos de seletores
combinados, o seletor mais
específico prevalecerá. Por
exemplo, um seletor de classe e
tag é mais prioritário que apenas
classe.
252
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Especificidade no CSS (7/7)
Módulo 6 – Trabalhando com espaçamentos (1/7)
000 000
253
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As margens (margin) são os espaços externos ao redor
dos elementos. Elas são usadas para criar
espaçamento entre elementos, ajudando a criar
layouts bem organizados e visualmente agradáveis. O
exemplo abaixo tem uma margem de 25px, e ela é
representada pela cor alaranjada.
Exemplo:
Propriedades de margem:
A expressão margin define a margem para os lados de um
elemento, podendo ser usada com um, dois ou quatro valores.
• Um único valor aplica a margem em todos os lados.
Módulo 6 – Trabalhando com espaçamentos (2/7)
000 000
254
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Dois valores aplicará o primeiro valor às margens verticais (topo e base), e o segundo valor às margens horizontais (direita e
esquerda).
• Quatro valores aplicará os valores à todos os lados, seguindo cada valor respectivamente às margens superior (topo), direita,
inferior (base) e esquerda.
Módulo 6 – Trabalhando com espaçamentos (3/7)
000 000
255
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O padding é o espaço interno ao redor do conteúdo
de um elemento, dentro de suas bordas. Ele é usado
para criar espaçamento interno e separar o conteúdo
das bordas do elemento. O exemplo abaixo tem
padding de 10px, como pode notar pela
representação verde.
Exemplo:
Adicionando uma cor de fundo ao elemento, visualizar como o
padding afeta visualmente o layout da página torna-se mais fácil
Exemplo sem padding:
Exemplo com padding de 10px:
Note como os espaços internos do fundo colorido até o texto se
tornaram maiores. O padding afastou o conteúdo interno das
bordas.
Módulo 6 – Trabalhando com espaçamentos (4/7)
000 000
256
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As propriedades de padding são similares às de margin, ou seja, pode ser usado de forma parecida com um, dois ou quatro valores:
• Um valor aplica o mesmo padding em todos os lados.
Módulo6 – Trabalhando com espaçamentos (5/7)
000 000
257
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Com dois valores, será aplicado o primeiro valor ao padding vertical (topo e base), e o segundo valor ao padding horizontal
(esquerda e direita).
Módulo 6 – Trabalhando com espaçamentos (6/7)
000 000
258
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Com quatro valores, será aplicado em ordem ao padding superior (topo), direito, inferior (base) e esquerdo.
Módulo 6 – Trabalhando com espaçamentos (7/7)
000 000
259
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Em situações em que seja necessário modificar apenas um
dos espaçamentos, o CSS permite a seleção de uma borda
específica. Tanto para margin como padding o
funcionamento é praticamente o mesmo.
• margin-top / padding-top: Define a margem ou
padding do topo.
• margin-right / padding-right: Define a margem ou
padding da direita.
• margin-bottom / padding-bottom: Define a margem
ou padding inferior.
• margin-left / margin-right: Define a margem ou
padding da esquerda.
Módulo 6 – Dimensões e unidades no CSS (1/8)
000 000
260
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Com o CSS, os elementos de uma página podem ter suas dimensões definidas com o uso de propriedades como width e height.
• width: Define a largura de um elemento.
• height: Define a altura de um elemento.
Exemplo:
Módulo 6 – Dimensões e unidades no CSS (2/8)
000 000
261
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para tratar de dimensões no CSS é necessário fazer uso de uma unidade tamanho. Dentro do CSS temos unidades absolutas e
unidades relativas.
• Unidades absolutas: Definem o tamanho de forma invariável e sem depender de outro elemento. Por exemplo, um elemento de
20 pixels tem a mesma medida em qualquer tipo de dispositivo.
• Tipos de unidades absolutas: Pixels (px), centímetros (cm), milímetros(mm), e outras, sendo medidas como centímetros e
milímetros menos usadas em layouts web.
• Unidades relativas: O tamanho é variável, sendo determinado com base em um outro elemento, se ajustando dinamicamente.
Elas permitem que os elementos sejam responsivos, ou seja, se ajustem à diferentes tamanhos de tela ou de diferentes
configurações. Os principais tipos são:
• Viewport Height (vh): Medida relativa à altura do navegador. O valor informado define a altura do elemento como uma
porcentagem da altura total da viewport (janela de visualização ou navegador).
• Viewport Width (vw): Medida relativa à largura do navegador. O valor informado define a largura do elemento como uma
porcentagem da largura total da viewport (janela de visualização ou navegador).
Como funciona?
• 1vh corresponde a 1% da altura do navegador.
• 50vh corresponde a 50% da altura do navegador.
• 100vh corresponde a 100% da altura do navegador.
Outros valores aplicarão a porcentagem correspondente.
A mesma lógica irá se aplicar ao vw, mudando apenas que o tamanho é relativo à largura do navegador, então 1vw é 1% da largura
do navegador e assim por diante para outros valores.
Módulo 6 – Dimensões e unidades no CSS (3/8)
000 000
262
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Exemplo de vh e vw:
Note que apesar da mudança no viewport (tamanho da janela), a caixa laranja manteve as proporções (ocupou 100% da altura da tela
e 30% da largura da mesma).
Módulo 6 – Dimensões e unidades no CSS (4/8)
000 000
263
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Existem ainda outros tipos de unidade relativas:
• em: Unidade relativa ao tamanho da fonte do elemento pai. O valor indicado é multiplicado pelo tamanho da fonte (font-size) do
elemento pai.
No bloco acima temos um <p> que está dentro de uma <div>. Diz-se então, neste caso, que a <div> é pai de <p>. Portanto, se
utilizarmos o em como medida para o tamanho da fonte do texto “Parágrafo”, dentro de <p>, a fonte terá o número informado de
vezes a medida da fonte estipulada para <div>. Por exemplo, se <div> tem font-size: 16px, então 2em são 32px.
Módulo 6 – Dimensões e unidades no CSS (5/8)
000 000
264
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Root em (rem): Parecido com o em, o rem tem tamanho relativo ao elemento raiz do documento, ou seja, o <html>. Então, se o em
olha para o tamanho da fonte do elemento pai, rem olhará para o tamanho da fonte do elemento <html>. É bem útil para manter
uma escala de tamanho de fontes consistente.
Módulo 6 – Dimensões e unidades no CSS (6/8)
000 000
265
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• Porcentagem(%): Unidade também relativa ao tamanho do elemento pai. A unidade define que o tamanho correspondente deve
ser a porcentagem indicada do tamanho do elemento pai.
Exemplo:
DICA
Apesar de em e rem serem
relativos ao tamanho da fonte,
seu uso pode ser aplicado à
qualquer propriedade que
requeira uma unidade de
medida.
000 000
266
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Dimensões e unidades no CSS (7/8)
DICA
Para facilitar os cálculos com a
unidade rem, uma dica é definir
como 10px (ou 62.5%) o font-size
do html, tornando os cálculos de
uso subsequentes mais simples.
000 000
267
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Dimensões e unidades no CSS (8/8)
Módulo 6 – Pseudo-classes (1/6)
000 000
268
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Pseudo-classes são propriedades adicionadas à um seletor que definem um estado especial em que o elemento se encontra. Seu uso
mais interessante é que elas definem estilos ao elemento de maneira dinâmica, ou seja, aplicam o estilo a partir do estado em que o
elemento se encontra.
Exemplo:
A pseudo-classe hover modifica um elemento quando o mouse passa sobre ele. No exemplo acima, o CSS modifica a cor de <p>.
Módulo 6 – Pseudo-classes (2/6)
000 000
269
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Pela grande quantidade de pseudo-classes, é mais sensato utilizar uma referência conforme suas necessidades de desenvolvimento.
A referência da MDN (Mozilla Developer Network) pode ser bem útil: https://developer.mozilla.org/pt-BR/docs/Web/CSS/Pseudo-
classes
Entretanto, algumas pseudo-classes são mais comuns e é importante que seu uso seja mais familiarizado. Dentro destas, temos a
LVHA, uma sigla para Link Visited Hover Active. Se trata de um grupo de pseudo-classes cujo uso é muito importante para estilizar
as diferentes interações com links/âncoras (<a>).
• :link - Aplica estilos à links ainda não visitados.
https://developer.mozilla.org/pt-BR/docs/Web/CSS/Pseudo-classes
https://developer.mozilla.org/pt-BR/docs/Web/CSS/Pseudo-classes
Módulo 6 – Pseudo-classes (3/6)
000 000
270
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• :visited – Aplica estilos à links que já foram visitados ao menos uma vez.
Módulo 6 – Pseudo-classes (4/6)
000 000
271
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• :hover – Aplica estilos à links quando o mouse paira sobre eles. Vale ressaltar que o :hover não tem uso exclusivo para tratamento
de âncoras (<a>), podendo ser usado em outros tipos de elementos.
Módulo 6 – Pseudo-classes (5/6)
000 000
272
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• :active – Aplica estilos à links quando o link se torna ativo, o que significa quando o mouse efetivamente clica sobre ele.
Módulo 6 – Pseudo-classes (6/6)
000 000
273
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O CSS permite livre estilização dos links em seus diferentes estados, porém normalmente o que é feito é estilizar de maneira conjunta
os estados :link e :visited, e os estados :hover e :active.
Módulo 6 – Pseudo-elementos (1/7)
000 000
274
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como as Pseudo-classes, os Pseudo-elementos são também propriedades adicionadas à um seletor, porém com propósito diferente.
Os Pseudo-elementos vão servir para representar um elemento filho do seletor associado, servindo assim váriosfins, como modificar a
primeira linha de um bloco de texto, por exemplo. O exemplo abaixo mostra uma das aplicações dos pseudo-elementos, onde o
pseudo-elemento ::first-line é utilizado para estilizar a primeira linha de um texto.
Exemplo:
Módulo 6 – Pseudo-elementos (2/7)
000 000
275
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os principais Pseudo-elementos são:
• ::after – Adiciona conteúdo diretamente depois do conteúdo de um elemento. Frequentemente usado em combinação com a
propriedade content.
Exemplo:
Módulo 6 – Pseudo-elementos (3/7)
000 000
276
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• ::before – Adiciona conteúdo diretamente antes do conteúdo de um elemento. Também é frequentemente usado em combinação
com a propriedade content.
Exemplo:
DICA
Com o uso de ::after ou ::before o
conteúdo do texto não faz parte do
html, apesar de parecer o contrário.
Isso faz com que aquele trecho de
content seja não selecionável pelo
mouse.
000 000
277
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Pseudo-elementos (4/7)
Módulo 6 – Pseudo-elementos (5/7)
000 000
278
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• ::first-letter – Estiliza a primeira letra de um bloco de texto.
Exemplo:
Módulo 6 – Pseudo-elementos (6/7)
000 000
279
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• ::first-line – Estiliza a primeira linha de um bloco de texto.
Exemplo:
Módulo 6 – Pseudo-elementos (7/7)
000 000
280
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como com as Pseudo-classes, os tipos de Pseudo-elementos são muitos e por conta disso se faz necessário consultar conforme a
necessidade algum referência de uso dos diferentes tipos de Pseudo-elementos que são aceitos normalmente pelos navegadores.
Recomenda-se usar quando necessário a referência da MDN: https://developer.mozilla.org/pt-BR/docs/Web/CSS/Pseudo-elements
Também é recomendado evitar os tipos que tem a seguinte simbologia na referência da MDN:
• : O símbolo significa que o recurso ainda é experimental e pode não funcionar.
• (inglês) ou (en-us): Significa que o recurso está disponível apenas na língua inglesa.
https://developer.mozilla.org/pt-BR/docs/Web/CSS/Pseudo-elements
Módulo 6 – Seletor universal e herança de estilos (1/5)
000 000
281
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O seletor universal é um tipo de seletor que seleciona todos os elementos dentro do documento, permitindo aplicar um estilo geral a
todos eles. É útil para definir estilos padrão que serão aplicados a todos os elementos de uma página. Ele é definido como um “*”
(asterisco). No exemplo abaixo usamos o seletor universal para definir a cor de todos os elementos da página.
Exemplo:
Módulo 6 – Seletor universal e herança de estilos (2/5)
000 000
282
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vale lembrar que o seletor universal é o seletor com mais baixa prioridade dentre os seletores:
Menor Maior
Prioridade Prioridade
Por isso, qualquer outro seletor será mais especifico, e irá sobrescrever o estilo do seletor universal.
Exemplo:
Módulo 6 – Seletor universal e herança de estilos (3/5)
000 000
283
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Uma prática comum é sempre utilizar o seletor universal para resetar alguns padrões da página, permitindo então consistência de
estilo em qualquer navegador. Essa prática é conhecida como CSS Reset.
No trecho acima nós zeramos os espaçamentos de margin e padding em todo conteúdo da página. Isso irá garantir que,
independentemente dos padrões do navegador, o layout da página seja consistente. Posteriormente veremos ainda que mais um
estilo pode ser adicionado para garantir essa consistência de layout em diferentes navegadores.
Módulo 6 – Seletor universal e herança de estilos (4/5)
000 000
284
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A herança de estilos é um conceito dentro do CSS onde alguns estilos aplicados a elementos pai são automaticamente passados para
elementos filhos. Este conceito é muito importante para ajudar a estilizar páginas de maneira mais prática e coesa, permitindo que
estilos comuns sejam aplicados aos elementos.
Exemplo:
O elemento <body> abriga dos elementos <h1>, <h2> e <p>, fazendo destes três filhos de <body>. O Seletor body aplica o estilo “color:
red;”, que consequentemente é herdado pelos filhos de <body>.
Módulo 6 – Seletor universal e herança de estilos (5/5)
000 000
285
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Esse tipo de herança é facilmente sobrescrito com o uso de algum seletor mais específico. Vale lembrar da regra que quanto mais
específico o seletor, maior sua prioridade.
Exemplo:
Apesar de haver uma herança de <body> ao <h1> para que a cor seja vermelha, essa estilização é sobrescrita pelo seletor h1, já que é o
seletor mais específico, fazendo que a cor de <h1> seja verde.
Módulo 6 – Box Model no CSS (1/5)
000 000
286
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Box Model é um conceito do CSS que nos permite entender como os elementos são dispostos em uma página web, combinando o
conteúdo, o padding, a borda e a margem para determinar o espaço que o elemento ocupa.
É composto por 4 áreas principais:
• Content – Área onde o conteúdo é exibido.
• Padding – Espaço interno do elemento, ficando entre o conteúdo e a borda.
• Border – Linha ao redor do padding e do conteúdo, tendo algumas propriedades como largura, estilo e cor.
• Margin – Espaço fora do elemento que separa o elemento de outros.
Módulo 6 – Box Model no CSS (2/5)
000 000
287
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Exemplo:
Note abaixo que criamos um seletor div, onde foi estabelecida uma borda de estilo sólido (solid), com largura de 2px e da cor preta.
Colocamos ainda um padding de 1rem, que como vimos anteriormente é uma unidade de medida relativa.
Módulo 6 – Box Model no CSS (3/5)
000 000
288
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O CSS entende o Box Model em duas grandes formas:
• Content Box – É o box model padrão, onde o CSS calcula e determina o tamanho da caixa com base no conteúdo.
Exemplo:
Repare que apesar de especificarmos que a altura (height) deveria ser de 20rem (no caso, equivalente à 200px), nosso conteúdo ficou
com um total de 224px de altura. Isso ocorreu porque o Content Box define o conteúdo como 20rem, mas é acrescido de 4px da
borda (definida em 2px, mas ela tem altura e largura, logo 4px) e 1rem de padding (que será equivalente à 10px, mas que com altura
e largura resultará em 20px). Isso então resulta em nosso conteúdo tendo 224px de altura.
Módulo 6 – Box Model no CSS (4/5)
000 000
289
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A outra forma é o Border Box.
• Border Box – O tamanho que o CSS irá calcular será definido com base no conteúdo, padding e borda. Isso significa que o
tamanho especificado da box deverá abrigar todo o conteúdo, padding e borda.
Exemplo:
Note que ao utilizar box-sizing: border-box, o CSS mudou o padrão para calcular as caixas de conteúdo, e agora, mesmo mantendo
todos os outros padrões de tamanho (padding com 1rem e borda de 2px), o nosso conteúdo manteve a altura especificada de 20rem
(ou 200px para este caso). Esse tipo de abordagem permite um controle mais fácil do tamanho dos elementos de nossos layouts.
DICA
Utilize dos conceitos vistos até aqui
para iniciar o desenvolvimento de
seu layout dentro de padrões pré-
estabelecidos. Isso ajuda a manter
seu layout consistente em qualquer
tipo de navegador.
000 000
290
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Box Model no CSS (5/5)
Módulo 6 – Sombras (1/5)
000 000
291
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As sombras são uma poderosa ferramenta do CSS para adicionar profundidade e estilo aos layouts de suapágina web. A propriedade
utilizada é a box-shadow e seus valores são:
• offset-x: A posição da sombra no eixo horizontal, onde valores positivos são para a direita e negativos para a esquerda.
• offset-y: A posição da sombra no eixo vertical, respeitando também as regras de valores positivos para direita e negativos para a
esquerda.
• blur-radius: É um parâmetro opcional, e define o raio de desfoque da sombra.
• spread-radius: Outro parâmetro opcional, ele define o raio de propagação da sombra. Isso significa que ele move o tamanho da
sombra em relação ao elemento que gera essa sombra. Também aceita valores negativos se a intenção foi diminuir o tamanho do
raio de propagação.
• color: A cor da sombra. Para sombras pode ser mais interessante utilizar o padrão RGBA, que permite o controle de transparência
da cor, dando um efeito visual mais interessante.
• inset: Por padrão as sombras são sempre geradas de maneira externa ao elemento. O inset faz com que a sombra fique interna ao
elemento e quando usado deve ser adicionado como primeiro parâmetro da propriedade.
Esses valores devem ser colocados na seguinte ordem, mantendo atenção aos valores opcionais:
Módulo 6 – Sombras (2/5)
000 000
292
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Exemplo:
Utilização mínima de sombras (sem parâmetros opcionais).
Módulo 6 – Sombras (3/5)
000 000
293
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Exemplo:
Utilização de sombras com os principais parâmetros.
Módulo 6 – Sombras (4/5)
000 000
294
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Exemplo:
Utilização de sombras com inset.
Módulo 6 – Sombras (5/5)
000 000
295
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Você pode adicionar vírgula (“,”) e dar sombras múltiplas ao elemento.
Exemplo:
Módulo 6 – Elementos arredondados (1/3)
000 000
296
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para dar um toque suave e moderno aos seus elementos, o CSS permite utilizar a propriedade border-radius para dar cantos
arredondados aos seus elementos. Essa propriedade aceita um valor que determina quão arredondada a borda deve se tornar. Este
valor pode estar em pixels, em ou qualquer outra unidade que vimos até aqui. Quanto maior o valor, mais arredondado o elemento
fica.
Exemplo:
Módulo 6 – Elementos arredondados (2/3)
000 000
297
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Em elementos quadrados você consegue aumentar o valor de border-radius até que o elemento fique totalmente circular. Caso use
porcentagens (“%”) como unidade de medida, você vai alcançar isso com valor de 50%.
Exemplo:
Módulo 6 – Elementos arredondados (3/3)
000 000
298
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Dependendo das dimensões do elemento ele pode ao invés de circular, se tornar um elemento oval.
Exemplo:
Módulo 6 – Tipos de visualização (1/7)
000 000
299
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A propriedade display nos permite controlar como os elementos são exibidos numa página. Essa propriedade aceita diferentes
valores, porém veremos aqui os principais.
• block – Uma forma de visualização em que o elemento irá ocupar todo o espaço horizontal da página e causando quebra de linha.
Este tipo de visualização é o padrão em alguns elementos, como <h1>, <div> e <p>. Abaixo um exemplo em que <h1> está
ocupando todo o espaço horizontal, quebrando a linha, forçando <a> para a linha abaixo.
Exemplo:
Módulo 6 – Tipos de visualização (2/7)
000 000
300
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• inline – Nesta forma de visualização o elemento irá ocupar apenas o espaço horizontal que é necessário. Este tipo de visualização é
o padrão em alguns elementos, como <span> e <a>. Abaixo um exemplo em que a visualização de <h1> foi modificada para que
ocupasse apenas o espaço que fosse preciso com o uso de inline. Note que o <a> agora está ao lado de <h1>. Isso se deve ao fato de
que, diferente de block, o inline não gera quebra de linha (ele tenta colocar todos os elementos em uma única linha).
Exemplo:
Módulo 6 – Tipos de visualização (3/7)
000 000
301
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Ainda sobre o inline, vale ressaltar que ele interfere no funcionamento do box-model, que vimos anteriormente. Quando trabalhamos
com display: inline, os conceitos de box-model (largura e altura) não funcionam.
Exemplo:
O aviso diz: “A propriedade display: inline impede que
height tenha efeito.”
Módulo 6 – Tipos de visualização (4/7)
000 000
302
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Outra característica sobre o inline, é que quando ele sofre alterações na sua margin ou padding, essas alterações de estilos são
aplicadas somente na horizontal, com alterações verticais sendo ignoradas. Isso já podia ser notado no <a>, onde a margem (parte
alaranjada) era apenas na horizontal.
Exemplo:
Módulo 6 – Tipos de visualização (5/7)
000 000
303
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• inline-block: Esse valor vai combinar os tipos de visualização de block e inline, respeitando as larguras e alturas definidas, mas não
gerando a quebra de linha. Note abaixo como a margem foi aplicada à todos os lados da âncora (<a>).
Exemplo:
Módulo 6 – Tipos de visualização (6/7)
000 000
304
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• none: Quando utilizado ele vai tornar oculto o elemento. O elemento ainda existe no html, porém se torna invisível, não ocupando
espaço na página.
Exemplo:
Módulo 6 – Tipos de visualização (7/7)
000 000
305
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Recapitulando:
• block
• Ocupa todo o espaço horizontal.
• Causa quebra de linhas.
• O box-model se aplica.
• Padding e margin funcionam normalmente.
• inline
• Ocupa apenas o espaço do conteúdo.
• Não causa quebra de linhas (elementos ficam lado a lado).
• Box-model não se aplica.
• Padding e margin só funcionam na horizontal.
• inline-block
• Ocupa apenas o espaço do conteúdo.
• Não causa quebra de linhas (elementos ficam lado a lado).
• O box-model se aplica.
• Padding e margin funcionam normalmente.
• none
• Elemento fica oculto e não ocupa espaço na página.
Módulo 6 – Tipos de posicionamento(1/7)
000 000
306
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos aprender a utilizar a propriedade position para
controlar a posição de elementos em nossa página web. Essa
propriedade aceita diversos valores que conseguem afetar a
localização dos elementos no documento HTML. Os mais
comuns são:
• position: static – Este é o tipo de posicionamento padrão
do CSS, e por isso é o que temos utilizado até então em
nossos exemplos. Os elementos são posicionados de acordo
com o fluxo normal do documento. Ele não é afetado pelas
propriedades top, right, bottom e left, que veremos mais
adiante.
• position: relative – O elemento é posicionado em relação
ao seu posicionamento original no documento. Ele deve ser
utilizado em conjunto com as propriedades top, right,
bottom ou left, para deslocar o elemento na direção e valor
citados a partir da sua posição original.
Exemplo: Mover um elemento a partir de sua posição
original.
Vemos no código ao lado que criamos um quadrado laranja
com um link dentro. Vamos mover o elemento <a> dentro do
quadrado.
Módulo 6 – Tipos de posicionamento(2/7)
000 000
307
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para mudar o link de posicionamento usaremos o position: relative, acompanhado das propriedade top e left, com os valores de espaço
que desejamos mover o elemento. Note que ele foi movido em relação à sua posição original e agora ele não está mais colado ao canto
superior esquerdo do quadrado.
Módulo 6 – Tipos de posicionamento(3/7)
000 000
308
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• position: absolute – O elemento é posicionado em relação ao elemento ancestral (elemento pai, pai do pai, e assim por diante) mais
próximo que tenha um posicionamentodefinido. Se nenhum ancestral tiver posicionamento definido, ele será posicionado em
relação ao corpo do documento (<body>).
Exemplo:
Módulo 6 – Tipos de posicionamento(4/7)
000 000
309
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Tente notar no exemplo anterior que a âncora foi movida para o final da página. Quando colocamos que o posicionamento é absoluto
(position: absolute) o CSS irá buscar pelo pai mais próximo que tem uma posicionamento definido. Ou seja, o CSS, a partir do <a>
buscou no <p> e não encontrou nenhum posicionamento definido. O CSS então foi ao pai anterior, que é a <div>, onde também não há
posicionamento. Sem mais para quem voltar, o CSS elegeu então o <body> como elemento de referência.
As propriedades bottom: 0rem e left: 3rem definem que, a partir do elemento de referência, este elemento deve estar à 0rem do
bottom (parte de baixo) e à 3rem do left (lateral esquerda). Por isso o link ficou naquela posição ao final do documento.
Módulo 6 – Tipos de posicionamento(5/7)
000 000
310
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Se colocarmos uma posição ao elemento <div>, que cria o nosso quadrado laranja, a âncora irá se mover em relação à ele e ficará na base
do quadrado com um pequeno distanciamento da lateral esquerda.
Módulo 6 – Tipos de posicionamento(6/7)
000 000
311
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• position: fixed – Essa propriedade torna os elementos posicionados em relação ao viewport (janela de visualização ou navegador).
O elemento fica fixado na posição indicada, mesmo que a página seja rolada.
Módulo 6 – Tipos de posicionamento(7/7)
000 000
312
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• position: sticky – Essa propriedade posiciona o elemento como relative ou fixed, dependendo da posição de rolagem da página.
Ao passar por esse elemento ao rolar a página, o elemento se torna fixed e se mantém naquela posição.
Módulo 6 – Background Color e Image (1/11)
000 000
313
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para manipular o fundo de um elemento com o CSS, utilizamos da propriedade background-color e background-image para,
respectivamente, alterar a cor de fundo ou adicionar uma imagem ao fundo de um elemento. Veremos como utilizar destas
propriedades para criar gradientes e estilizar de forma mais profissional nossas páginas web.
• background-color: Define a cor de fundo de um elemento. Aceita receber várias formas de especificação de cor, como nome das
cores, valores hexadecimais, RGB ou RGBA.
Exemplo:
Módulo 6 – Background Color e Image (2/11)
000 000
314
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• background-image: Essa propriedade aceita um diverso campo de valores, todos com o objetivo de definir de alguma forma a
imagem que ficará ao fundo do elemento. Tem diversos usos, opções e combinações com outras propriedades, e por isso veremos
apenas os principais casos. É recomendado consultar a documentação da MDN quando necessário:
https://developer.mozilla.org/en-US/docs/Web/CSS/background-image .
Exemplo:
Neste exemplo, utilizamos url para indicar um endereço onde a imagem se encontra e
será carregada na página.
https://developer.mozilla.org/en-US/docs/Web/CSS/background-image
Módulo 6 – Background Color e Image (3/11)
000 000
315
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Dentro desta propriedade temos algumas opções, como adicionar um gradiente de cor ao elemento. Essa opção pode dar efeitos
interessantes de cor. Usaremos como valor a expressão linear-gradient, que cria uma transição de cor ao longo do elemento, onde a
direção é dada em graus (unidade deg). Com 0deg temos uma transição a partir da cor final, de cima para baixo.
Exemplo:
Módulo 6 – Background Color e Image (4/11)
000 000
316
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Abaixo usamos o valor 180deg, que fará a transição de cima para baixo a partir da cor inicial.
Exemplo:
Módulo 6 – Background Color e Image (5/11)
000 000
317
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Com o valor de 90deg temos uma transição da esquerda para a direita, a partir da cor inicial.
Exemplo:
Módulo 6 – Background Color e Image (6/11)
000 000
318
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Já com o valor de 45deg temos uma transição que irá na diagonal. Abaixo o exemplo usa cores com maior contraste para melhor
demonstrar o efeito.
Exemplo:
Módulo 6 – Background Color e Image (7/11)
000 000
319
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• background-position: Quando adicionamos uma imagem e ela é grande demais, pode ser interessante especificar a área da
imagem que você deseja utilizar. Se retomarmos o exemplo inicial, veja que o fundo é completamente roxo, mas que a imagem
original tem bem mais conteúdo.
Imagem originalImagem recortada
Caso você deseje utilizar uma área específica da imagem, é possível utilizar a propriedade background-position que irá definir a
posição inicial da imagem. A seguir, note no exemplo que utilizamos da propriedade para que o recorte da imagem de fundo pudesse
abranger a parte roxa e a branca.
Módulo 6 – Background Color e Image (8/11)
000 000
320
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Exemplo:
Módulo 6 – Background Color e Image (9/11)
000 000
321
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• background-size: Irá definir o tamanho da imagem de fundo do elemento. A imagem pode ser mantida em seu tamanho original,
esticada por todo o container ou contida para caber no espaço do container. No caso abaixo utilizamos o contain para que a
imagem fosse contida no espaço do elemento. Porém, note que para preencher todo o espaço de fundo, a imagem teve de ser
repetida.
Exemplo:
Módulo 6 – Background Color e Image (10/11)
000 000
322
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Com a utilização do valor cover nesta propriedade, forçaremos a imagem a cobrir todo o espaço do container.
Exemplo:
Módulo 6 – Background Color e Image (11/11)
000 000
323
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
• background-repeat: Essa propriedade irá definir como as imagens de fundo serão repetidas. Como vimos anteriormente, o CSS
pode por padrão repetir imagens dentro de um container. Com essa propriedade podemos definir se ela deve ser repetir
totalmente, apenas em uma direção ou nem sequer se repetir. Veja no exemplo abaixo que removemos a repetição que ocorria
quando utilizávamos background-size: contain.
Exemplo:
Módulo 6 – Desafio 1 (1/1)
000 000
324
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Está na hora de colocar em prática o que já vimos até aqui. Nesta seção apresentaremos o primeiro desafio deste módulo, e te
convidamos a solucionar sozinho o problema apresentado. Tentar solucionar esses desafios não só é divertido como contribui para seu
aprendizado.
Você encontrará o arquivo com o desafio na seção Download da página do desafio. Baixe o arquivo e terá a descrição do que precisa
ser feito. Para este desafio, apesar de ser uma forma de treinar seus conhecimentos em CSS, necessitará de algumas modificações no
HTML.
Ao final do desafio você terá colocado em prática os conhecimentos avançados de CSS que adquiriu ao longo deste módulo. Bom
divertimento!
Módulo 6 – Desafio 1 – Fazendo juntos (1/18)
000 000
325
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O desafio começa pedindo que a página seja dividida em seções. Deve lembrar da aula de estrutura dos documentos, onde vimos a
divisão da página em footer, header, a divisão não semântica, como <section> e <div>. Note que também deixamos uma dica para
essa parte do desafio.
Essa grande seção será o <main>, que abrigará o conteúdo principal de nossa página. A tag de abertura virá imediatamente após a
<body> e será fechada imediatamente antes da </body>.
Módulo 6 – Desafio 1 – Fazendo juntos (2/18)
000 000
326
HTML E CSS IMPRESSIONADOR I HASHTAGPROGRAMAÇÃO
Nossas três seções menores já estão basicamente divididas: são os <h2> que utilizamos para as partes de preço, condições e
características. Para esta página usaremos o <section>.
O primeiro <section> irá conter toda a parte de preço, como vemos abaixo.
Módulo 6 – Desafio 1 – Fazendo juntos (3/18)
000 000
327
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Nossa segunda seção irá ficar contida logo abaixo, na parte
que se refere às condições.
Por fim, a última seção contém as características, até depois
do último <ul>.
Módulo 6 – Desafio 1 – Fazendo juntos (4/18)
000 000
328
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para a próxima parte do nosso desafio, iremos alterar nossa página web de forma a zerar os padrões do HTML e implementar nossa
própria formatação. Lembre-se que esta medida tem como objetivo tornar a visualização mais uniforme entre os diferentes
navegadores.
Vamos utilizar o nosso seletor universal * para definir o padding, margin e o box-sizing.
Módulo 6 – Desafio 1 – Fazendo juntos (5/18)
000 000
329
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Depois usaremos a herança de estilos para estilizar todos os elementos do documento. Lembre-se que a herança de estilos define que
uma alteração em um elemento pai afeta todos os seus elementos filhos. Por isso modificaremos o <body> para que nossa estilização
de fonte persista por todo o documento.
Note que, como pediu o desafio, utilizamos medidas em px, mas o mais correto é alterar a raiz do documento e utilizar medidas
relativas, que mudam dinamicamente. O desafio pede isso na sequência. Vale lembrar que a raiz do documento é o html.
Módulo 6 – Desafio 1 – Fazendo juntos (6/18)
000 000
330
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para mudar a unidade de px para rem, lembre-se que basta dividir o tamanho por 10. Por exemplo, se no documento o tamanho era
de 18px, você deverá mudar para 1.8rem. Faça isso em toda a folha de estilos, padronizando todas as fontes num tamanho relativo.
Módulo 6 – Desafio 1 – Fazendo juntos (7/18)
000 000
331
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Lembre-se do conceito de herança de estilos. Quando um estilo é aplicado à um elemento, os elementos filhos herdam os mesmo
estilos. Isso significa que algumas estilizações se tornam desnecessárias, porque elas já vão herdar as estilizações de seus elementos
pai. Vamos remover essas estilizações desnecessárias.
Reforçando, a remoção do trecho acima torna o nosso arquivo mais enxuto e fácil de realizar manutenções. Os estilos que excluímos já
serão herdados de outros seletores.
Módulo 6 – Desafio 1 – Fazendo juntos (8/18)
000 000
332
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é modificar nossas seções. Ao todo fizemos uso de três <sections>, então vamos criar um seletor que modifique o
espaçamento interno de cada uma dessas seções em 24px, como é pedido no desafio.
Lembrando que apesar do desafio especificar o tamanho de 24px, utilizamos como unidade padrão o rem, que sendo uma unidade
relativa, garante a integridade e padronização do nosso documento.
Módulo 6 – Desafio 1 – Fazendo juntos (9/18)
000 000
333
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Quando nos referimos ao espaçamento externo queremos dizer a margin, e inferior ao bottom. Sendo assim, vamos fazer as
modificações pedidas.
Módulo 6 – Desafio 1 – Fazendo juntos (10/18)
000 000
334
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos salvar as modificações que realizamos e observar atentamente nossa página. Repare que nossa âncora está com um
comportamento estranho.
Apesar de termos adicionado o margin-bottom como pedido no desafio, ela não está adequadamente posicionada na página. Isso
ocorre pelo tema que vimos neste módulo dos tipos de visualização. Por padrão o CSS irá apresentar os elementos com display: inline,
que como vimos, não permite padding ou margin verticais. Por isso o valor de margin-bottom não parece modificar o elemento.
Para resolver este problema, temos de mudar o tipo de visualização para inline-block. O block não nos faria sentido, pois para âncoras
não queremos causar alguns efeitos típicos do block, como quebra de linha.
Módulo 6 – Desafio 1 – Fazendo juntos (11/18)
000 000
335
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Depois disso, temos a seguinte instrução:
Para este caso iremos modificar o seletor figcaption, alterando o espaçamento externo (margin), e depois alterando a mesma
propriedade no seletor ul.
Módulo 6 – Desafio 1 – Fazendo juntos (12/18)
000 000
336
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo com o desafio, vamos modificar a página retirando as linhas de divisão <hr> de nossa página, porém utilizando apenas o CSS.
Isso é facilmente realizado utilizando uma das formas de visualização que aprendemos nesse módulo. Vamos utilizar do display: none
para fazer com que a quebra temática <hr> desapareça. Faça isso no arquivo da folha de estilos.
Módulo 6 – Desafio 1 – Fazendo juntos (13/18)
000 000
337
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para o próximo passo faremos uso de nosso aprendizado com Pseudo-elementos, para transformar a primeira letra de um elemento.
Uma outra forma de alterar isso seria colocando a primeira letra do <h1> dentro de um <span> porém o desafio aqui é fazer isso
usando apenas o CSS. Para alterar apenas a primeira letra, o pseudo-elemento usado é o ::first-letter.
Módulo 6 – Desafio 1 – Fazendo juntos (14/18)
000 000
338
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No próximo passo teremos de lembrar da sigla vista no estudo sobre pseudo-classes deste módulo, a LVHA. A sigla significa Link
Visited Hover Active, que são as pseudo-classes usadas no momento de estilizar links. Basicamente, iremos personalizar o link de
nossa página de forma que eles mudem de estilo quando são links não visitados, quando já foram visitados, quando o mouse passa
sobre eles e quando eles se tornam ativos (no momento do click). Veja abaixo:
Módulo 6 – Desafio 1 – Fazendo juntos (15/18)
000 000
339
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O primeiro passo para esta etapa do desafio é criar uma <div> que irá agrupar o conteúdo de nossa seção. Nossos estilos serão
aplicados neste bloco, então daremos uma classe à esse bloco. Usaremos a classe div-condicoes, e criaremos um seletor para ela.
Para que o bloco ocupe apenas o tamanho de seu conteúdo, usaremos o display: inline-block.
Módulo 6 – Desafio 1 – Fazendo juntos (16/18)
000 000
340
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Após isso seguiremos nessa etapa, alterando a cor de fundo, fonte e adicionando uma sombra, conforme instruções. Além disso, temos
de tornar as bordas do elemento arredondas. Aqui vale lembrar dos valores da propriedade box-shadow, que adicionará a sombra ao
elemento. O desafio pede que tenhamos nenhum deslocamento horizontal ou vertical, e 16px de raio de desfoque e 4px de raio de
propagação. Isso exige que utilizemos os quatro valores da propriedade, que na ordem é: deslocamento horizontal, vertical, desfoque e
propagação.
O padding será modificado apenas na vertical e horizontal, então dois valores bastarão.
Por fim, a propriedade border-radius definirá o arredondamento.
Módulo 6 – Desafio 1 – Fazendo juntos (17/18)
000 000
341
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para a última etapa deste desafio, iremos combinar seletores de forma a criar mais especificidade. Ao combinar seletores, podemos
tornar a estilização mais especifica, fazendo ela ganhar prioridade sobre estilo herdados.
Vamos combinar os dois seletores mencionados e criar um novo seletor, mais especifico. Dentro deles, aplicaremos o estilo que foi
pedido.
Pela regra de especificidade, essa alteração valerá apenas para os elementos da classe .realce-italico ou .realce-underline dentro da
classe .div-condicoes.
Módulo 6 – Desafio 1 – Fazendojuntos (18/18)
000 000
342
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para o bônus do desafio, utilizaremos os conceitos da aula de tipos de posicionamento para criar um símbolo do whatsapp que está
sempre visível na tela. Primeiro vamos criar um elemento no nosso html com a imagem que queremos. A imagem está no link
https://www.hashtagtreinamentos.com/wp-content/uploads/2023/06/whatsapp-logo-2.png . Iremos colocar também um link que
abrirá no whatsapp web.
Criamos então um seletor onde definimos o tamanho do elemento em 85px e tornamos ele fixo na página. Deixaremos um espaço de
1px nas laterais para que o símbolo do whatsapp não fique encostando nas bordas da tela.
https://www.hashtagtreinamentos.com/wp-content/uploads/2023/06/whatsapp-logo-2.png
Módulo 6 – Desafio 2 – Aprofundando no desafio 2 (1/1)
000 000
343
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora é hora de encarar o desafio 2. Lembre-se de baixar o arquivo do desafio na página do curso e tentar colocar em prática o
conteúdo aprendido até agora. Se atente aos temas que verá nesse desafio.
Lembre-se que o objetivo final é ter uma página parecida com a da https://www.hashtagtreinamentos.com/ . Boa diversão!
https://www.hashtagtreinamentos.com/
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (1/11)
000 000
344
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos começar o desafio definindo os padrões globais que aprendemos. Isso significa definir os espaçamentos e tamanhos padrões
da página.
Depois disso o passo e substituir no restante de nosso arquivo CSS os padrões de valores de pixel (px) para rem.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (2/11)
000 000
345
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Lembre-se que se utilizar o padrão de 62.5% para o tamanho da fonte do documento, transformar uma medida de px para rem é
simplesmente dividir o valor por 10. Aplique essa modificação em todos os pontos que utilizem px como unidade.
Serão muitos pontos alterados, então usar o atalho Ctrl + F irá te permitir buscar no documento por uma palavra específica. Busque
por px e substitua em todos os pontos.
Você pode, no caminho, ir apagando os comentários que ficaram de outros momentos do desafio, para tornar mais navegável o
arquivo.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (3/11)
000 000
346
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo para o cabeçalho é replicar a interação dos elementos do menu com o usuário. A primeira coisa que notamos é o uso
de pseudo-classes quando passamos com o mouse pelos elementos.
Inspecione o elemento para obter a cor que está sendo utilizada. Para forçar o estado de hover, clique no ícone :hov e selecione o
estado desejado.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (4/11)
000 000
347
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Lembre-se de aplicar o LVHA: Link Visted Hover Active. Para o design que estamos fazendo, Link e Visited não serão usados.
A razão de adicionarmos o .item-lista-cabecalho na frente da pseudo-classe se deve ao fato que já estamos usando uma outra
estilização para este elemento.
Por conta da regra de especificidade, somos obrigados a adicionar a classe .item-lista-cabecalho para garantir o funcionamento
esperado.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (5/11)
000 000
348
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo com o cabeçalho, repare que temos mais uso de pseudo-classes.
A mudança da seta para baixo é feita utilizando a pseudo-classe ::after. Para saber como escrever a seta utilizando o CSS você pode
procurar no google ou utilizar a referência: https://symbl.cc/en/ e buscar por down triangle. O código para este símbolo é U+2BC6, mas
no CSS usaremos apenas a parte após o “+” e precedido de uma contrabarra (\). Se seu teclado não tem uma contrabarra, use Alt + 92.
https://symbl.cc/en/
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (6/11)
000 000
349
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Adicione então uma nova classe ao documento HTML, no elemento que conterá o sub-menu com os elementos filhos.
No CSS vamos estilizar a classe para quando a ação ::after for executada, colocando primeiro o conteúdo que será exibido.
Essa modificação já irá apresentar a seta para baixo na nossa página, mas como ainda não conseguimos criar todo o layout que
“esconde” os elementos filhos, deixaremos para ajustar essa parte numa aula futura.
Não se esqueça de incluir a classe contem-filhos no elemento responsável pela área de contatos no HTML.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (7/11)
000 000
350
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo com o desafio, vamos agora mexer um pouco com os espaçamentos. Apesar de podermos copiar apenas os espaçamentos
que existem na página oficial da Hashtag, é interessante saber que esses espaçamentos não são escolhidos de forma arbitrária.
Existem algumas tabelas de referência que ditam quais tamanhos usar dependendo do seu tamanho inicial, para assim garantir uma
página com espaçamentos e tipografia visualmente harmônica. Uma dessas páginas de referência é a https://typescale.com/ .
Para o desafio utilizaremos as escalas Minor Third para as fontes e Major Third para espaçamentos. Você pode obter os valores desta
escala no site mencionado ou seguir o comentário deixado no gabarito do desafio.
https://typescale.com/
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (8/11)
000 000
351
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Crie uma classe .cabecalho e adicionar esta ao elemento header.
Depois estilize utilizando as medidas que vimos no typescale. Você pode experimentar alguns valores até encontrar o espaçamento
que mais te agrada, mas seguiremos aqui com as medidas 1.6rem e 3.12rem, e se necessário podemos voltar depois para ajustar.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (9/11)
000 000
352
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo para recriar nossa página da Hashtag é remover os bullets da nossa lista não ordenada. Para manipular o símbolo que
precede os itens da lista, utilizamos a propriedade list-style e para uma lista completa de opções, podemos recorrer à referência do
MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/list-style . Utilizaremos o valor none que deixará sem nenhum símbolo.
https://developer.mozilla.org/en-US/docs/Web/CSS/list-style
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (10/11)
000 000
353
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos adicionar uma sombra ao cabeçalho. Você pode criar sua própria sombra ou copiar diretamente os valores da sombra do
site da Hashtag.
Depois disso, vamos ainda alterar o cabeçalho para que ele tenha um comportamento parecido com o original. Note na página da
Hashtag que ao descer na página, o cabeçalho se move de junto. Outro ponto interessante é que o corpo da página vai “para trás” do
cabeçalho. Para ter esse mesmo comportamento usaremos o position: sticky. Colocaremos as posições top: 0 e left: 0 para que ele
comece no canto superior esquerdo na página (sem espaços acima ou à esquerda). Colocaremos também um fundo branco, que irá
“esconder” o corpo da página atrás do cabeçalho.
Módulo 6 – Desafio 2 – Aprofundando o Cabeçalho (11/11)
000 000
354
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Por enquanto estamos finalizados com o cabeçalho! Com certeza você já teve uma grande evolução. Na próxima etapa você irá
construir a seção Hero, e para que tenhamos espaço suficiente de visualização vamos esconder o cabeçalho. Mas não se preocupe! É
algo temporário, só enquanto não colocamos o cabeçalho na horizontal.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (1/15)
000 000
355
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para a seção Hero de nossa página, vamos seguir a estratégia de inicialmente modificar os elementos maiores e posteriormente
estilizar os elementos menores emais internos de toda a seção. Para o primeiro passo, iremos criar uma classe secao, que irá abrigar os
estilos padrões de cada seção e também a classe secao-hero que terá os estilos específicos da sessão hero. Em alguns casos pode não
ser válido tem uma classe secao, porque as sessões da página não necessariamente terá algo em comum entre si.
Lembrando que esses valores de padding foram retirados da nossa tabela do typescale, que mencionamos no desafio anterior, onde
trabalhamos em cima do cabeçalho.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (2/15)
000 000
356
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo o modelo da página da Hashtag, observamos que a seção hero contém uma classe chamada container que abriga seus
elementos mais internos. O interessante desta classe é o uso da propriedade max-width que irá definir um width máximo que o
elemento pode alcançar. Essa propriedade será vista em mais detalhes no módulo de responsividade.
De toda forma, vamos replicar este comportamento, definindo a classe container e seus estilos.
Agora, observe como o conteúdo do nosso elemento não está centralizado.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (3/15)
000 000
357
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Poderíamos tentar manualmente definir espaços laterais que tornassem o nosso conteúdo centralizado. Porém, o CSS já nos oferece
uma maneira mais prática de fazer isso. Utilizando o valor auto, o CSS irá calcular o total de pixels nos espaços laterais e dividir esse
valor por dois, colocando o elemento centralizado. Lembrando que deixamos o primeiro valor de margin como zero, porque não
queremos espaçamento verticais.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (4/15)
000 000
358
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é adicionar a imagem de fundo. Você deve usar a mesma imagem de fundo que visualiza na página da Hashtag e
para isso basta copiar o link da imagem, ou usar o seguinte link: https://www.hashtagtreinamentos.com/wp-
content/uploads/2022/06/BACKGROUN-banner-01.png .
Dessa vez o estilo será adicionado à classe .secao-hero, já que a imagem de fundo não é um padrão entre todas as seções para ficar na
classe .secao.
Contudo, isso não será suficiente. Para que você possa ter a imagem como na página da Hashtag, terá de fazer alguns ajustes. A
imagem está centralizada na seção e além disso está cobrindo todo o espaço, sem se repetir. Portanto, precisa fazer uso de mais
algumas propriedades.
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUN-banner-01.png
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUN-banner-01.png
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (5/15)
000 000
359
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Indo para os elementos mais internos de nossa seção, é hora de ajustar os botões. Note que no momento, os botões de nossa seção
mal parecem botões.
Então vamos estiliza-los de forma que tenham as bordas arredondadas e um preenchimento colorido, da mesma forma que no site
original.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (6/15)
000 000
360
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como os botões da página são parecidos, utilizaremos a classe .botao para os estilos gerais, como arredondamento. As cores e
gradientes deixaremos para cada classe de cada botão. Vamos utilizar um arredondamento de 3rem, lembrando sempre que essa
valor não é baseado em nenhuma escala, mas apenas um valor que combinou bem com o resultado que estamos buscando. Você
pode testar um pouco o valor do border-radius até ter um arredondamento que te agrade. O padding seguirá a escala que discutimos
anteriormente, mas você é livre para testar os valores abrangidos por ela.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (7/15)
000 000
361
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Notará que os botões ficarão sobrepostos com o iframe. Isso ocorre por conta do tipo de visualização. Como neste caso o tipo de
visualização padrão é o inline, os valores de espaçamento não irão “empurrar” os outros elementos. Será preciso mudar o tipo de
visualização para inline-block para que tenhamos o design esperado.
Com o inline-block o iframe será “empurrado” para baixo, não sobrepondo o botão. Vale lembrar que com o tipo de visualização inline-
block nós aplicamos o box-model ao elemento, mas ele ocupará apenas o espaço que é necessário.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (8/15)
000 000
362
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Continuando com a edição da classe .botao, é possível notar que mais algumas propriedades podem ser estabelecidas para que
tenhamos um botão padronizado. Todos os botões da página da Hashtag tem fonte de cor branca, por exemplo. Tente observar quais
outros padrões você pode notar entre os botões da página e tente finalizar essa classe. Note como a sombra só abrange o fundo e a
parte direita dos botões (como se a fonte de luz fosse o canto superior esquerdo).
Você pode inspecionar o elemento da página, mas o ideal é que brinque um pouco com os possíveis valores de sombra até ter algo
que fique agradável. No final deverá ter algo parecido com o que está abaixo.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (9/15)
000 000
363
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora iremos personalizar o botão desta seção. Isso significar aplicar um gradiente é cores especificas além de qualquer outro detalhe
que você note que não deve ficar na classe .botao. Crie o seletor .hero-botao e aplique nele as particularidades do botão da seção
Hero. De novo, tente descobrir sozinho o que deve fazer, e deixe para inspecionar o elemento ao final. Notará que o estilo que esse
botão aplica é um gradiente.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (10/15)
000 000
364
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
É preciso ainda estilizar o botão para quando ele sofrer a ação de hover, ou seja, quando o ponteiro do mouse paira sobre o botão.
Usaremos a pseudo-classe ::hover. Na página da Hashtag a ação é que, ao ser tocado pelo mouse, o botão fica inteiro da mesma cor
(as bordas e o fundo), então essa ação é relativamente simples de ser feita.
Mais uma vez, para obter as cores que deseja, a melhor forma é realmente inspecionando o elemento da página de referência, mas
tente fazer isso ao final, para evitar “colar” informações. Num cenário real de desenvolvimento, normalmente o designer da página já
vai lhe dar esses valores prontos!
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (11/15)
000 000
365
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A nossa seção Hero já está bem mais parecida com a da página da Hashtag. Compare o que já fez com a da página e tente identificar o
que está faltando.
Faltam ainda alguns pontos do layout para serem alterados, que faremos futuramente, e temos ainda que ajustar o iframe do vídeo e o
parágrafo do texto.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (12/15)
000 000
366
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos aproveitar que estamos mexendo no texto para padronizar todas as fontes e espaçamento conforme nossa escala definida
previamente através do Typescale. Vamos alterar o h1 e o .hero-paragrafo da nossa seção, lembrando que se aumentamos a fonte,
podemos diminuir o line-height.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (13/15)
000 000
367
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Indo para o iframe, vamos notar que existe uma diferença de proporção entre a imagem do vídeo que temos e a imagem da página
original. Isso ocorre por uma diferença de proporção, onde nossa imagem tem um aspect-ratio menor, ou seja, a proporção de
tamanho da imagem é diferente. Para termos um vídeo de mesma proporção que o da página da Hashtag teremos de mexer nessa
propriedade.
Vamos fazer isso em etapas, e já começar removendo o estilo inline styledo nosso iframe. Depois podemos substituir a classe por uma
que será mais relevante para as alterações que vamos aplicar. Abaixo o antes e depois.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (14/15)
000 000
368
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para modificar a proporção da imagem/video usaremos a propriedade apsect-ratio, tendo como valor a proporção que desejamos.
Contudo ela sozinha não irá modificar a o iframe. Isso porque precisamos definir uma altura ou uma largura (e apenas um desses),
para que o outro valor possa ser calculado seguindo a proporção definida.
Vamos então atribuir um aspect-ratio ao nosso iframe usando a classe que definimos anteriormente e informar a altura que
desejamos. A largura será definida automaticamente.
Note como a imagem já tem o tamanho que queremos. Agora precisamos ajustar suas bordas.
Módulo 6 – Desafio 2 – Aprofundando a Seção Hero (15/15)
000 000
369
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para as bordas, mais uma vez vamos testar alguns valores até ter algo que fique agradável e parecido com o da página da Hashtag.
Como não vamos ajustar ainda o layout, a seção Hero ficará bem grande e ocupando um grande espaço da página. Se você quiser,
pode deixar temporariamente sem visualização (display: none) para esconder o iframe e fazer com que a seção tome menos espaço
enquanto continuamos com as próximas edições da página.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (1/27)
000 000
370
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para o iniciar esta seção vamos salvar a imagem de fundo que está sendo usado na página da Hashtag. Ela está disponível em
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUN-banner-02.png .
Depois disso vamos criar as classes necessárias para a seção. Como anteriormente, vamos adicionar a classe secao para as estilizações
padrões, e adicionar uma classe para os estilos específicos da seção, que chamaremos aqui de secao-conteudos. Crie ainda uma classe
container que irá englobar o conteúdo de nossa seção.
Lembrando que a <div> com a classe container deve englobar todo o conteúdo da seção.
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUN-banner-02.png
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (2/27)
000 000
371
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Apenas com essas modificações já notará que toda a seção ganhou uma aparência diferente. Isso porque os estilos de secao e
container já estavam prontos e foram reaproveitados.
Agora vamos criar o seletor .secao-conteudo e criar os estilos específicos da seção conteúdos gratuitos. Iniciaremos adicionando o
plano de fundo que salvamos. Um ponto que irá nos ajudar bastante é que todas as formatações de imagem e fundo já estão prontas!
Basta copiar da nossa .secao-hero, mudando apenas a URL da imagem de fundo.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (3/27)
000 000
372
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora é hora de editar a seção concentrando nossos esforços nos conteúdo mais interno. Vamos descartar por enquanto as edições de
layout e nos manter nos estilos que já aprendemos. Primeiramente, podemos mudar o elemento h2 para que seu tamanho respeite a
escala do type scale que definimos no início do desafio.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (4/27)
000 000
373
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Compare o tamanho da imagem de nossa página com o tamanho da imagem na página da Hashtag. Notará que podemos diminuir o
tamanho de nossa imagem, para termos uma cópia mais fiel do site. Esse detalhe pode ser mais dificil de perceber apenas
visualmente, então terá de inspecionar o elemento da página.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (5/27)
000 000
374
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para editar o tamanho de maneira apropriada, associe uma nova classe à imagem no html e depois crie o seletor para especificar o
tamanho apropriado.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (6/27)
000 000
375
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo com as edições, vamos agora criar os mesmo “balões” de informação que temos na seção da página original da Hashtag.
Note que são algumas as edições que terão de ser feitas. Primeiramente vamos copiar o gradiente de cores da página original,
inspecionando o elemento e tomando o cuidado que for possível para não “colar” nenhuma outra informação. Analisando o nosso
documento html, esta informação está dentro de um h3, então vamos criar uma <div> que englobe todo o elemento e dar uma classe
relevante para editarmos o estilo que precisamos.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (7/27)
000 000
376
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Criamos então um seletor .caixa-gratuito-h3 onde iremos colocar o mesmo gradiente que obtivemos ao inspecionar o elemento.
Apenas copiamos o gradiente, mas o que ele está dizendo é que a direção do gradiente é da esquerda para direita, indo da primeira
cor para a segunda cor. Outro ponto importante, que foi trabalhado na seção Hero, é que não queremos que esse elemento ocupe
toda a linha, então precisamos mudar o tipo de visualização para um tipo que ocupe apenas o espaço necessário, mas que mantenha
as qualidades de bloco (como espaçamentos).
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (8/27)
000 000
377
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é parecido com o que fizemos nos botões da seção Hero, que é adicionar os estilos próprios, como a cor da fonte
branca, os espaçamentos e os cantos arredondados. Tenha atenção que este elemento parece, mas não é um botão e seu design é um
pouco mais quadrado que os dos botões da seção Hero. Teste alguns valores até encontrar algo que lhe agrade e seja próximo da
página original da Hashtag, lembrando que os espaçamentos devem seguir os padrões do type scale que escolhemos.
O próximo passo para finalizar esse elemento exige uma abordagem sobre um tema que ainda não vimos. É o uso da propriedade
transform.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (9/27)
000 000
378
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Diferente dos botões que já fizemos, esses “balões” são inclinados, e fazer isso no CSS exige o uso da propriedade transform. Caso
precise, a documentação para uso do transform pode ser encontrada em https://developer.mozilla.org/pt-BR/docs/Web/CSS/transform .
O transform permite modificar o espaço do elemento, permitindo uma série de mudanças no elemento, como mexer no tamanho,
mudar a orientação, inclinar e muitas outras coisas. Como é algo bem específico, é mais útil consultar sua documentação conforme a
necessidade. Para nosso caso usaremos o valor rotate para rotacionar o elemento. O valor do rotate será em graus (deg), então tente
experimentar alguns valores para entender como a propriedade funciona. Para o nosso caso o valor de -3deg irá inclinar sutilmente o
elemento, como queremos.
https://developer.mozilla.org/pt-BR/docs/Web/CSS/transform
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (10/27)
000 000
379
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para finalizar este elemento, mas ainda não a seção, adicionamos uma sombra para dar mais profundidade à caixa.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (11/27)
000 000
380
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos para o elemento seguinte, que é a caixa que abriga os ícones e textos dos treinamentos. Nessa etapa vamos trabalhar
novamente os redimensionamentos das imagens, bordas e outros temas estudados neste módulo.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (12/27)
000 000
381
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃOCrie uma <div> que contenha todo o conteúdo desejado e crie também uma classe para que possamos estilizar todo o conteúdo.
Lembre-se de dar um nome relevante para a classe. Vamos seguir conforme abaixo.
Edite o html e crie o seletor para a classe.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (13/27)
000 000
382
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Começaremos criando uma borda internar para “abrigar” todo o conteúdo. Usaremos a propriedade box-shadow para criar a borda,
lembrando de usar o valor inset para que o contorno fique interno ao elemento. Ajuste os valores de desfoque e deslocamento até ter
algo que fique agradável, ou parecido com os valores abaixo.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (14/27)
000 000
383
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Depois iremos adicionar bordas arredondadas com a propriedade border-radius. Mais uma vez, teste alguns valores até ter algo
interessante. Depois ajuste os espaçamentos com padding, mas dessa vez lembrando de seguir a nossa escala pré-definida.
Ajustamos agora o html para que cada uma das imagens de nossa caixa tenha o mesmo tamanho dos ícones da página da Hashtag.
Vamos modificar as tags <a> desta parte da seção, adicionando uma classe para definir este tamanho.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (15/27)
000 000
384
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Depois de adicionar a nova classe circulo-logo-curso a cada âncora desta caixa, vamos formatar o estilo para modificar as imagens. Já
podemos mudar o tipo de visualização e adicionar um width e height apropriado, lembrando que âncoras são inline, e por isso irão
ignorar o width (daí a necessidade de mudar o tipo de visualização).
Note como as imagens se amontoaram. Isso ocorre porque apesar de termos definido um tamanho para o container que vai abrigar a
imagem, a imagem não está com tamanho definido. Para que possamos modificar a imagem, iremos “dizer” ao CSS que a imagem
deve ocupar apenas o total de espaço de seu container.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (16/27)
000 000
385
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para alcançar isso, criamos um novo seletor, dessa vez especificando as img dentro da classe circulo-logo-curso.
Com este novo seletor, as imagens serão formatadas para ocupar apenas o espaço definido em seu próprio container.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (17/27)
000 000
386
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos terminar de formatar as imagens para que elas fiquem o mais próximo da original.
Note que os ícones estão com um fundo mais cinza. Essa cor é a #e7e7e7. Vamos precisar também tornar as bordas totalmente
circulares e adicionar mais espaço interno.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (18/27)
000 000
387
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Lembre-se de utilizar um border-radius de 50% para que o container fique totalmente circular. Não deixe de adicionar uma sombra
parecida com a que fizemos em momentos anteriores.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (19/27)
000 000
388
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos seguir para as listas com os links para as redes sociais. Note que cada uma delas deve estar numa caixa e que elas não tem o
bullet point típico das listas. Vamos remover os pontos de todas as listas de nossa página, criando um seletor geral parecido com o que
fizemos anteriormente.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (20/27)
000 000
389
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos agora utilizar a classe já criada gratuito-link-lista para criar a caixa que envolverá todo o conteúdo. Essas caixa será bem
parecida com a que acabamos de fazer, então bastará copiar o estilo feito anteriormente e editar alguns valores. Lembre-se de
aproveitar o momento para padronizar os espaçamentos deste seletor que já existia para o padrão type scale que estamos usando.
Lembre-se de usar apenas como base a caixa realizada anteriormente, alguns dos valores deverão ser adaptados. Modifique os valores
até ter um resultado agradável visualmente.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (21/27)
000 000
390
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como na caixa anterior, será preciso redimensionar as imagens. Para isso criamos uma combinação de seletores.
Cada vez mais temos melhorando o nos design e estamos ficando mais próximos da página que queremos alcançar. Note que o texto
interno está na cor azul de um link, então use o CSS para que a cor do texto seja herdade da cor do pai.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (22/27)
000 000
391
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Por fim, como estamos trabalhando com links, temos de aplicar o LVHA, para estilizar totalmente nosso documento. Neste caso a
modificação é simples, sendo necessário apenas que o link tenha um sublinhado no momento que é tocado pelo mouse ou é ativado.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (23/27)
000 000
392
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
As caixas com os links estão agora muito mais parecidas com o que queremos alcançar.
Um próximo passo que ainda podemos avançar é mover o balão de texto inclinado, para que ele fique numa posição bem específica.
Isso é atingido utilizando position: absolute, mas lembre-se que o elemento tomará como referência o primeiro pai que tem position:
relative, então temos de primeiramente dar essa propriedade ao elemento que desejamos ter como referência, que no caso é a caixa-
cursos-hashtag.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (24/27)
000 000
393
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
E na sequência indicaremos à classe caixa-gratuito-h3 sua posição. Vai notar que ainda não temos o que queremos, precisamos ainda
que a caixa com o texto se mova um pouco mais para a esquerda. O tanto que queremos mover é a o tamanho da caixa.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (25/27)
000 000
394
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para fazer o movimento que queremos, será preciso usar uma propriedade que já vimos, que é o transform, mas dessa vez com um
valor diferente. Usaremos o valor translate para indicar o quando o elemento deverá se deslocar, de forma que o CSS possa ajustar este
valor automaticamente. Queremos então usar o translate para que a caixa de texto se mova de forma que sua metade esteja na
metade da sua caixa maior no eixo X e Y (horizontal e vertical).
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (26/27)
000 000
395
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora que já temos todos os estilos prontos, basta aplicar as mesmas classes que já criamos à segunda parte do html, onde temos a
parte de programação: caixa-curso-hashtag para englobar tudo, uma <div> para criar a caixa de texto para “programação” com a
classe caixa-gratuito-h3 e a classe circulo-logo-curso para as âncoras.
Módulo 6 – Desafio 2 – Aprofundando a Seção Conteúdos Gratuitos (27/27)
000 000
396
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Bastou adicionar as classes para que as duas partes de nossa seção tomassem a mesma forma.
Vamos agora seguir para a seção de diferenciais.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (1/15)
000 000
397
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo o mesmo padrão que já estamos seguindo das outras seções, iremos começar pelas partes mais externas e depois ir
aprofundando na seção até os elementos mais internos. De mais externo, e talvez o que mais chame a atenção, é o fundo numa cor
diferente do restante. A cor neste caso é #f4f5f7.
Comece no documento html, adicionandoa classe padrão secao e a nova classe secao-diferenciais, que terá os estilos próprios.
Depois adicione uma <div> que englobe todo o conteúdo da seção que tenha a classe container. Esses pequenos passos já tornarão a
seção bem mais organizada e com os devidos espaçamentos que colocamos anteriormente.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (2/15)
000 000
398
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Adicione a cor mencionada anteriormente ao fundo da seção. Utilizaremos a classe já criada anteriormente para isso.
Deve notar que alguns botões trabalhados anteriormente estão ficando por cima de nossa barra superior. Isso acontece porque como
mexemos na posição relativa do elemento, ele ultrapassa os elementos comuns no eixo z da página. Vamos modificar o cabeçalho e
colocar seu z-index mais alto que os outros.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (3/15)
000 000
399
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo com os outros elementos, vamos replicar a barra lateral que existe nesta seção.
Note que a barra parece bastante com uma borda lateral para o elemento. Seguiremos essa estratégia para criar esse design específico.
Criaremos uma <div> neste elemento e criaremos uma nova classe.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (4/15)
000 000
400
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora com um seletor para a classe criada iremos criar a borda de apenas um dos lados usando a cor #ffb20f. Já vamos aproveitar para
olhar nossa escala de espaçamentos e adicionar o espaçamento da barra lateral para o texto.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (5/15)
000 000
401
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Movendo agora para o fundo de cor mais azul, que se trata do fundo mais interno desta parte da seção. As bordas são arredondadas e
também precisamos nos atentar aos espaçamentos internos. Contundo este fundo se aplica somente ao topo da caixa principal, com os
outro parágrafos ficando com fundo branco. Iremos então criar uma nova classe e adicionar estes detalhes.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (6/15)
000 000
402
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos seguir para o restante da seção, onde não há o gradiente azul. Criamos uma nova <div> que irá abranger o restante do
documento. Adicionamos o mesmo espaçamento que na caixa anterior.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (7/15)
000 000
403
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Use o seletor .container-diferenciais como um novo container que irá abrigar a parte mais externa da caixa. Nesta classe estilizaremos
alguns espaçamentos e também adicionaremos uma sombra interna ao elemento. É importante que o espaçamento aqui coincida
com o usado no topo da caixa, que tem o gradiente azul, para que a cor não seja “empurrada”.
Lembre-se que alguns destes valores, em especial os da sombra, devem ser definidos testando alguns valores até encontrar algo que
fique com aparência agradável.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (8/15)
000 000
404
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é criar as caixas internas, lembrando que não mexeremos ainda no layout delas, apenas na estilização. Siga o mesmo
padrão que temos feito até o momento, identifique os elementos que já podemos aprendemos (bordas arredondas, sombras, etc), crie
uma classe para a caixa interna e comece a testar alguns valores para o estilo do elemento.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (9/15)
000 000
405
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como são três caixas iguais, iremos criar a classe caixa-itens-diferenciais e adicionar esta classe às três div’s responsáveis pelo
conteúdo.
S
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (11/15)
000 000
406
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
No seletor seguiremos os mesmos passos que já fizemos para criar uma caixa com conteúdo: definir um fundo, adicionar uma sombra,
definir os espaçamentos e então qualquer ajuste particular que possamos achar necessário.
Lembrando apenas que para este caso a sombra não é interna, então não fazemos o uso do inset. O próximo passo e criar a caixa
amarela que fica ao topo, que será bem parecida com todas essas que viemos fazendo até agora.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (10/15)
000 000
407
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Crie uma nova <div> que deverá encapsular apenas a imagem de cada caixa. Ela deve englobar apenas cada uma das img.
Daremos o fundo amarelo, da cor #ffaf00, e mudaremos o tipo de visualização para que o container ocupe apenas o espaço da imagem
e não toda a linha. As bordas arredondas, como de costume, os espaçamentos e a sombra.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (11/15)
000 000
408
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Lembre-se de estilizar a própria imagem, para que ela possa ficar adequadamente ocupando a caixa.
Indo mais internamente, devemos checar o texto do conteúdo e ajustar o tamanho da fonte e os espaçamentos. Como ainda temos
algumas classes que estão fora de nosso padrão, vamos aproveitar o momento e criar um seletor mais abrangente que resolva essa
questão. Dessa forma agrupamos textos que tem o mesmo tamanho para que tornemos o nosso arquivo mais enxuto e facilite
manutenções futuras. Lembre-se de apagar os seletores obsoletos.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (11/15)
000 000
409
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Faremos uma padronização parecida com os elementos h3 mais internos do texto.
Vamos fazer mais uma etapa bem parecida com as caixas da seção anterior, onde precisaremos mudar o position e usar o transform
para obter o efeito da caixa amarela com a imagem se sobrepor à caixa maior.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (12/15)
000 000
410
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A etapa final para esta seção é ajustar as imagens no ponto mais inferior da caixa.
Indo sempre na linha de melhorar nosso documento CSS, vamos unificar a estilização do h3 em um único seletor.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (13/15)
000 000
411
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Com a <div> que agrupa todas a imagens do ponto inferior da caixa, vamos criar uma classe para editar todas as imagens de uma só
vez.
No seletor vamos colocar uma altura padrão, para que os logos possam ficar devidamente dispostos. Os logos que ficarem muito
pequenos poderão ser substituídos futuramente por alguma imagem numa qualidade melhor. Para dar o efeito cinza e remover as
cores, utilizamos uma propriedade chamada filter com o valor definido para uma escala de cinza.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (14/15)
000 000
412
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Algumas logos já tem a cor preta e por isso não serão afetadas por uma escala de cinza.
Para essas será preciso aplicar um estilo especifico, onde iremos mudar a opacidade da imagem. Ao diminuir a opacidade, o tom da
imagem ficará mais próximo de cinza. Criamos então uma classe para cada logo que precisará deste tratamento, e depois um seletor
que controla a opacidade. Note na próxima página como criamos as três classes e definimos os valores de opacidade para que ao final
tivéssemos cada logo num discreto tom de cinza. Com isso terminaremos a seção, por enquanto.
Módulo 6 – Desafio 2 – Aprofundando a Seção Diferenciais (15/15)
000 000
413
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (1/14)
000 000
414
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para esta seção teremos uma tarefa diferente onde temos de criar um carrossel. Futuramente teremos uma aula específicapara isso,
mas nesta etapa do desafio teremos de, da melhor maneira possível, preparar os elementos que foram possíveis para a criação deste
carrossel.
Como nas seções anteriores vamos começar definindo a seção padrão e uma mais focada para os estilo próprios desta seção. Defina as
duas classes na <div> que mais abrange o elemento e dentro desta <div> uma segunda contendo a classe container.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (2/14)
000 000
415
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Diferente da seção anterior, esta seção contém uma imagem de fundo, que pode ser obtida da página da Hashtag, ou acessando
diretamente o link: https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUN-banner-04.png .
Vamos criar o seletor .secao-oquefalam e adicionar o plano de fundo, seguindo exatamente as mesma regras de outros planos de
fundo com imagens que já fizemos anteriormente.
Vamos começar a nos mover para os elementos mais internos da seção, começando pelo título. Criamos uma classe para a <div> que
encapsula o título da seção e depois adicionamos os estilos. Como as regras do fonte já foram definidas, vamos apenas alterar a cor da
fonte.
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUN-banner-04.png
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (3/14)
000 000
416
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos começar a adicionar as estruturas principais do Carrossel. Na <div> principal do carrossel vamos criar uma classe para o
carrossel inteiro e depois para cada botão uma classe própria. Os botões do carrossel são imagens que podem ser obtidas ao
inspecionar o elemento na página da Hashtag. Os links das imagens são: https://www.hashtagtreinamentos.com/wp-
content/uploads/2022/06/ELEMENTO-seta-esquerda.png e https://www.hashtagtreinamentos.com/wp-
content/uploads/2022/06/ELEMENTO-seta-direita.png .
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/ELEMENTO-seta-esquerda.png
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/ELEMENTO-seta-esquerda.png
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/ELEMENTO-seta-direita.png
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/ELEMENTO-seta-direita.png
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (4/14)
000 000
417
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é ajustar as imagens de depoimentos. O primeiro passo aqui seria redimensionar as imagens e modificar o aspect-
ratio de forma a fazer algo parecido com o que fizemos no iframe da seção Hero. Acontece que por se tratar de uma img, os recursos
que temos são limitados e a imagem poderia ficar deformado. Para que tenhamos um maior controle da imagem, vamos trabalhar
como se tivéssemos uma imagem de fundo, pois assim teremos acessos à mais recursos de edição (controlar recursos como
background-position).
Vamos primeiramente modificar o html de forma que não tenhamos mais uma <img> e sim uma <div> com uma imagem de fundo.
Criaremos três div’s já que são três imagens diferentes. Usaremos duas classes para cada <div>, uma classe geral com os estilos e
propriedades comuns à todos e uma especifica de cada imagem, onde vamos definir a imagem de fundo.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (5/14)
000 000
418
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os seletores individuais de cada classe terão apenas a definição do plano de fundo e cada link de cada imagem. Não se esqueça que os
valores e aplicações desta parte da seção foram bem parecidos do que fizemos com o iframe da seção Hero.
Bastará então mudar o tipo de visualização, já que por padrão os elementos estarão tomando o comportamento de bloco, tomando
todo o espaço disponível. Mudando o tipo de visualização, podemos fazer com que as imagens ocupem apenas o espaço necessário.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (6/14)
000 000
419
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Os seletores individuais de cada classe terão apenas a definição do plano de fundo e cada link de cada imagem. Não se esqueça que os
valores e aplicações desta parte da seção foram bem parecidos do que fizemos com o iframe da seção Hero.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (7/14)
000 000
420
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Continuando com as edições, vamos preparar a seta do carrossel que permite navegar pelo mesmo. Por enquanto faremos apenas a
estilização dela. Com o html já preparado com as imagens, vamos apenas estilizar para que a mesma fique na posição desejada. Mais
uma vez, é o processo parecido com o que fizemos anteriormente com as caixas de textos, onde alteramos a posição do elemento.
Como são duas setas, teremos uma classe mais abrangente chamada oquefala-seta e uma mais especifica para cada lado da seta.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (8/14)
000 000
421
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Crie os seletores, mude o posicionamento dos elementos com position: absolute e comece a testar alguns valores de transformação
para ter o deslocamento desejado das imagens. A lógica aplica aqui é a mesma que foi aplicada nas caixas de textos da seção
conteúdos gratuitos, o intuito é definir uma posição da imagem relativa ao elemento pai, e usar o translate para adequar a posição
dessa imagem.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (9/14)
000 000
422
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para ter um resultado ainda mais próximo do original, vamos adicionar uma camada azul sobre o elemento das imagens. Também
temos de adicionar um botão de “play” e os botões inferiores.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (10/14)
000 000
423
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para ter um resultado ainda mais próximo do original, vamos adicionar uma camada azul sobre o elemento das imagens. Também
temos de adicionar um botão de “play” e os botões inferiores. O primeiro passo é criar um <img> com a imagem da seta de play obtida
no link https://www.hashtagtreinamentos.com/wp-content/themes/hashtag/assets/img/player-azul.svg . Adicionamos ainda uma classe
que nos permitirá manipular essa imagem, já que ela precisa ter um tamanho e posição específico. Não esqueça que teremos de usar
position: Absolute e por isso o elemento pai (classe oquefalam-carrossel-img) deverá ter position: relative.
https://www.hashtagtreinamentos.com/wp-content/themes/hashtag/assets/img/player-azul.svg
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (11/14)
000 000
424
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A adição do tom azulado sobre as imagens depende do uso de uma nova propriedade chamada background-blend-mode, que nos
permite definir como imagens de fundo devem se fundir com cores de fundo. Se preciso, consulte a referência no MDN:
https://developer.mozilla.org/en-US/docs/Web/CSS/background-blend-mode .
https://developer.mozilla.org/en-US/docs/Web/CSS/background-blend-mode
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (12/14)
000 000
425
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Indo para os estágios finais da seção, iremos agora adicionar os três pontos inferiores e o botão. Parte do botão já está pronta, pois
usaremos classes já criadas anteriormente.
Ao final da seção crie uma div para cada um dos pontos que teremos, que no caso serão três. Associe uma nova classe padrão à eles.
Note que no primeiro ponto colocamos uma classe adicional chamada ativa, para que ela tenha uma cor de destaque.
Os valores das cores podem ser obtidos inspecionando o elemento no site da Hashtag. No caso as cores são #86a8bc e #14577f.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (13/14)
000 000
426
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para dar um pouco mais de dinamismo ao carrossel, adicione a propriedade cursor:pointer aos seletores que controlam os elementos
principais do carrossel. Isso fará que o ponteiro do mouse ganhe a forma de uma “mãozinha”, como se fosse um link.
Módulo 6 – Desafio 2 – Aprofundando a Seção O que falam (14/14)
000 000
427
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Por fim vamos construir o botão final da seção, e esta etapa já está bem adiantada, já que temos quase todas as classes e propriedades
já prontas de outros botões que construímos. Lembre-se apenas de copiar a cor do gradiente.
E mais uma seção concluída!
Módulo 6 – Desafio 2 – Aprofundando a Seção Na mídia (1/4)
000 000
428
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Esta é uma seção bem mais curta que as outras, mas ainda será importante para reforçar o aprendizado. Como sempre, vamos começar
modificando o html, incluindo a classe padrão secao e também uma nova classe específica para os estilos dessa seção. Por fim
encapsulamos todo o conteúdo da seção dentro de um container.
Ao aplicar estes estilos e comparar com o original da página da Hashtag, notará que esta seção tem espaçamentos menores. Vamos
adicionar um novo padding que irá sobrescrever o padrão.
Módulo 6 – Desafio 2 – Aprofundando a Seção Na mídia (2/4)
000 000
429
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Note que os elementos estão se empilhando ao invés de manter uma estrutura mais horizontal, então teremos de ajustar o tipo de
visualização, da mesma forma que fizemos nas seções anteriores.
Comece pela imagem da seta dupla e depois siga para os elementos textuais.
Módulo 6 – Desafio 2 – Aprofundando a Seção Na mídia (3/4)
000 000
430
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como eventualmente iremos ajustar os posicionamentos quando tratarmos do layout, por hora iremos ajustar apenas o segundo
elemento textual.
Prosseguimos agora adicionando uma imagem de fundo ao elemento. A imagem de fundo está em
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUND-Banner-05_1.png . Vamos reutilizar os mesmo
padrões das outras imagens de fundo.
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUND-Banner-05_1.png
Módulo 6 – Desafio 2 – Aprofundando a Seção Na mídia (4/4)
000 000
431
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
E encerramos mais uma seção! Haveria um pouco mais de alterações que poderíamos fazer, mas para essas alterações seriam desfeitas
quando fossemos trabalhar o layout então já podemos parar por aqui.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (1/7)
000 000
432
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos mais uma vez iniciar a seção com o mesmo padrão de sempre: modificando o html, incluindo a classe padrão secao e também
uma nova classe específica para os estilos dessa seção. Por fim encapsulamos todo o conteúdo da seção dentro de um container.
Note também que teremos de adicionar uma cor de fundo e ainda criar uma caixa que funcionará como um outro container para
abrigar o conteúdo da sessão. Todas essas coisas já foram trabalhadas, então vamos apenas reaproveitar o código CSS usado. A
formatação da caixa é a mesma usada na seção Diferenciais.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (2/7)
000 000
433
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos então reaproveitar os estilos já criados no seletor .container-diferenciais.
Dessa forma estamos reaproveitando um seletor que já existia, aplicando seu estilo à outras classes.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (3/7)
000 000
434
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é criar a caixa de texto superior. Note que ela é praticamente idêntica à caixa de texto da seção conteúdos gratuitos
que fizemos.
Por conta disso, vamos reorganizar nossos seletores de formar a reaproveitar ao máximo o que já foi feito.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (4/7)
000 000
435
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Em outro ponto, nos seletores individuais da classe de cada caixa, deixamos os estilos específicos, que no caso são as cores do gradiente.
Como temos a caixa com um position: absolute, inserimos um position: relative no seletor da classe container-blog. Para que o texto
da caixa ocupasse totalmente o espaço da caixa sem que houvesse quebra de linha, usamos o valor max-content para a propriedade
width.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (5/7)
000 000
436
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora vamos para as caixa do interior da seção. Não podemos esquecer de usar no escala de espaçamentos para garantir uma fluidez
do visual da página. O primeiro passo será criar uma caixa que terá o conteúdo das postagens do blog. Se olharmos no html vamos
notar que já temos uma <div> colocada apropriadamente, então basta apenas criar uma classe para ela.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (6/7)
000 000
437
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
A caixa que iremos criar é bem parecida com as outras que já fizemos, inclusive com a caixa mais externa da classe container-blog.
Vamos então copiar seus valores para ter uma caixa parecida, editando apenas alguns valores para que o visual fique mais agradável,
afinal a caixa interna é um pouco menos arredondada e com uma sombra menor. Vamos também aproveitar para colocar o
espaçamento necessário (lembre-se de testar alguns valores até achar um que te agrade) e vamos também diminuir o tamanho da
caixa, já que ela é bem menor que a caixa externa maior.
Note o seletor para img que define que o tamanho máximo da imagem deve ser o tamanho da caixa.
Módulo 6 – Desafio 2 – Aprofundando o blog da Hashtag (7/7)
000 000
438
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Antes de finalizar esta seção, vamos formatar o texto dos conteúdos para que a fonte siga o nosso padrão de escala. Note que, como em
outras seções anteriores, reaproveitamos o seletor de h3. Colocamos um inherit na cor, para que ele herde a cor padrão que vamos
colocar mais à frente.
Vamos remover ainda uma estilização desnecessária, para que o corpo do texto tenha o tamanho de fonte padrão de nossa página.
Basta apagar o .blog-descricaopost. Finalize então ajustando o .blog-postadoem para que a fonte e a altura de linha sejam
compatíveis com nosso padrão de escala.
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (1/9)
000 000
439
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como de costume, nosso seção irá se iniciar implementando a classe secao e mais uma nova classe, que chamaremos de secao-
comoajudar. Em seguida colocamos todo o conteúdo da seção dentro de uma div com a classe container.
O próximo passo será dividir a seção inteira em duas partes, uma com e outra sem fundo. Esse processo é bem parecido com o que
realizamos na seção Diferenciais, que tinha uma caixa com a parte superior com a cor azul.
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (2/9)
000 000
440
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como esta seção é dividida em duas partes, seremos obrigados a criar duas separações dentro da seção inteira. Usaremos então duas
div’s e daremos a cada uma sua própria classe, para que possamos aplicar os estilos individualmente. Vamos então já dividir nossa
seção com duas <div> e em cada uma implementar sua própria classe e container.
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (3/9)
000 000
441
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos agora começar a aplicar os estilos. Note que a primeira parte da seção tem um espaçamento um pouco diferente do que o que
estamos habituados, então vamos começar mudando algumas coisas do espaçamento original. Começamos zerando o padding total e
depois aplicando os espaço que são específicos de cada subseção (a laranja e a cinza).
Vamos começar com esses valores e depois ajustamos conforme necessário.
Módulo 6 – Desafio 2 –Aprofundando a seção Como Ajudar (4/9)
000 000
442
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é uma que já estamos acostumados, vamos inserir a imagem de fundo na seção laranja. A imagem de fundo pode ser
obtida inspecionando o elemento na página da Hashtag ou direto neste link: https://www.hashtagtreinamentos.com/wp-
content/uploads/2022/06/BACKGROUND-banner-07.png .
Não se esqueça de já adicionar as formatações padrões que temos usado.
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUND-banner-07.png
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/BACKGROUND-banner-07.png
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (5/9)
000 000
443
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Agora temos de criar a primeira caixa de texto da seção. Note que ela é quase idêntica à caixa da seção blog. Então vamos copiar parte
da estilização da caixa do blog. Não se esqueça de criar uma div e dar à ela uma classe no h2 que terá a caixa.
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (6/9)
000 000
444
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O próximo passo é fazer a caixa branca inferior, onde fica a lista de como ajudar. Como essa caixa é bem parecida com a que fizemos
anteriormente na seção blog, vamos copiar o seletor .secao-postblog e fazer apenas algumas edições, como no desfoque e também no
tipo de visualização. Neste caso vamos querer usar todo o espaço disponível, então vamos dispensar o inline-block. Não esqueça da cor
de fundo.
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (7/9)
000 000
445
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Como se trata de uma lista com bullet points, vamos precisar salvar a imagem que é usada que faz o sinal de “check”. A imagem está
em: https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/ELEMENTO-check_1.png . Como será uma imagem que
antecede o texto da lista, para cada item da lista (<li>) vamos adicionar a imagem do check.
https://www.hashtagtreinamentos.com/wp-content/uploads/2022/06/ELEMENTO-check_1.png
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (8/9)
000 000
446
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Aplicaremos o conceito do LVHA nos links da nossa lista. Vamos criar um estilo para cada uma das pseudo-classes Link, Visited, Hover e
Active.
Temos ainda só mais um passo antes de encerrarmos.
Módulo 6 – Desafio 2 – Aprofundando a seção Como Ajudar (9/9)
000 000
447
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
O último passo é ajustar a cor de fundo do texto inferior da seção. A melhor forma de fazer isso é modificando o seletor da classe body,
aplicando a cor de fundo à todo o documento. Fazendo isso poderemos remover algumas das estilizações de cor de fundo que também
utilizem esse fundo claro (removemos da seção diferenciais e da seção blog).
Com isso nossa seção está pronta! As outras edições que faltam serão feitas quando lidarmos com layout.
Módulo 6 – Desafio 2 – Aprofundando a seção Minicurso (1/5)
000 000
448
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguindo o padrão das outras seções, vamos começar analisando a seção da página da Hashtag e começar a aplicar os estilos
necessários. Apenas analisando essa seção, já sabemos que precisaremos aplicar um fundo, que no caso da seção é uma imagem, mas
para o desafio podemos usar um gradiente de cor. A vantagem de usar um gradiente de cor ao invés de uma imagem, é que um
gradiente é bem mais rápido de carregar que uma imagem.
O próximo passo é modificar o html de nossa página, aplicando a classe da seção e também do container.
Módulo 6 – Desafio 2 – Aprofundando a seção Minicurso (2/5)
000 000
449
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Após isso vamos para o CSS, onde começaremos a estilizar a seção Minicurso, criando o gradiente de cor. Depois temos de sobrescrever
a cor da fonte, já que nesta seção em específico a cor é branca.
Módulo 6 – Desafio 2 – Aprofundando a seção Minicurso (3/5)
000 000
450
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Seguimos agora com os elementos mais internos, inicialmente vamos criar o botão de enviar, que é parecido com outros botões feitos
nas outras seções.
Aplicamos também o uso da pseudo-classe Hover no botão, para estiliza-lo quando for tocado pelo ponteiro do mouse.
Módulo 6 – Desafio 2 – Aprofundando a seção Minicurso (4/5)
000 000
451
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos formatar os campos de formulário, que ainda estão com o padrão do html. Como existem vários campos (inclusive na seção do
rodapé), vamos fazer uso de um seletor mais geral. Colocamos uma formatação para a fonte para substituir a fonte padrão usada no
input.
Podemos continuar estilizando o campo, formatando o texto interno do input.
Módulo 6 – Desafio 2 – Aprofundando a seção Minicurso (5/5)
000 000
452
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Antes de finalizar esta seção vamos observar o campo de input quando clicamos nele.
Note que no campo email existe uma espécie de borda preta. Isso ocorre porque o html automaticamente criar essa borda nos
elementos que estão em foco. Se quisermos, podemos remover essa borda utilizando o CSS.
Pronto! E já temos mais uma seção encerrada! O próximo passo agora é a seção final, o rodapé.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (1/8)
000 000
453
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Feita a análise inicial da página da Hashtag, vamos iniciar com o processo usual de colocar todo o conteúdo da seção dentro da classe
container e este container numa div com as classes secao e rodape.
Já demos uma classe à imagem do logo da Hashtag para que possamos redimensionar a imagem do rodapé.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (2/8)
000 000
454
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Atualize os espaçamentos do rodapé, indo até as classes que já estavam prontas e ajustando as medidas para que elas passem a seguir
o padrão do type scale que escolhemos no início do desafio. Aumente o font-weight dos elementos para dar um pouco mais de
relevância ao texto (agrupe eles num único seletor). Agrupe as outras classes num seletor global que já contenha as formatações que
queremos.
Os espaçamentos fazem parte do layout, então o próximo passo é editar os ícones SVG para que eles fiquem no tamanho padrão.
Poderíamos usar uma classe para cada SVG, mas é mais prático utilizar um seletor em todos os SVG que estejam dentro do rodapé.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (3/8)
000 000
455
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Repare que nos ícones das redes sociais, que estão dentro de uma âncora, temos um efeito azulado, como um texto que está ali por
engano. Isso ocorre porque por ser um link, o navegador tenta inserir algum destaque em relação ao LVHA. Vamos formatar essas
âncoras.
Para essa formatação damos uma classe à cada âncora e depois a cor transparente, para que o traço desapareça.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (4/8)
000 000
456
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Ajustamos os links da seção para que eles tenha uma cor de destaque quando sofrem a ação de hover ou estiver ativo. Não vamos
aplicar completamente o LVHA pois estamos copiando a página da Hashtag, que optou por não estilizar o link em todos os sentidos,
por uma escolha de design.
Outro ponto importante a ser copiado da página, é o comportamento dos SVGs quando estes sofrem a ação de hover.
Crie uma formatação para que o ícone tenha o mesmo comportamento.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (5/8)
000 000
457
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos agora criar a caixa lateral com o formulário do newsletter. Tanto essa caixa quanto o botão contido nela são bem parecidos com
outras caixas e botões que já fizemos. O detalhe aqui é que no html usaremos o <form> como tag para receber aclasse que terá a
formatação.
Criaremos então a formatação copiando do .comoajudar-lista, mudando apenas os valores que não são iguais, como a cor.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (6/8)
000 000
458
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Para o botão não será tão diferente. Vamos adicionar uma classe para o botão, copiar as formatações já existentes de botões anteriores,
formatando da maneira que ficará melhor para nós.
Para finalização do botão, vamos utilizar a pseudo-classe hover para estilizar o botão como necessário.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (7/8)
000 000
459
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Vamos finalizar agora formatando o botão do whatsapp. Essa é uma tarefa também parecida com outras que já fizemos, iremos
redimensionar o ícone e posicioná-lo. Não se esqueça de que temos de ainda formatar a imagem, para que ele ocupe apenas o espaço
máximo do container.
Módulo 6 – Desafio 2 – Aprofundando o Rodapé (8/8)
000 000
460
HTML E CSS IMPRESSIONADOR I HASHTAG PROGRAMAÇÃO
Formatamos ainda uma ação de hover, já que o ícone sofre uma pequena alteração quando o mouse paira sobre ele. Iremos utilizar a
propriedade transform e testar alguns valores, até que seu deslocamento seja parecido com o da página da Hashtag.
E é isso! Com isso encerramos essa etapa do desafio, tendo uma página muito parecida com a home da Hashtag.
Slide 1
Slide 2
Slide 3
Slide 4
Slide 5
Slide 6
Slide 7
Slide 8
Slide 9
Slide 10
Slide 11
Slide 12
Slide 13
Slide 14
Slide 15
Slide 16
Slide 17
Slide 18
Slide 19
Slide 20
Slide 21
Slide 22
Slide 23
Slide 24
Slide 25
Slide 26
Slide 27
Slide 28
Slide 29
Slide 30
Slide 31
Slide 32
Slide 33
Slide 34
Slide 35
Slide 36
Slide 37
Slide 38
Slide 39
Slide 40
Slide 41
Slide 42
Slide 43
Slide 44
Slide 45
Slide 46
Slide 47
Slide 48
Slide 49
Slide 50
Slide 51
Slide 52
Slide 53
Slide 54
Slide 55
Slide 56
Slide 57
Slide 58
Slide 59
Slide 60
Slide 61
Slide 62
Slide 63
Slide 64
Slide 65
Slide 66
Slide 67
Slide 68
Slide 69
Slide 70
Slide 71
Slide 72
Slide 73
Slide 74
Slide 75
Slide 76
Slide 77
Slide 78
Slide 79
Slide 80
Slide 81
Slide 82
Slide 83
Slide 84
Slide 85
Slide 86
Slide 87
Slide 88
Slide 89
Slide 90
Slide 91
Slide 92
Slide 93
Slide 94
Slide 95
Slide 96
Slide 97
Slide 98
Slide 99
Slide 100
Slide 101
Slide 102
Slide 103
Slide 104
Slide 105
Slide 106
Slide 107
Slide 108
Slide 109
Slide 110
Slide 111
Slide 112
Slide 113
Slide 114
Slide 115
Slide 116
Slide 117
Slide 118
Slide 119
Slide 120
Slide 121
Slide 122
Slide 123
Slide 124
Slide 125
Slide 126
Slide 127
Slide 128
Slide 129
Slide 130
Slide 131
Slide 132
Slide 133
Slide 134
Slide 135
Slide 136
Slide 137
Slide 138
Slide 139
Slide 140
Slide 141
Slide 142
Slide 143
Slide 144
Slide 145
Slide 146
Slide 147
Slide 148
Slide 149
Slide 150
Slide 151
Slide 152
Slide 153
Slide 154
Slide 155
Slide 156
Slide 157
Slide 158
Slide 159
Slide 160
Slide 161
Slide 162
Slide 163
Slide 164
Slide 165
Slide 166
Slide 167
Slide 168
Slide 169
Slide 170
Slide 171
Slide 172
Slide 173
Slide 174
Slide 175
Slide 176
Slide 177
Slide 178
Slide 179
Slide 180
Slide 181
Slide 182
Slide 183
Slide 184
Slide 185
Slide 186
Slide 187
Slide 188
Slide 189
Slide 190
Slide 191
Slide 192
Slide 193
Slide 194
Slide 195
Slide 196
Slide 197
Slide 198
Slide 199
Slide 200
Slide 201
Slide 202
Slide 203
Slide 204
Slide 205
Slide 206
Slide 207
Slide 208
Slide 209
Slide 210
Slide 211
Slide 212
Slide 213
Slide 214
Slide 215
Slide 216
Slide 217
Slide 218
Slide 219
Slide 220
Slide 221
Slide 222
Slide 223
Slide 224
Slide 225
Slide 226
Slide 227
Slide 228
Slide 229
Slide 230
Slide 231
Slide 232
Slide 233
Slide 234
Slide 235
Slide 236
Slide 237
Slide 238
Slide 239
Slide 240
Slide 241
Slide 242
Slide 243
Slide 244
Slide 245
Slide 246
Slide 247
Slide 248
Slide 249
Slide 250
Slide 251
Slide 252
Slide 253
Slide 254
Slide 255
Slide 256
Slide 257
Slide 258
Slide 259
Slide 260
Slide 261
Slide 262
Slide 263
Slide 264
Slide 265
Slide 266
Slide 267
Slide 268
Slide 269
Slide 270
Slide 271
Slide 272
Slide 273
Slide 274
Slide 275
Slide 276
Slide 277
Slide 278
Slide 279
Slide 280
Slide 281
Slide 282
Slide 283
Slide 284
Slide 285
Slide 286
Slide 287
Slide 288
Slide 289
Slide 290
Slide 291
Slide 292
Slide 293
Slide 294
Slide 295
Slide 296
Slide 297
Slide 298
Slide 299
Slide 300
Slide 301
Slide 302
Slide 303
Slide 304
Slide 305
Slide 306
Slide 307
Slide 308
Slide 309
Slide 310
Slide 311
Slide 312
Slide 313
Slide 314
Slide 315
Slide 316
Slide 317
Slide 318
Slide 319
Slide 320
Slide 321
Slide 322
Slide 323
Slide 324
Slide 325
Slide 326
Slide 327
Slide 328
Slide 329
Slide 330
Slide 331
Slide 332
Slide 333
Slide 334
Slide 335
Slide 336
Slide 337
Slide 338
Slide 339
Slide 340
Slide 341
Slide 342
Slide 343
Slide 344
Slide 345
Slide 346
Slide 347
Slide 348
Slide 349
Slide 350
Slide 351
Slide 352
Slide 353
Slide 354
Slide 355
Slide 356
Slide 357
Slide 358
Slide 359
Slide 360
Slide 361
Slide 362
Slide 363
Slide 364
Slide 365
Slide 366
Slide 367
Slide 368
Slide 369
Slide 370
Slide 371
Slide 372
Slide 373
Slide 374
Slide 375
Slide 376
Slide 377
Slide 378
Slide 379
Slide 380
Slide 381
Slide 382
Slide 383
Slide 384
Slide 385
Slide 386
Slide 387
Slide 388
Slide 389
Slide 390
Slide 391
Slide 392
Slide 393
Slide 394
Slide 395
Slide 396
Slide 397
Slide 398
Slide 399
Slide 400
Slide 401
Slide 402
Slide 403
Slide 404
Slide 405
Slide 406
Slide 407
Slide 408
Slide 409
Slide 410
Slide 411
Slide 412
Slide 413
Slide 414
Slide 415
Slide 416
Slide 417
Slide 418
Slide 419
Slide 420
Slide 421
Slide 422
Slide 423
Slide 424
Slide 425
Slide 426
Slide 427
Slide 428
Slide 429
Slide 430
Slide 431
Slide 432
Slide 433
Slide 434
Slide 435
Slide 436
Slide 437
Slide 438
Slide 439
Slide 440
Slide 441
Slide 442
Slide 443
Slide 444
Slide 445
Slide 446
Slide 447
Slide 448
Slide 449
Slide 450
Slide 451
Slide 452
Slide 453
Slide 454
Slide 455
Slide 456
Slide 457
Slide 458
Slide 459
Slide 460