Criar Layout de Posicionamento Fixo em CSS

CSSCSSBeginner
Pratique Agora

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

Neste laboratório, você aprenderá como criar um layout com posicionamento fixo usando CSS, uma técnica poderosa para manter o posicionamento de elementos em uma página web. O laboratório irá guiá-lo através da compreensão do conceito de posicionamento fixo, da configuração de uma estrutura de projeto HTML e da aplicação de posicionamento fixo a anúncios laterais, enquanto explora como os elementos podem permanecer estacionários durante a rolagem da página.

Ao seguir as instruções passo a passo, você obterá habilidades práticas no uso de propriedades de posicionamento CSS como position: fixed, e aprenderá como controlar precisamente o posicionamento de elementos usando as propriedades top, bottom, left e right. O laboratório oferece experiência prática na criação de layouts responsivos e visualmente consistentes que mantêm sua posição, independentemente da rolagem da página.

Entendendo o Conceito de Posicionamento Fixo

Nesta etapa, você aprenderá sobre posicionamento fixo em CSS, uma técnica de layout poderosa que permite que elementos permaneçam em uma posição fixa na tela, independentemente da rolagem.

O posicionamento fixo é um método de posicionamento CSS que faz com que um elemento permaneça exatamente no mesmo lugar na tela, mesmo quando a página é rolada. Ao contrário de outros métodos de posicionamento, elementos fixos não se movem quando o usuário rola a página.

Vamos explorar o conceito básico com um exemplo simples:

<!doctype html>
<html>
  <head>
    <style>
      .fixed-element {
        position: fixed;
        top: 20px;
        right: 20px;
        background-color: #f1f1f1;
        padding: 10px;
        border: 1px solid #ddd;
      }
    </style>
  </head>
  <body>
    <div class="fixed-element">
      Eu sou um elemento fixo que permanece no lugar!
    </div>
    <div style="height: 2000px;">
      Role para baixo para ver o elemento fixo permanecer na posição
    </div>
  </body>
</html>

Características chave do posicionamento fixo:

  • Usa position: fixed; em CSS
  • Posicionado em relação à janela do navegador
  • Não se move quando a página é rolada
  • Pode ser precisamente posicionado usando as propriedades top, bottom, left e right

Exemplo de saída ao visualizar em um navegador:

  • O .fixed-element sempre permanecerá a 20 pixels do topo e da direita da tela
  • Mesmo se você rolar para baixo, este elemento permanece exatamente na mesma posição da tela

Configurar a Estrutura do Projeto HTML

Nesta etapa, você criará a estrutura do projeto para nossa demonstração de layout com posicionamento fixo. Vamos configurar um projeto HTML simples no diretório ~/project que servirá como base para nosso exercício de posicionamento CSS.

Primeiro, navegue até o diretório do projeto e crie os arquivos necessários:

cd ~/project
mkdir fixed-positioning-demo
cd fixed-positioning-demo

Agora, crie a estrutura básica do arquivo HTML:

touch index.html
touch styles.css

Abra o arquivo index.html e adicione a seguinte estrutura HTML básica:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Demonstração de Layout com Posicionamento Fixo</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div class="content">
      <h1>Layout com Posicionamento Fixo</h1>
      <p>
        Esta é uma página de exemplo para demonstrar o posicionamento fixo em
        CSS.
      </p>

      <!-- Adicionaremos mais conteúdo nas etapas subsequentes -->
    </div>
  </body>
</html>

Crie um arquivo CSS básico styles.css com alguma estilização inicial:

body {
  font-family: Arial, sans-serif;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}

.content {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
}

Exemplo de estrutura de saída:

~/project/fixed-positioning-demo/
├── index.html
└── styles.css

Esta configuração fornece uma estrutura de projeto limpa e simples sobre a qual construiremos nas etapas seguintes para demonstrar técnicas de posicionamento fixo.

Aplicar Posicionamento Fixo a Anúncios Laterais

Nesta etapa, você aprenderá como criar anúncios laterais com posicionamento fixo usando CSS. Modificaremos os arquivos index.html e styles.css para adicionar elementos de anúncio lateral que permanecem no lugar durante a rolagem.

Atualize o arquivo index.html para incluir elementos de anúncio lateral:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Demonstração de Layout com Posicionamento Fixo</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div class="left-ad">
      <h3>Anúncio do Lado Esquerdo</h3>
      <p>Este anúncio permanece no lugar!</p>
    </div>

    <div class="right-ad">
      <h3>Anúncio do Lado Direito</h3>
      <p>Outro anúncio fixo</p>
    </div>

    <div class="content">
      <h1>Layout com Posicionamento Fixo</h1>
      <p>
        Role para baixo para ver como os anúncios laterais permanecem fixos.
      </p>

      <!-- Adicione mais conteúdo para criar o efeito de rolagem -->
      <div style="height: 2000px;">
        Conteúdo longo para demonstrar a rolagem
      </div>
    </div>
  </body>
</html>

Modifique o arquivo styles.css para aplicar o posicionamento fixo aos anúncios:

body {
  font-family: Arial, sans-serif;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}

.content {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
}

.left-ad,
.right-ad {
  position: fixed;
  width: 150px;
  background-color: #f4f4f4;
  padding: 10px;
  border: 1px solid #ddd;
}

.left-ad {
  left: 20px;
  top: 50%;
  transform: translateY(-50%);
}

.right-ad {
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
}

Pontos chave sobre o posicionamento fixo:

  • position: fixed; mantém os anúncios em uma posição constante
  • As propriedades left e right posicionam os anúncios nas laterais da tela
  • top: 50% e transform: translateY(-50%) centralizam os anúncios verticalmente

Exemplo de saída no navegador:

  • Dois anúncios laterais aparecerão fixos na tela
  • Os anúncios permanecem no lugar ao rolar a página
  • Os anúncios são centralizados verticalmente na tela

Ajustar o Posicionamento de Elementos com as Propriedades Top e Right

Nesta etapa, você aprenderá como controlar com precisão o posicionamento de elementos com posicionamento fixo usando as propriedades top, right, bottom e left. Essas propriedades CSS permitem que você posicione elementos fixos exatamente onde deseja na tela.

Atualize o arquivo styles.css para demonstrar diferentes técnicas de posicionamento:

/* Os estilos anteriores permanecem os mesmos */

.left-ad {
  position: fixed;
  top: 20px; /* 20 pixels do topo da tela */
  left: 20px; /* 20 pixels da esquerda da tela */
  width: 150px;
  background-color: #f4f4f4;
  padding: 10px;
  border: 1px solid #ddd;
}

.right-ad {
  position: fixed;
  top: 50%; /* Centralizado verticalmente */
  right: 20px; /* 20 pixels da direita da tela */
  width: 150px;
  transform: translateY(-50%); /* Ajuste para centralização perfeita */
  background-color: #e4e4e4;
  padding: 10px;
  border: 1px solid #ccc;
}

.bottom-ad {
  position: fixed;
  bottom: 20px; /* 20 pixels da parte inferior da tela */
  left: 50%; /* Centralizado horizontalmente */
  width: 300px;
  transform: translateX(-50%); /* Ajuste para centralização perfeita */
  background-color: #d4d4d4;
  padding: 10px;
  text-align: center;
  border: 1px solid #bbb;
}

Atualize o index.html para incluir o novo anúncio inferior:

<body>
  <div class="left-ad">
    <h3>Anúncio do Lado Esquerdo</h3>
    <p>Posicionado a 20px do canto superior esquerdo</p>
  </div>

  <div class="right-ad">
    <h3>Anúncio do Lado Direito</h3>
    <p>Centralizado verticalmente</p>
  </div>

  <div class="bottom-ad">
    <h3>Anúncio Inferior</h3>
    <p>Centralizado na parte inferior da tela</p>
  </div>

  <div class="content">
    <h1>Layout com Posicionamento Fixo</h1>
    <p>Explore diferentes técnicas de posicionamento</p>

    <div style="height: 2000px;">Role para ver os elementos fixos</div>
  </div>
</body>

Propriedades de posicionamento chave explicadas:

  • top: Distância do topo da tela
  • right: Distância da direita da tela
  • bottom: Distância da parte inferior da tela
  • left: Distância da esquerda da tela
  • transform: Ajuste fino do posicionamento para centralização perfeita

Exemplo de saída no navegador:

  • Anúncio esquerdo: 20 pixels do canto superior esquerdo
  • Anúncio direito: Centralizado verticalmente no lado direito
  • Anúncio inferior: Centralizado na parte inferior da tela
  • Todos os elementos permanecem fixos durante a rolagem

Testar o Comportamento de Rolagem de Elementos Fixos

Nesta etapa, você explorará o comportamento de rolagem único de elementos com posicionamento fixo, adicionando mais conteúdo para demonstrar como esses elementos permanecem estacionários enquanto a página rola.

Atualize o arquivo index.html para incluir mais conteúdo para rolagem:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <title>Teste de Rolagem com Posicionamento Fixo</title>
    <link rel="stylesheet" href="styles.css" />
  </head>
  <body>
    <div class="left-ad">
      <h3>Anúncio Esquerdo</h3>
      <p>Eu permaneço no lugar!</p>
    </div>

    <div class="right-ad">
      <h3>Anúncio Direito</h3>
      <p>Sempre visível</p>
    </div>

    <div class="bottom-ad">
      <h3>Anúncio Inferior</h3>
      <p>Fixo na parte inferior</p>
    </div>

    <div class="content">
      <h1>Demonstração do Comportamento de Rolagem</h1>

      <div class="scroll-content">
        <h2>Role para baixo para ver os elementos fixos</h2>

        <!-- Crie conteúdo longo para habilitar a rolagem -->
        <div class="long-content">
          <h3>Seção de Conteúdo Longo</h3>
          <p>
            Esta seção permitirá que você role e observe como os elementos com
            posicionamento fixo permanecem no lugar.
          </p>

          <!-- Repita parágrafos para criar conteúdo rolável -->
          <p>
            Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in
            dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula.
          </p>

          <!-- Adicione múltiplas repetições para criar um comprimento de rolagem significativo -->
          <p>
            Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in
            nulla enim. Phasellus molestie magna non est bibendum non venenatis
            nisl tempor.
          </p>

          <!-- Repita parágrafos semelhantes várias vezes -->
          <p>
            Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor
            posuere. Praesent id metus massa, ut blandit odio.
          </p>

          <!-- Continue adicionando parágrafos para criar o efeito de rolagem -->
          <p>
            Proin quis tortor orci. Etiam at risus et justo dignissim congue.
            Donec congue lacinia dui, a porttitor lectus condimentum laoreet.
          </p>

          <!-- Mais parágrafos para estender a rolagem -->
          <p>
            Nunc dignissim risus id metus. Cras ornare tristique elit. Vivamus
            vestibulum nulla sit amet tristique reprehenderit.
          </p>
        </div>
      </div>
    </div>
  </body>
</html>

Atualize o styles.css para aprimorar a demonstração de rolagem:

body {
  font-family: Arial, sans-serif;
  line-height: 1.6;
  margin: 0;
  padding: 0;
}

.content {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
}

.long-content {
  background-color: #f9f9f9;
  padding: 20px;
}

/* Os estilos de posicionamento fixo anteriores permanecem os mesmos */

Observações chave sobre o posicionamento fixo:

  • Elementos fixos permanecem na mesma posição da tela
  • A rolagem não afeta seu posicionamento
  • Elementos permanecem visíveis independentemente da posição de rolagem da página

Exemplo de comportamento de rolagem:

  • Os anúncios esquerdo, direito e inferior permanecem estacionários
  • O conteúdo rola atrás dos elementos fixos
  • Os elementos fixos estão sempre visíveis na tela

Resumo

Neste laboratório, os participantes aprenderam sobre o posicionamento fixo em CSS, uma poderosa técnica de layout que permite que elementos permaneçam estacionários na tela, independentemente da rolagem da página. Ao usar a propriedade position: fixed, os desenvolvedores podem criar elementos que permanecem em um local consistente, como anúncios laterais ou menus de navegação, que permanecem visíveis mesmo quando os usuários rolam pelo conteúdo.

O laboratório guiou os alunos na criação de um exemplo prático demonstrando o posicionamento fixo, incluindo a configuração de uma estrutura de projeto HTML e a aplicação de propriedades CSS como top e right para controlar com precisão o posicionamento dos elementos. Os participantes exploraram as principais características do posicionamento fixo, como sua referência à janela do navegador e sua capacidade de manter uma posição constante na tela, proporcionando experiência prática com esta técnica essencial de layout CSS.

OSZAR »