Diferença entre position: static, relative, absolute e fixed
Postado por: Pedro Rogério emNeste 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.














O position fixed não funciona no IE6- né? no IE7 funciona normalmente. Ou estou enganado?
Cara está errado ali.
No ultimo exemplo está como static. O correto seria fixed.
E
Posiciona um elemento estaticamente
Talvez possa ser
Posiciona um elemento fixadamente
Ruan Carlos
@Julio César,
Sim, no IE7 ele já funciona.
@Ruan Carlos,
Foi um erro meu que eu nem havia reparado, já consertei aqui, obrigado pela dica.
Grande Pedro Rogério! Ótimo post. Esclareceu minhas dúvidas. Abraço.
Outra dica boa para entendimento de posicionamento com CSS é esse site aqui:
http://www.barelyfitz.com/screencast/html-training/css/positioning/
Em inglês.
Massa!
A novidade para mim foi o absolute ficar relativo ao item pai quando o pai está position:relative.
Valeu a dica
Muito bom, esse é um post que tem que ser bem explicado como o pedro fez ai pq se não o leitor sai mais confuso ainda ehhehe…Valeu Pedrão
t+
@Lourenzo
Isso é muito comum em menus.
Alguem pode me explicar o que ou quem seria o item pai ??!!
@Pietro,
Observe a seguinte marcação HTML que você irá entender isso na hora:
<div id=”pai”>
<div id=”filho”></div>
</div>
Não esta muito bom essi tutorial poderia ser muito melhor..Basta caprichar um poco mais na explicação!
ObG.
Tinha que ser o Genio mesmo!!!