Layout de Tela Dividida
Parte da seção Practical Frontend do Journey de HTML da Coddy — lição 29 de 35.
Layouts de tela dividida dividem a viewport em duas seções distintas, geralmente lado a lado. Este padrão é eficaz para comparar conteúdo, exibir temas duais ou separar a navegação do conteúdo principal.
Primeiro, vamos criar a estrutura HTML:
<div class="split-screen">
<div class="split-screen__left">
<h2>Left Side</h2>
<p>This is the left side content.</p>
</div>
<div class="split-screen__right">
<h2>Right Side</h2>
<p>This is the right side content.</p>
</div>
</div>Agora, vamos adicionar o CSS para criar nosso layout de tela dividida:
.split-screen {
display: flex;
flex-direction: column;
}
/* No mobile, as seções são empilhadas verticalmente */
.split-screen__left {
background-color: #f0f0f0;
}
.split-screen__right {
background-color: #e0e0e0;
}
/* Em telas maiores, elas são exibidas lado a lado */
@media (min-width: 768px) {
.split-screen {
flex-direction: row;
}
.split-screen__left,
.split-screen__right {
flex: 1;
}
}Este layout começa como uma pilha vertical em dispositivos móveis, seguindo nossa abordagem mobile-first. Quando a largura da tela atinge 768px ou mais, o layout muda para uma divisão horizontal.
Corpo do Desafio:
Crie um layout de tela dividida responsivo para uma vitrine de produtos. O lado esquerdo deve exibir as informações do produto e o lado direito deve mostrar a imagem do produto.
Requisitos:
- A tela dividida deve ser vertical em dispositivos móveis (abaixo de 768px) e horizontal em telas maiores
- O lado esquerdo deve ter um fundo escuro (#222) e texto branco
- O lado direito deve ter um fundo claro (#f5f5f5)
- Adicione padding de 2rem em ambos os lados
- Em telas maiores que 768px, o lado esquerdo deve ocupar 40% da largura e o lado direito 60%
Desafio
FácilVocê recebeu uma página HTML com duas seções estilizadas com foco em dispositivos móveis (mobile-first). Sua tarefa é transformá-la em um Split Screen Layout que funcione bem no desktop.
- Em telas maiores (min-width: 768px), exiba-as lado a lado.
- Dê ao lado esquerdo uma cor de fundo
rgb(74, 144, 226)e a cor do textorgb(255, 255, 255). - Dê ao lado direito uma cor de fundo
rgb(255, 255, 255)e a cor do textorgb(51, 51, 51).
Folha de consulta
Layouts de tela dividida dividem a viewport em duas seções, geralmente lado a lado. Eles são eficazes para comparar conteúdo ou separar a navegação do conteúdo principal.
Estrutura HTML:
<div class="split-screen">
<div class="split-screen__left">
<h2>Left Side</h2>
<p>This is the left side content.</p>
</div>
<div class="split-screen__right">
<h2>Right Side</h2>
<p>This is the right side content.</p>
</div>
</div>CSS para layout de tela dividida responsivo:
.split-screen {
display: flex;
flex-direction: column;
}
/* Mobile: seções empilhadas verticalmente */
.split-screen__left {
background-color: #f0f0f0;
}
.split-screen__right {
background-color: #e0e0e0;
}
/* Telas maiores: exibição lado a lado */
@media (min-width: 768px) {
.split-screen {
flex-direction: row;
}
.split-screen__left,
.split-screen__right {
flex: 1;
}
}O layout começa como uma pilha vertical em dispositivos móveis seguindo a abordagem mobile-first, depois muda para uma divisão horizontal em telas de 768px ou maiores.
Experimente você mesmo
<!DOCTYPE html>
<html>
<head>
<title>Split Screen Layout</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: Arial, sans-serif;
background: #f4f4f4;
}
.container {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.left,
.right {
padding: 3rem;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
}
.left h1 {
font-size: 2.5rem;
margin-bottom: 1rem;
}
.right h2 {
margin-bottom: 1rem;
}
form {
display: flex;
flex-direction: column;
width: 100%;
max-width: 300px;
}
input {
padding: 10px;
margin-bottom: 15px;
border: 1px solid #ccc;
border-radius: 5px;
}
button {
padding: 10px;
border: none;
background: #4a90e2;
color: white;
font-weight: bold;
border-radius: 5px;
cursor: pointer;
transition: background 0.3s;
}
button:hover {
background: #357ab7;
}
@media (min-width: 768px) {
}
</style>
</head>
<body>
<div class="container">
<div class="left">
<h1>Welcome!</h1>
<p>Discover new opportunities, connect with others, and grow with us.</p>
</div>
<div class="right">
<h2>Sign Up</h2>
<form>
<input type="text" placeholder="Your Name">
<input type="email" placeholder="Your Email">
<button type="submit">Join Now</button>
</form>
</div>
</div>
</body>
</html>
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Practical Frontend
3Temas e Estilos Visuais
Temas em CSSFundamentos do Modo Escuro/ClaroCores de Destaque e RealceTemas de TipografiaDesafio de Recapitulação6Padrões Responsivos
Layout Holy GrailLayout de Grid de CardsLayout Sidebar + ConteúdoLayout de Tela DivididaHeader / Footer StickyDesafio de Revisão