Com a finalidade de desenvolvermos layouts mais complexos, precisamos discutir sobre a propriedade position
. Esta propriedade possui diversos valores possíveis e seus nomes não fazem sentido e são impossíveis de lembrar. Vamos ver um por um, mas talvez seja bom você também marcar esta página.
o valor static
é o valor padrão de todos os elementos HTML. Um elemento com position: static;
não se posiciona de maneira especial, seria o mesmo que dizer que o elemento não tem posição definida ou então que um elemento com o atributo position
definido seria posicionado.
relative
se comporta igualmente ao static
, a menos que se adicione propriedades extras no estilo do elemento.
Definindo as propriedades top
, right
, bottom
, e left
em um elemento position:relative o ajustamos em relação à posição atual dele. Outros conteúdos não vão se ajustar para se encaixarem em qualquer espaço deixado por esse elemento.
Oi! Não se importe comigo ainda.
</div>
Um elemento fixo - fixed
- é posicionado relativamente ao "viewport", isso significa que ele sempre ficará no mesmo lugar mesmo que haja rolagem na página. Assim como o relative
, as propriedades top
, right
, bottom
e left
também são utilizadas.
Tenho certeza que você notou um elemento fixo no canto direito da tela, estou te dando a permissão de observá-lo agora, e aqui está o CSS aplicado a ele:
Um elemento fixo não deixa espaço vazio onde ele seria inserindo normalmente no documento.
Navegadores de dispositivos móveis são bastante instavéis ao lidar com o valor fixed
. Saiba mais sobre o assunto aqui.
O valor absolute
é o mais complicado. Este valor se comporta como o fixed
, porém tendo como referência a posição do elemento relativo mais próximo de onde está contido, ao invés do viewport. Se um elemento position:absolute não possuir elementos ancestrais posicionados relativamente, ele utilizará o body
como referência.
Aqui está um simples exemplo:
Este elemento está com position:relative
. Se este elemento tivesse com position: static;
, seu elemento filho escaparia e se posicionaria em relação ao elemento body
do documento
Este elemento é position:absolute
. E é posicionado em relação ao seu elemento pai.
Este é um assunto complicado, mas é essencial para estruturação de layouts em HTML com CSS. Na próxima página, vamos utilizar a propriedade position
em um exemplo mais prático.