CSS Desenvolvimento

Como utilizar a position absolute?

17 de abril de 2019

Como utilizar a position absolute?

Veremos como utilizar a regra position com o valor absolute, os problemas que ela pode causar e como empregá-la de melhor forma.

Definição e como funciona a position absolute

A posição absolute nos permite movimentar o elemento livremente com top, right, bottom e left

O parâmetro que o elemento utiliza para referenciar-se é o seu último elemento pai que tem uma regra de posição

Ou seja, se quisermos posicionar uma div em qualquer lugar dentro de outra, esta segunda div pai deve conter uma valor na propriedade position

E lembrando que static não é aceito, precisamos ter um valor diferente como por exemplo relative

Regra no CSS

Podemos posicionar um elemento com absolute da seguinte maneira:

.seletor {
    position: absolute;
}

Porém não esqueça de atribuir uma position ao elemento pai, se não o elemento posicionado com absolute pode não obedecer corretamente as posições especificadas por você

Formas de utilizar position absolute

Veja agora um exemplo prático do absolute, no seguinte código:

<div class="box1"></div>
<div class="box2">
    <div class="absolute"></div>
</div>

// css
.box1 {
    width: 100px;
    height: 100px;
    background-color: red;
}

.box2 {
    width: 100px;
    height: 100px;
    background-color: green;
}

.absolute {
    width: 50px;
    height: 50px;
    background-color: blue;
    position: absolute;
    top: 0;
}

Como a div box2 não recebeu nenhuma posição explicitamente, a div absolute se posiciou de acordo com o body, e não respeitou a regra de CSS que faria ela permanecer na div2, veja:

position absolute 1

Porém se adicionarmos, por exemplo, uma regra de posição a box2:

.box2 {
    width: 100px;
    height: 100px;
    background-color: green;
    position: relative;
}

O elemento absolute respeita o seu lugar no HTML e fica no ponto 0 de div2, veja:

position absolute 2

Centralizando um elemento com position absolute

Uma outra dificuldade muitas vezes encontrada é centralizar este elemento em outro elemento pai

Primeiramente para centralizar na horizontal, você deve inserir left e right com valor 0 nas regras, e deixar margin-left e right com o valor auto

.absolute {
    width: 50px;
    height: 50px;
    background-color: blue;
    position: absolute;
    left: 0;
    right: 0;
    margin-left: auto;
    margin-right: auto;
}

Assim centralizaremos na horizontal:

position absolute 3

Para a vertical é no mesmo sentido, devemos zerar os valores de top, left, bottom, right e deixar uma regra para margin com auto

.absolute {
    width: 50px;
    height: 50px;
    background-color: blue;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

Veja:

position absolute 4

E se você precisa centralizar de forma responsiva, utilize a seguinte regra:

.absolute {
    width: 50px;
    height: 50px;
    background-color: blue;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

O resultado final será o mesmo. 🙂

Conclusão

Position absolute é uma maneira de posicionarmos os elementos no HTML de forma eficiente

Pois nos da mais liberdade de inserir as direções ‘absolutas’ sem nos preocuparmos com outros elementos que estejam próximos ao que queremos posicionar

Apenas devemos cuidar de definir uma position, que não seja static, para o elemento pai do elemento a ser posicionado para nossas instruções serem fielmente interpretadas

E é isso sobre absolute, obrigado por lerem até o fim, caso possível se inscrevam na nossa lista para receberem mais conteúdo e até o próximo!

Veja também nosso canal no YouTube!

Subscribe
Notify of
guest
0 Comentários
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x