Guia de Posicionamento CSS: static, relative, absolute

Neste tutorial, vamos explorar o universo do posicionamento em CSSO que é CSS?O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade.. Entender como cada valor de position funciona é essencial para criar layouts precisos, interativos e responsivos. Vamos seguir em formato narrativo, abordando cada conceito de forma gradual e com exemplos práticosClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. para que você entenda onde e como cada tipo de posicionamento pode ser aplicado.

Conceito de Position🔗

A propriedadeClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. position define o contexto de posicionamento de um elemento HTMLEstrutura Básica de um Documento HTMLEstrutura Básica de um Documento HTMLAprenda a criar a base perfeita para suas páginas com nosso tutorial de HTML. Descubra como organizar sua estrutura web de forma prática e sem complicações.. Em outras palavras, ela controla como o navegador distribui esses elementos na página, considerando sua relação com demais componentes e com a própria tela. Os valores disponíveis são:

  • static
  • relative
  • absolute
  • fixed
  • sticky

Cada um desses valores ajusta o comportamento do elemento e influencia as propriedadesClasses e Herança em ES6+Classes e Herança em ES6+Aprenda a dominar classes e herança em ES6+: escreva códigos JavaScript claros e eficientes com métodos, getters e setters. de deslocamento como top, right, bottom e left.

Position: static🔗

A maioria dos elementosTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. tem posição estática por padrão, isto é, position: static;. Quando um elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. está estático:

Em outras palavras, nenhum deslocamento especial ocorre. É como se o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. estivesse “colado” no layout de forma comum, sem interferir ou ser influenciado por posicionamentos específicos.

Exemplo (static)

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <style>
    .caixa-estatica {
      width: 150px;
      height: 150px;
      background-color: lightblue;
      position: static;
      /* top, left, etc. serão ignorados */
    }
  </style>
</head>
<body>
  <div class="caixa-estatica"></div>
</body>
</html>

Nesse exemplo, a divDivs e Spans: Uso e DiferençasDivs e Spans: Uso e DiferençasAprenda a usar divs e spans para estruturar páginas HTML. Descubra técnicas essenciais e dicas de boas práticas para criar layouts organizados. ocupa seu espaço naturalmente, sem responder a qualquer coordenada de posicionamento.

Position: relative🔗

Quando definimos position: relative;, o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. continua no fluxo normal do documento, assim como no caso estático. A diferença é que passamos a poder deslocar esse elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. em relação à sua posição original, usando top, right, bottom e left sem afetar o posicionamento dos outros elementosTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. (o espaço que ele ocupava no fluxo permanece reservado).

Características:

1. Mantém o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. no fluxo comum, mas cria um contexto de posicionamento para pseudo-elementosSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. e elementos com position: absolute descendentesCombinadores: Descendente, Filho Direto, Irmão Adjacente e GeralCombinadores: Descendente, Filho Direto, Irmão Adjacente e GeralAprenda a dominar os combinadores CSS e a selecionar elementos com precisão no seu HTML. Descubra como aplicar estilos eficientes e organizados em seu site..

2. Ao deslocar o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. usando top, left etc., o espaço original permanece em branco (ou seja, visualmente ele "sai" de seu lugar, mas os outros elementosTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. continuam atuando como se ele estivesse lá).

Exemplo (relative)

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <style>
    .caixa-relative {
      width: 150px;
      height: 150px;
      background-color: lightgreen;
      position: relative;
      top: 20px;
      left: 20px;
    }
  </style>
</head>
<body>
  <div class="caixa-relative">
    Esta caixa foi deslocada 20px para baixo e 20px para a direita,
    mas seu espaço original continua reservado.
  </div>
</body>
</html>

Observe que o container mantém seu espaço no fluxo, mas é deslocado visualmente, sobrepondo-se ao que estiver atrás.

Position: absolute🔗

O posicionamento absoluto (position: absolute;) retira o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. do fluxo normal da página, permitindo que seja posicionado em relação ao primeiro ancestral posicionado (um elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. pai com relative, absolute ou fixed) ou, se nenhum ancestral estiver posicionado, em relação ao body.

Características:

1. Remove o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. do fluxo, de modo que os demais elementosTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. se reorganizam como se ele não existisse.

2. Permite controlar a posição exata com top, right, bottom e left.

3. O referente de posicionamento (chamado containing block) é o primeiro ascendente que tenha uma posição diferente de static ou, caso contrário, a viewportResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade. (na maioria dos browsers, é como se fosse o body).

Exemplo (absolute)

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <style>
    .container {
      position: relative;
      width: 300px;
      height: 300px;
      background-color: lightblue;
      margin: 20px;
    }
    .caixa-absolute {
      position: absolute;
      width: 100px;
      height: 100px;
      background-color: coral;
      top: 50px;
      left: 30px;
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="caixa-absolute">Absoluta dentro de um container relative.</div>
  </div>
</body>
</html>

Nesse exemplo, a caixa laranja (.caixa-absolute) é posicionada em relação ao .container, que tem position: relative;. Assim, top: 50px; e left: 30px; referenciam a borda superior e a bordaSeletores e Propriedades CSS EssenciaisSeletores e Propriedades CSS EssenciaisAprenda a dominar o CSS com nosso tutorial completo: entenda seletores, propriedades essenciais e técnicas para criar layouts modernos e atrativos. esquerda do container e não do documento inteiro.

Position: fixed🔗

Com o valor fixed, o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. também é removido do fluxo, porém passa a ser posicionado em relação à viewportResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade., ou seja, à janela de visualização do navegador. Isso faz com que o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. permaneça no mesmo lugar da tela mesmo que o usuário role a página.

Características:

1. O elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. não se desloca quando a página é rolada.

2. top, right, bottom e left são calculados em relação à janela (viewportResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade.).

3. É útil para criar cabeçalhosFormatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Formatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Aprenda a formatar textos em HTML com tags de parágrafo, títulos e destaques, organizando seu conteúdo e garantindo semântica. e barras laterais “fixas” em layouts.

Exemplo (fixed)

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <style>
    .cabecalho-fixo {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 60px;
      background-color: navy;
      color: white;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    body {
      margin: 0;
      height: 2000px; /* Para ter rolagem */
    }
  </style>
</head>
<body>
  <div class="cabecalho-fixo">Este cabeçalho está fixo no topo!</div>
  <p>Role para ver o efeito do elemento fixo...</p>
</body>
</html>

Repare que o cabeçalhoFormatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Formatação de Texto: `<p>`, `<h1>-<h6>`, `<strong>`, `<em>`Aprenda a formatar textos em HTML com tags de parágrafo, títulos e destaques, organizando seu conteúdo e garantindo semântica. permanece sempre à vista, independentemente da rolagem.

Position: sticky🔗

O position: sticky combina o comportamento de elementosTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. relativos e fixos. Ele flui normalmente até alcançar um limite de rolagemOverflow e Controle de ConteúdoOverflow e Controle de ConteúdoAprenda a controlar a propriedade overflow em CSS, dominando rolagem, ocultação de conteúdo e textos longos para layouts responsivos e acessíveis. definido (por exemplo, top: 0;). Ao atingir esse limite, o elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. se “fixa” naquele ponto enquanto a rolagem continuar.

Características:

1. Funciona apenas dentro de um container que tenha espaço suficiente para que o sticky seja ativado.

2. O elementoTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. se comporta como position: relative até que o limite (top, left, etc.) seja cruzado durante a rolagemOverflow e Controle de ConteúdoOverflow e Controle de ConteúdoAprenda a controlar a propriedade overflow em CSS, dominando rolagem, ocultação de conteúdo e textos longos para layouts responsivos e acessíveis..

3. Ao atingir esse limite, ele se prende (fica “fixo”) até que o fluxo do container termine ou até que o usuário role para trás.

Exemplo (sticky)

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8" />
  <style>
    .container {
      height: 600px;
      overflow-y: scroll;
      border: 2px solid #333;
      margin: 20px;
    }
    .titulo-sticky {
      position: sticky;
      top: 0;
      background-color: gold;
      padding: 10px;
      padding-top: 30px;
    }
    .conteudo {
      height: 1000px;
      background: linear-gradient(lightgrey, white);
    }
  </style>
</head>
<body>
  <div class="container">
    <h2 class="titulo-sticky">Eu fico grudado no topo deste container!</h2>
    <div class="conteudo">
      Role dentro deste container para ver o efeito do sticky.
    </div>
  </div>
</body>
</html>

No exemplo, o .titulo-sticky se fixará no topo do .container enquanto houver espaço de rolagemOverflow e Controle de ConteúdoOverflow e Controle de ConteúdoAprenda a controlar a propriedade overflow em CSS, dominando rolagem, ocultação de conteúdo e textos longos para layouts responsivos e acessíveis. interno, mas não “escapará” para fora dele.

Comparação Geral🔗

Podemos resumir as diferenças numa tabelaCriando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Criando Tabelas: `<table>`, `<tr>`, `<td>`, `<th>`Descubra como montar tabelas HTML com tags básicas. Este tutorial prático ensina o uso de <table> <tr> <td> e <th> para organizar dados de forma eficiente. para facilitar a visualização:

ValorPermanece no fluxo?Posicionado em relação a?Deslocamento (top, etc.)?Fixa na tela ao rolar?
staticSimFluxo normal do documentoNãoNão
relativeSim (mas pode mover)Própria posição originalSimNão
absoluteNãoAncestral posicionado ou body/viewportSimNão
fixedNãoViewportSimSim
stickySim (até limite)Container de rolagem (ancestral)SimParcial (enquanto estiver acima do limite definido)

Conclusão🔗

Compreender posicionamento em CSSO que é CSS?O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade. é fundamental para ter controle granular sobre o layout. Saber escolher entre static, relative, absolute, fixed e sticky lhe permite criar estruturas coerentes, facilitar interações e tornar a navegação mais intuitiva. A recomendação é praticar bastante para internalizar como cada tipo de posicionamento interage com os elementosTags e Elementos: Sintaxe e HierarquiaTags e Elementos: Sintaxe e HierarquiaDescubra os fundamentos do HTML: aprenda sobre tags, elementos, hierarquia e boas práticas para criar páginas bem estruturadas e acessíveis. ao redor e com a viewportResponsividade com HTML: Viewport e `<picture>`Responsividade com HTML: Viewport e `<picture>`Descubra como usar a meta viewport e o elemento picture para imagens responsivas, garantindo desempenho, usabilidade e SEO de qualidade..

Dica: Sempre que possível, planeje antecipadamente o uso de contêineres posicionados (por exemplo, usando position: relative;) para que elementos absolute fiquem no lugar desejado, sem depender involuntariamente de todo o documento. Além disso, o sticky pode ser muito útil para seções que precisam ficar visíveis por um tempo, mas sem se manter fixas na tela o tempo todo.

Esperamos que este tutorial esclareça suas dúvidas sobre o assunto e sirva de guia inicial para você dominar de vez o fluxo de posicionamento em CSSO que é CSS?O que é CSS?Descubra como o CSS transforma a aparência das páginas web, separando conteúdo de design para melhor organização e flexibilidade.!

Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.

Referências🔗

Compartilhar artigo

Artigos Relacionados