Busca

Boas práticas de Desenvolvimento com Padrões Web


Propriedade Position do CSS

A propriedade position não serve para criar estruturas de layouts. Você o usará para coisas mais simples. Existem 3 tipos: relative, absolute e fixed. Entenda como eles funcionam e quais as suas relações.

12/05/2009 por Diego Eis
41 Comentários

Entendendo a propriedade Position

O Position é uma propriedade perigosa para iniciantes. Normalmente o desenvolvedor que acaba de conhecer essa propriedade, acha que ela é a resposta para todos os problemas de posicionamento e diagramação de layout. Pelo contrário. O Position não serve para diagramar a estrutura de layouts. Para isso, você utiliza a propriedade float do css. O Position vai servir para fazer coisas mais simples.

Existem 3 tipos de valores que usamos na propriedade position: relative, absolute e fixed.

Position Fixed

O position: fixed; irá fixar a posição do elemento na coordenada que você definir. A medida que a página é rolada, o elemento continua fixo na posição que você definiu e o conteúdo da página rola normalmente. Veja um exemplo de position fixed.

Position Relative

Todos os positions precisam de um ponto para iniciar o cálculo da coordenada para assim posicionar o elemento na tela. Ao contrário do que muitos acham, esse ponto não é o ponto central do elemento, o ponto base é o canto superior esquerdo do elemento. A partir deste canto, o browser irá calcular a coordenada que você definiu e irá posicionar o elemento no viewport.

O position relative posiciona o elemento em relação e ele mesmo. Ou seja, o ponto zero será o canto superior esquerdo, e ele começará a contar a partir dali.

position-relative

Position Absolute

O Position Absolute é um tanto diferente do Relative. Enquanto o elemento com Position Relative utiliza seu próprio canto para referenciar sua posição, o elemento com Position Absolute se utiliza do ponto superior esquerdo de outros elementos. Estes elementos são os parentes dele do elemento com position absolute. Mais especificamente o pai.

position-absolute

Veja um exemplo em HTML.

No caso, se o DIV pai não tivesse position definido, o div filho iria se referenciar pelo BODY mesmo. Se caso o div pai não tivesse position definido, e se ele também fosse envolvido por outro div com position, o div filho iria se referenciar por este terceiro div.
Logo, o div com position absolute referencia sua posição pelo div mais próximo que o envolve e que também tenha um position definido. Complicado, não é?

Uma ocasião bem simples onde usaríamos position é na home do Flickr. Onde temos aquela imagem bonita de capa e o nome do autor logo abaixo. Para posicionar o nome do autor lá no rodape do div, você utilizaria o Position. Veja a imagem de exemplo:

flickr-exemplo

No Campus Online há um vídeo explicativo sobre a propriedade position:

41 Comentários

Sua opinião:

Vamos elevar o nível de discussão. Exponha sua opinião, sua crítica.



RSS dos comentários deste post
URL para Trackback

41 Comentários

Ariê Perini 12/05/2009 às 17:38

Legal esse post para a galera que usa pouco a propriedade e geralmente busca sempre usar absolute, assim ele entende a melhor as outras proxiedades!

Dhony Silva 12/05/2009 às 18:23

Muito Interessante.

Sempre usei os Positions de outra forma. Estava completamente errado. Vou ter que estudar tudo novamente.

helder 12/05/2009 às 18:32

É sempre bom dar uma pincelada na propriedade position. O texto está bem claro e esclarecedor. Um dos primeiros artigos sobre posicionamento que lí e gostei foi o do diego torres se não me engano.

Warly 12/05/2009 às 18:43

Hey kra, otimas postagens nesse site, estou começando com padrões web, e todo esse conteudo aqui está me ajudando muuuito, Muito Obrigado kra.

Thiago Cavalcanti 12/05/2009 às 20:04

Só faltou falar que position:relative também é usado como um workaround para alguns bugs daquele navegador antigo que a gente preferiria esquecer.

É bom avisar isso porque tem gente que apaga uma declaração dessas testando somente no Firefox, depois fica se perguntando porque não funciona no dinossauro…

Luciana A.S. 13/05/2009 às 04:12

Bom este post…

Esclareceu bem a definição de cada propriedade do position.

Ajudou-me!!!

Marcos_paiva 13/05/2009 às 08:57

Sempre tive duvidas quanto a isso rsrs

Matheus 13/05/2009 às 10:17

Muito bacana o texto, rápido e objetivo!

O resto é praticar!!!!

Diego Felix 13/05/2009 às 11:16

Nosso professor da faculdade estava explicando isso ontem…

Gerou muito confusão sobre quais as melhores práticas..

Paulo de Tarso F. M. 13/05/2009 às 14:04

Ah! E só para lembrar: o position:fixed não funciona no IE6… :-/

dominique 13/05/2009 às 16:24

agora não tenho mais dúvidas. clareou tudo!

excelente!

Kaleb Martins 14/05/2009 às 19:16

A realidade é esdudar todas essas propriedade e esperar que o IE6 morra. Não ha mal que sempre dure. Certamente o Internet Explore vai acabar um dia. E com isso teremos uma internet bonita e criativa.

Abraços ;-)

José Monteiro 14/05/2009 às 19:35

Muito bom, obrigado.

Às vezes é preciso voltar e re-aprender o básico.

O video está excelente.

Parabéns.

Frank Gilber 15/05/2009 às 09:10

Ótimo post sobre as propriedades position, valeu Diego.

Carlos Eduardo - Kadu 15/05/2009 às 15:48

Interessante o post. Utilizo bastante o position relative para criar contextos de posicionamento.

anderson 16/05/2009 às 18:45

muito boa a matéria

welton matos 17/05/2009 às 23:02

Muito bom mesmo… Já me enrolei muito com eles. Há algum problema definir só um position? Em uma div geral por exemplo e as demais div, se eu deixar sem elas vão seguir a 1ª???

Frederico Figo 20/05/2009 às 09:32

Parabéns pelo artigo. Também utilizo bastante a propriedade position pra diagramação.

Cheers!

Henrique 21/05/2009 às 14:56

Muito bom.

Position é algo muito util, mas ainda hoje é fácil encontrar quem não saiba utiliza-lo. Talvez pela falta de artigos como esse.

Magno Valdetaro 22/05/2009 às 11:34

Ótimo artigo, realmente de grande ajuda e com o recurso do vídeo a compreensão fica completa, Parabéns!

Rainer 22/05/2009 às 14:34

Em alguns casos quando se usa margem negativa nos elementos de forma que sobreponha os outros, é preciso usar posição relativa no elemento. (somente IE6)

Dagmar 23/05/2009 às 10:08

Ótimo tutorial.
Eu tinha uma duvida já esclarecida sobre position relative =].
Até =]

Adriano Moreno 26/05/2009 às 11:53

Muito bom tutorial. Realmente esclarecedor.
Vlw

Luan Haddad 28/05/2009 às 18:28

Olá, muito bem explicado o tuto acaba gerando um conceito bem aprimorado aos iniciantes de CSS, assim evitando o uso incorreto para o layout das paginas. Vlw

Renato 02/06/2009 às 09:19

Gostei muito.

Muito bom, principalmente para quem está começando agora… muito objetivo. valews pessoal!

Daniel 05/06/2009 às 11:07

Pelo amor de Deus, tira esse Header gigantesco daí: “Propriedade Position do CSS”

A frase tem 4 palavras sendo 2 com no máximo 3 letras e ainda assim quebra a linha. Como um site de webdesign que deveria dar exemplo me coloca uma coisa horrível dessas?

David 06/06/2009 às 15:22

Muito já li sobre CSS, especialmente posicionamento. Hoje dou por sanadas todas minhas dúvidas a respeito de posicionamento. Eu muito me enrolava com isso ainda, estava tudo subentendido na minha cabeça. Achei incrível a clareza da explicação, a objetividade, a simplicidade. Tem inúmeros sites, inclusive sites que tratam exclusivamente de CSS, que complicam o negocio absurdamente, sendo algo tão simples… parabéns!

Natan 09/06/2009 às 18:16

Nunca usei o position de mandeira errada porque o float atendia bem minhas necessidade, mas não entendia bem o position.

Poste bacana, pois só quando compreendemos o porque de alguma coisa existir é que podemos usa-la corretamente.

Arlington Marlon 10/06/2009 às 12:06

Salve, slave galera, sou novo aqui no site e também nessa area de Tableless, na verdade o assunto que estou em dúvida e sobre como deixar o Layout ocupar 100% da tela, teria como alguem me explicar ou me passar um tuto de fácil entendimento… desde já agradeço a atenção.

Rodrigo Filardi 10/06/2009 às 12:36

“A propriedade position não serve para criar estruturas de layouts.”

Bom, servir até serve… mas talvez não seja a forma correta e adequada, certo?

Já vi alguns sites e inclusive fiz um certa vez, seguindo esses exemplos vistos, que era todo com position (relative e absolute).

O site funcionava crossbrowser e tinha um layout até bem rebuscado.

Esses dias tava até vendo o código de um site ATUAL e foi feito com position: http://www.canteseuamor.com.br/Default.aspx

Hugo Luiz 13/06/2009 às 01:48

Nossa! o grau de ensino é excelente. Parabéns pelo trabalho e muito obrigado por compartilhar o conhecimento, esse assunto RELATIVE & ABSOLUTE tava mo tempão a procura e achei aq.
vlwwww

Carlos 17/06/2009 às 12:12

Muito bom este post.

Rich Marvin 19/06/2009 às 11:43

Bom dia!!!, este artigo é muito bacana, tembém estou aprendendo CSS e já noto as diversas diferenças de modo de aplicação. Não condeno a utilização de tabelas, mas a formatação com os estilos CSS ajudam em muito, principalmente quando se trata de posicionamento.

Guia de Santos 22/06/2009 às 19:03

Acho interessante toda iniciativa que pode vir a ser benéfica para todos com intenções sérias e direcionadas.

Helo

Luan Garcia 24/06/2009 às 18:00

Muito legal o artigo, realmente o que mais se ve por ai são os iniciantes querendo posicionar tudo com position… Parabens e abs!

Marcelo 26/06/2009 às 22:27

Muito bom seu blog.

Entendendo a propriedade position do CSS | Andre Bellafronte 22/01/2010 às 18:24

[...] Propriedade Position do CSS Compartilhe: [...]