Atividade prática cujo objetivo é construir um projeto coeso (uma página de blog) que aplica os mesmos conceitos de HTML, CSS e JavaScript de uma forma muito comum no mercado de trabalho.
A atividade guiará os alunos na criação de um layout de duas colunas com float, no posicionamento de elementos com position e na implementação de uma janela modal interativa com JavaScript (usando jQuery, como no exemplo).
Atividade Prática: Layout de Blog com Janela Modal
Objetivo: Utilizar os conceitos de posicionamento do CSS (display, float, position) e a manipulação de eventos com JavaScript para construir a página de um blog simples, que inclui uma janela modal para inscrição em newsletter. Esta atividade aplicará de forma prática os conceitos demonstrados no arquivo programadorweb2026/livro/cap6.html.
Parte 1: Estrutura (HTML)
Crie um novo arquivo chamado exercicio_blog.html. A estrutura da página deverá conter:
- Um cabeçalho (
<header>) para o título do blog e um rodapé (<footer>). - Um
divcontainer principal que usará a classeclearfixpara conter o layout. - Dentro do container, crie uma área de conteúdo principal (
<main class="content">) e uma barra lateral (<aside class="sidebar">). - O
<main>deve conter um<article>com um título (<h2>), umadivpara a imagem (que conterá a<img>e um<span>para a tag "Destaque") e alguns parágrafos de texto. - O
<aside>deve conter um título e uma lista de links para outros posts. - No
<footer>, adicione umdivextra para praticar o posicionamento absoluto. - Após o
<footer>, adicione o<button>que irá acionar o modal e, em seguida, asdivsda estrutura do modal: uma para o.overlaye outra para o.modal.
Parte 2: Estilização (CSS)
Crie um arquivo em css/exercicio_blog.css e o vincule ao seu HTML.
-
Layout com
float:- Faça o
<main class="content">flutuar para a esquerda (float: left) com uma largura de65%. - Faça o
<aside class="sidebar">flutuar para a direita (float: right) com uma largura de30%. - Implemente a classe
clearfixnodivcontainer para que sua altura se ajuste corretamente aos elementos flutuantes internos.
- Faça o
-
Posicionamento com
position:- Na
divque envolve a imagem do artigo, apliqueposition: relative. - No
<span>com o texto "Destaque", apliqueposition: absolutepara posicioná-lo sobre a imagem (por exemplo, no canto superior direito). - No
<footer>, apliqueposition: relative. Nodivde informação extra, useposition: absolutepara posicioná-lo no canto inferior direito do rodapé.
- Na
-
Modal com
position: fixed:- Estilize o
.overlay: definaposition: fixed, faça-o ocupar toda a tela (width: 100%,height: 100%,top: 0,left: 0), aplique umbackground-colorcom transparência (ex:rgba(0, 0, 0, 0.6)) e umz-index(ex: 100). - Estilize o
.modal: definaposition: fixed, umz-indexmaior que o do overlay (ex: 101) e centralize-o na tela. A forma moderna de fazer isso é comtop: 50%,left: 50%etransform: translate(-50%, -50%). - Lembre-se de que ambos devem começar escondidos, utilizando
display: none.
- Estilize o
Parte 3: Interatividade (JavaScript/jQuery)
Crie um arquivo em js/exercicio_blog.js e o vincule ao seu HTML (após a inclusão do jQuery).
- Capture o evento de clique no botão "Inscreva-se". Na função de callback, use o método
.show()para exibir o.overlaye o.modal. - Capture o evento de clique tanto no botão de fechar do modal quanto no próprio
.overlay. Na função de callback, use o método.hide()para escondê-los, permitindo que o usuário feche o modal de duas maneiras.
✨ Desafio Extra
- Substitua os métodos
.show()e.hide()por.fadeIn()e.fadeOut()para adicionar uma animação suave de transição. - Implemente a funcionalidade de fechar o modal quando o usuário pressionar a tecla "Escape" (
Esc) no teclado.