7.4 KiB
Tarefa de Refatoração CSS
Objetivo
Transforma o teu projeto terrário para usar técnicas modernas de layout CSS! Refatora a abordagem atual de posicionamento absoluto para implementar Flexbox ou CSS Grid para um design mais sustentável e responsivo. Esta tarefa desafia-te a aplicar os padrões modernos de CSS mantendo a atratividade visual do teu terrário.
Compreender quando e como usar diferentes métodos de layout é uma competência crucial para o desenvolvimento web moderno. Este exercício liga as técnicas tradicionais de posicionamento com sistemas contemporâneos de layout CSS.
Instruções da Tarefa
Fase 1: Análise e Planeamento
- Revisão do teu código atual do terrário - Identifica quais elementos estão atualmente a usar posicionamento absoluto
- Escolhe o teu método de layout - Decide se Flexbox ou CSS Grid se adequam melhor aos teus objetivos de design
- Faz um esboço da nova estrutura de layout - Planeia como os contentores e elementos das plantas serão organizados
Fase 2: Implementação
- Cria uma nova versão do teu projeto terrário numa pasta separada
- Atualiza a estrutura HTML conforme necessário para suportar o método de layout escolhido
- Refatora o CSS para usar Flexbox ou CSS Grid em vez de posicionamento absoluto
- Mantém a consistência visual - Garante que as plantas e o frasco do terrário apareçam nas mesmas posições
- Implementa comportamento responsivo - O teu layout deve adaptar-se de forma suave a diferentes tamanhos de ecrã
Fase 3: Teste e Documentação
- Teste em vários navegadores - Verifica se o teu design funciona no Chrome, Firefox, Edge e Safari
- Teste responsivo - Verifica o teu layout em dispositivos móveis, tablet e desktop
- Documentação - Adiciona comentários ao teu CSS explicando as opções de layout
- Capturas de ecrã - Captura imagens do teu terrário em diferentes navegadores e tamanhos de ecrã
Requisitos Técnicos
Implementação do Layout
- Escolhe UM: Implementa Flexbox OU CSS Grid (não ambos para os mesmos elementos)
- Design Responsivo: Usa unidades relativas (
rem,em,%,vw,vh) em vez de pixels fixos - Acessibilidade: Mantém uma estrutura HTML semântica adequada e texto alternativo
- Qualidade do Código: Usa convenções de nomenclatura consistentes e organiza o CSS de forma lógica
Funcionalidades Modernas de CSS a Incluir
/* Example Flexbox approach */
.terrarium-container {
display: flex;
flex-direction: column;
min-height: 100vh;
align-items: center;
justify-content: center;
}
.plant-containers {
display: flex;
justify-content: space-between;
width: 100%;
max-width: 1200px;
}
/* Example Grid approach */
.terrarium-layout {
display: grid;
grid-template-columns: 1fr 3fr 1fr;
grid-template-rows: auto 1fr;
min-height: 100vh;
gap: 1rem;
}
Requisitos de Suporte aos Navegadores
- Chrome/Edge: 2 versões mais recentes
- Firefox: 2 versões mais recentes
- Safari: 2 versões mais recentes
- Navegadores móveis: iOS Safari, Chrome Mobile
Entregáveis
- Ficheiro HTML atualizado com estrutura semântica melhorada
- Ficheiro CSS refatorado usando técnicas modernas de layout
- Coleção de capturas de ecrã mostrando compatibilidade entre navegadores:
- Visualização desktop (1920x1080)
- Visualização tablet (768x1024)
- Visualização móvel (375x667)
- Pelo menos 2 navegadores diferentes
- Ficheiro README.md documentando:
- A tua escolha de layout (Flexbox vs Grid) e os motivos
- Desafios enfrentados durante a refatoração
- Notas sobre compatibilidade dos navegadores
- Instruções para executar o teu código
Rubrica de Avaliação
| Critério | Exemplar (4) | Proficiente (3) | Em desenvolvimento (2) | Iniciante (1) |
|---|---|---|---|---|
| Implementação do Layout | Uso magistral de Flexbox/Grid com funcionalidades avançadas; totalmente responsivo | Implementação correta com bom comportamento responsivo | Implementação básica com pequenas falhas responsivas | Implementação incompleta ou incorreta do layout |
| Qualidade do Código | CSS limpo e bem organizado com comentários úteis e nomenclatura consistente | Boa organização com alguns comentários | Organização adequada com poucos comentários | Organização pobre; difícil de entender |
| Compatibilidade entre Navegadores | Consistência perfeita em todos os navegadores exigidos com capturas de ecrã | Boa compatibilidade com pequenas diferenças documentadas | Algumas incompatibilidades que não afetam funcionalidade | Problemas graves de compatibilidade ou falta de testes |
| Design Responsivo | Abordagem mobile-first excepcional com pontos de ruptura suaves | Bom comportamento responsivo com pontos de ruptura adequados | Funcionalidades responsivas básicas com algumas falhas no layout | Comportamento responsivo limitado ou ausente |
| Documentação | README abrangente com explicações detalhadas e insights | Boa documentação cobrindo todos os elementos necessários | Documentação básica com explicações mínimas | Documentação incompleta ou ausente |
Recursos Úteis
Guias de Métodos de Layout
- 📖 Um Guia Completo para Flexbox
- 📖 Um Guia Completo para CSS Grid
- 📖 Flexbox vs Grid – Escolhe a Ferramenta Correta
Ferramentas de Teste em Navegadores
- 🛠️ Modo Responsivo das Ferramentas de Desenvolvimento do Navegador
- 🛠️ Can I Use – Suporte a Funcionalidades
- 🛠️ BrowserStack – Teste entre Navegadores
Ferramentas de Qualidade de Código
Desafios Bónus
🌟 Layouts Avançados: Implementa Flexbox E Grid em diferentes partes do teu design
🌟 Integração de Animação: Adiciona transições ou animações CSS que trabalhem com o teu novo layout
🌟 Modo Escuro: Implementa um alternador de tema baseado em propriedades CSS personalizadas
🌟 Consultas de Contentor: Usa técnicas modernas de consultas de contentor para responsividade ao nível de componentes
💡 Lembra-te: O objetivo não é apenas fazê-lo funcionar, mas entender PORQUE o método de layout escolhido é a melhor solução para este desafio de design em particular!
Aviso Legal:
Este documento foi traduzido utilizando o serviço de tradução automática Co-op Translator. Embora esforcemo-nos por garantir a precisão, por favor esteja ciente de que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autorizada. Para informações críticas, recomenda-se tradução profissional humana. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.