Menu
Coddy logo textTech

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:

  1. A tela dividida deve ser vertical em dispositivos móveis (abaixo de 768px) e horizontal em telas maiores
  2. O lado esquerdo deve ter um fundo escuro (#222) e texto branco
  3. O lado direito deve ter um fundo claro (#f5f5f5)
  4. Adicione padding de 2rem em ambos os lados
  5. Em telas maiores que 768px, o lado esquerdo deve ocupar 40% da largura e o lado direito 60%
challenge icon

Desafio

Fácil

Você 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.

  1. Em telas maiores (min-width: 768px), exiba-as lado a lado.
  2. Dê ao lado esquerdo uma cor de fundo rgb(74, 144, 226) e a cor do texto rgb(255, 255, 255).
  3. Dê ao lado direito uma cor de fundo rgb(255, 255, 255) e a cor do texto rgb(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>
quiz iconTeste seus conhecimentos

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