Tableless - Desenvolvimento inteligente com Padrões Web

12/05/2009
CSS

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.

Por


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:

Por Diego Eis

Diego Eis criou o Tableless para disseminar os padrões web no Brasil. Como consultor já treinou equipes de empresas como Nokia, Globo.com, Yahoo! e iG. É palestrante e empreendedor.

http://twitter.com/diegoeis/

Veja os outros posts de

  • http://www.workaholics.com.br Ariê Perini

    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

    Muito Interessante.

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

  • http://www.heldersalema.com.br helder

    É 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.

  • http://null Warly

    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.

  • http://designcombolachas.blogspot.com/ Thiago Cavalcanti

    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…

  • http://www.luwebarts.com.br Luciana A.S.

    Bom este post…

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

    Ajudou-me!!!

  • http://eumarcospaiva.wordpress.com Marcos_paiva

    Sempre tive duvidas quanto a isso rsrs

  • http://webcomfarinha.com/blog Matheus

    Muito bacana o texto, rápido e objetivo!

    O resto é praticar!!!!

  • Diego Felix

    Nosso professor da faculdade estava explicando isso ontem…

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

  • http://www.paulodetarso.com Paulo de Tarso F. M.

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

  • http://www.armariogeek.com.br dominique

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

    excelente!

  • Kaleb Martins

    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

    Muito bom, obrigado.

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

    O video está excelente.

    Parabéns.

  • Frank Gilber

    Ótimo post sobre as propriedades position, valeu Diego.

  • http://www.kadunew.com.br/blog Carlos Eduardo – Kadu

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

  • Pingback: CSS: Entendendo a propriedade Position « Sergio’s Blog

  • http://www.mercadoamigos.com.br anderson

    muito boa a matéria

  • http://www.mercadoamigos.com.br anderson

    muito bom

  • http://weltonmatos.wordpress.com welton matos

    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ª???

  • http://www.aikistudio.com.br Frederico Figo

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

    Cheers!

  • http://www.henriquemt.com.br Henrique

    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.

  • http://www.designkamikaze.com.br Magno Valdetaro

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

  • http://rainerborene.blogspot.com/ Rainer

    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)

  • http://www.dodivyper.com.br Dagmar

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

  • Pingback: BD1 - Desenvolvimento de sites e sistemas para web. São Paulo - SP » Entendendo a propriedade Position | Tutorial CSS

  • Adriano Moreno

    Muito bom tutorial. Realmente esclarecedor.
    Vlw

  • Luan Haddad

    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

    Gostei muito.

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

  • Daniel

    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

    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!

  • http://www.comofazerumblog.com.br Natan

    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

    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.

  • http://www.rhodesign.com.br/blog/ Rodrigo Filardi

    “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

    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

  • http://www.detetivesvisao.com.br Carlos

    Muito bom este post.

  • Rich Marvin

    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.

  • http://www.santos-sp.com Guia de Santos

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

    Helo

  • http://www.luangarcia.com Luan Garcia

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

  • http://www.msilustracoes.com.br Marcelo

    Muito bom seu blog.

  • Pingback: Entendendo a propriedade position do CSS | Andre Bellafronte

  • Pingback: Posicionamento estático, absoluto, relativo e fixo em CSS « Dicas Web e Design

  • Antonio carlos dias

    DEPOIS DE PROCURAR POR CENTENAS DE BLOG UMA SIMPLES EXPLICAÇÃO, COM PAGINAS E PAGINAS DE EXPLICAÇÃO ENTENDI TUDO COM ESSE VIDEO SOBRE POSICIONAMENTO VALEU DIEGOOOOOOO

  • http://blogecko.blogspot.com Felipe

    Nossa, já li livro, rodei vários textos, mas só fui conseguir entender essa bagaça, vendo esse vídeo aqui. E esse foi o primeiro site que eu encontrei quando procurei sobre tableless, valeu

  • http://www.mcpaineis.com.br placar eletronico

    Muito boa a explicaçao de como fazer para alinha as divis.
    Cesar

  • http://www.goomarketing.com.br Marketing no google bh

    Cada propriedade do position, foi muito bem relatada neste post. Parabéns

  • http://www.blog.clacelestial.com/ Clã Celestial Blog

    Aninhar esses caras as vezes pode ser complicado.

  • Renato

    Obrigado por essa dicas. Me ajudaram muito.

  • http://www.bovoqui.com Pietro

    Obrigado mesmo! Me ajudou muito!
    Estava com um problemão e se tutorial “Salvou a Pátria”!!!

  • Rafael

    Cara eu sempre achei que o position relative que se referenciava pelo pai mais é o absolute, muito bom o post, só poderia ter citado o top,left,right e bottom pra galera que não essas propriedades são para fazer o alinhamento de qualquer position(relative, absolute ou fixed)

  • Marcelino

    Isso solucionou minhas dúvidas, comecei a aprender css a 3 dias, e fui pegando tudo muito rápido e com facilidade, mas na hora que vi a propriedade position pensei exatamente o que foi excrito no texto, que isso iria solucionar todas minhas dúvidas de posicionamento, ae vi que não era assim, já tinha aprendido o float e clear antes, mas ignorei depois que vi o position, mas agora vejo que ele é melhorzin pra posicionar os elementos.