Como se ha visto, cada elemento se puede rodear por bordes entre el relleno y el margen. La propiedad principal que hace que se muestre un borde alrededor de un objeto es border-style.
- static: el elemento se posiciona siguiendo el flujo normal de la página y no se afecta por top, bottom, left y right.
- relative: el elemento se posiciona según su posición original. Si se le asigna valor a top, bottom, left y right se desplazará según se indique. Los demás elementos no ocuparán el espacio dejado por él.
- fixed: el elemento se posiciona según la ventana del navegador, por lo que siempre se encontrará en el mismo lugar aunque la página se le haga scroll. Con top, bottom, left y right se desplazará según se indique. Un elemento fijo no deja ningún hueco en el lugar que él hubiera estado normalmente colocado.
- absolute: el elemento se posiciona de manera relativa al ancestro más próximo POSICIONADO, si no hay, usa el cuerpo del documento y se mueve con el scroll de la página. Si se le asigna valor a top, bottom, left y right se desplazará según se indique. Los demás elementos ocuparán el espacio dejado por él.
- sticky: el elemento se posiciona según el scroll del usuario. Estos elementos alternan entre relative y fixed en función de la posición del scroll. Si se le asigna valor a top, bottom, left y right se desplazará según se indique.
position: fixed
<div> colocado de manera fija con respecto a la pantalla del navegador.
.fijo{
position: fixed;
bottom:0px;
right: 0px;
padding: 10px;
background-color: lightblue;
border: 2px solid red;
}
Elemento pegajoso
.pegajoso{
position:sticky;
top: 25px;
left: 25px;
max-width: 250px;
padding: 10px;
}
.pegajoso *{
padding: 5px;
background-color: lightsalmon;
border: 2px solid red;
}
position:sticky
Matiene su posición hasta que por el scroll quedaría fuera y entonces se vuelve fijo.
Elementos estáticos, relativos y absolutos
div{
width: 80%;
display: inline-block;
margin-bottom: 10px;
}
.row{
position: relative;
padding: 50px 0px;
}
.fijo{
position: fixed;
bottom:0px;
right: 0px;
max-width: 250px;
padding: 10px;
background-color: lightblue;
border: 2px solid red;
}
.estatico{
position: static;
top: 25px;
left: 25px;
max-width: 250px;
padding: 10px;
background-color: lightblue;
border: 2px solid red;
}
.relativo{
position: relative;
top: 25px;
left: 25px;
max-width: 250px;
padding: 10px;
background-color: lightcoral;
border: 2px solid red;
}
.relativo-z{
position: relative;
top: 25px;
left: 25px;
max-width: 250px;
padding: 10px;
background-color: lightcoral;
border: 2px solid red;
z-index: -1;
}
.absoluto{
position: absolute;
top: 25px;
left: 25px;
max-width: 250px;
padding: 10px;
background-color: lightgreen;
border: 2px solid red;
}
position:static
No se afecta por las propiedades top y left
position:static
No se afecta por las propiedades top y left
position:relative
Sí se afecta por las propiedades top y left a partir de su ubicación en el flujo de la página
position:static
No se afecta por las propiedades top y left
position:absolute
Relativo al padre. Está declarado el primero, pero al ser absoluto deja hueco y los demás <div> lo ocupan
position:static
No se afecta por las propiedades top y left
position:relative
Ahora se pinta debajo porque tiene z-index: -1;
position:static
No se afecta por las propiedades top y left
Inicio