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.
Este módulo não possui perguntas. Marque como concluído.