O que é posicionamento Fixed e Sticky e como ele difere do posicionamento Absolute?

O posicionamento fixed e sticky são duas estratégias importantes de posicionamento CSS, cada uma oferecendo comportamentos distintos em comparação com o posicionamento absolute. Quando um elemento é posicionado com position: fixed, ele é removido do fluxo normal do documento e colocado em relação à viewport, o que significa que ele permanece na mesma posição mesmo quando o usuário rola a página. Isso é frequentemente usado para elementos como cabeçalhos ou barras de navegação que precisam permanecer visíveis o tempo todo. Por exemplo, se você quiser que um título fique fixo no topo da página, você pode usar o seguinte código:
<link rel="stylesheet" href="styles.css">
<h1>Fixed Header</h1>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam.</p>
<p>Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris.</p>
<p>Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla.</p>
<p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
<p>Curabitur sodales ligula in libero. Sed dignissim lacinia nunc. Curabitur tortor.</p>
<p>Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis.</p>
<p>Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus.</p>
<p>Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci.</p>
<p>Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum.</p>
<p>Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit.</p>
body {
  margin: 0;
  padding-top: 60px;
  font-family: Arial, sans-serif;
  line-height: 1.6;
}

h1 {
  position: fixed;
  top: 0;
  width: 500px;
  background: white;
  padding: 10px;
  border-bottom: 2px solid #ccc;
}

p {
  max-width: 600px;
  margin: 20px auto;
}
Neste exemplo, o elemento h1 ficará fixo no topo da viewport e mesmo quando o usuário rolar a página, ele permanecerá no lugar. Isso é especialmente útil para criar elementos de UI persistentes, como cabeçalhos fixos ou navegação sempre visível. position: sticky se comporta como um híbrido entre posicionamento relativo e fixo. Inicialmente, o elemento se comporta como se estivesse posicionado relativamente, permanecendo dentro do fluxo do documento. No entanto, uma vez que o usuário rola o elemento além de um determinado ponto, ele "gruda" na viewport (geralmente no topo) e se comporta como se estivesse fixo. Isso é ótimo para criar elementos como barras de navegação fixas, que só se tornam fixas quando o usuário rola até uma determinada posição. Aqui está como você pode aplicar posicionamento sticky:
<link rel="stylesheet" href="styles.css">
<h1>Sticky Header</h1>

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio. Praesent libero. Sed cursus ante dapibus diam.</p>
<p>Sed nisi. Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum. Praesent mauris.</p>
<p>Fusce nec tellus sed augue semper porta. Mauris massa. Vestibulum lacinia arcu eget nulla.</p>
<p>Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
<p>Curabitur sodales ligula in libero. Sed dignissim lacinia nunc. Curabitur tortor.</p>
<p>Pellentesque nibh. Aenean quam. In scelerisque sem at dolor. Maecenas mattis.</p>
<p>Sed convallis tristique sem. Proin ut ligula vel nunc egestas porttitor. Morbi lectus risus.</p>
<p>Donec congue lacinia dui, a porttitor lectus condimentum laoreet. Nunc eu ullamcorper orci.</p>
<p>Quisque eget odio ac lectus vestibulum faucibus eget in metus. In pellentesque faucibus vestibulum.</p>
<p>Nulla at nulla justo, eget luctus tortor. Nulla facilisi. Duis aliquet egestas purus in blandit.</p>
h1 {
  position: sticky;
  top: 30px;
  left: 30px;
}
Neste exemplo, o elemento h1 se comportará normalmente até que o usuário role 30px para longe do topo, momento em que ele irá "grudar" no topo da viewport. Aqui estão algumas diferenças principais entre posicionamento absoluto, fixo e sticky:
  • O posicionamento absoluto remove um elemento do fluxo do documento e o posiciona em relação ao ancestral posicionado mais próximo, ou ao bloco contêiner inicial se nenhum existir. O elemento permanece nessa posição independentemente da rolagem.
  • O posicionamento fixo também remove o elemento do fluxo do documento mas o fixa em relação à viewport, significando que ele permanecerá visível no mesmo local mesmo quando a página for rolada.
  • O posicionamento sticky mantém o elemento no fluxo normal inicialmente mas permite que ele fique fixo no lugar após rolar além de um limite definido.
Essas estratégias permitem que você crie layouts que incluem elementos flutuantes, cabeçalhos fixos e componentes de interface mais dinâmicos, melhorando a experiência do usuário ao tornar informações importantes sempre acessíveis.
Este módulo não possui perguntas. Marque como concluído.