Diferença entre position: static, relative, absolute e fixed

Postado por: Pedro Rogério em

Neste tutorial vamos aprender a diferença entre position: static, relative, absolute e fixed no CSS.

position: static

Esse é o valor default para todo elemento HTML, o que significa que o elemento não tem posicionamento definido e seu fluxo ocorre normalmente no documento HTML.

#div1 {position: static}

Não é necessário definir position:static para os elementos da página pois esse é o valor default.

position: relative

Especificando position:relative agora você pode utilizar top ou bottom, right ou left para posicionar os elementos na página em relação ao lugar que ele ocuparia no fluxo do documento.

#div1 {
	position: relative;
    top: 40px;
    left: 20px;
}

Nesse exemplo posicionamos o elemento a 40px do topo e a 20px da esquerda em relação ao lugar que ele ocuparia no fluxo do documento. Vale lembrar que utilizando position:relative todo esse espaço que foi definido ainda continua sendo ocupado pelo elemento na página. Exemplo.

position: absolute

Utilizando position: absolute agora podemos posicionar exatamente nosso elemento em relação ao primeiro elemento pai com posição diferente de “static” numa sequência até parar no body.

#div1 {
	position: absolute;
    top: 40px;
    right:0;
}

Vale lembrar que a patir do momento que utilizamos position: absolute ele perde a ordem no fluxo do documento e o espaço ocupado passa a não existir mais. Exemplo.

position:relative + position: absolute

Observem o seguinte código HTML:

<div id="div1">
	<div id="div2"></div>
</div>

Se definirmos position: relative para a div1 e position: absolute para a div2 a partir de agora a div2 se posicionará absolutamente em relação a div1, não mais em ralação ao body da página. Exemplo.

position: fixed

#div1 {
	position: fixed;
    top:40px;
    left:10px;
}

Posiciona um elemento fixadamente na página em relação a janela, ou seja, independente de a pagina conter um scroll ou não, o elemento sempre ficará visíve ao usuário em relação as medidas definidas. Vale lembrar que esse tipo de posicionamento não funciona no Internet Explorer. Exemplo.

Central Server