Saltar al contenido

Clase 12 - Position y Display

#css #position #display

Position

  • La propiedad position en CSS la utilizamos para controlar la posición de un elemento en la página
  • Existen 5 valores posibles para esta propiedad:
    • Static
    • Relative
    • Absolute
    • Fixed
    • Sticky

Static

  • Es el valor predeterminado.
  • Siguen el flujo normal del documento y no se ven afectados por las propiedades top, bottom, left y right
.coral {
background-color: coral;
}
.lightseagreen {
background-color: lightseagreen;
position: static;
}
.lightblue {
background-color: lightblue;
}
.lightgreen {
background-color: lightgreen;
}

Static

Relative

  • También sigue el flujo normal del documento,
  • Pueden ser desplazados de su posición original utilizando las propiedades top, bottom, left y right
.coral {
background-color: coral;
}
.lightseagreen {
background-color: lightseagreen;
position: relative;
top: 50%;
}
.lightblue {
background-color: lightblue;
}
.lightgreen {
background-color: lightgreen;
}

Relative

Absolute

  • No siguen el flujo normal del documento y se pueden superponer.
  • Se posicionan en relación con su elemento padre más cercano que tenga un position distinto de static
.coral {
background-color: coral;
}
.lightseagreen {
background-color: lightseagreen;
position: absolute;
top: 50px;
left: 50px;
}
.lightblue {
background-color: lightblue;
}
.lightgreen {
background-color: lightgreen;
}

Absolute

Fixed

  • Se posicionan en relación con la ventana del navegador.
  • Se eliminan del flujo normal del documento y mantienen su posición aunque la página se desplace
.coral {
background-color: coral;
}
.lightseagreen {
background-color: lightseagreen;
position: fixed;
bottom: 50px;
right: 1500px;
}
.lightblue {
background-color: lightblue;
}
.lightgreen {
background-color: lightgreen;
}

Fixed

Sticky

  • Tiene un comportamiento relative hasta que alcanza un cierto punto de desplazamiento (scroll)
  • A partir de ese momento se comporta como fixed.
  • Es necesario especificar la posición donde el elemento debe pegarse utilizando alguna de las propiedades top, bottom, left o right
.coral {
background-color: coral;
}
.lightseagreen {
background-color: lightseagreen;
position: sticky;
top: 50px;
}
.lightblue {
background-color: lightblue;
}
.lightgreen {
background-color: lightgreen;
}

Sticky1Sticky2

Display

  • La propiedad display en CSS controla cómo se muestra un elemento en una página web.
  • Existen varios valores y cada uno posee su propia funcionalidad:
    • block
    • inline
    • inline-block
    • none
    • flex
    • grid

Block

  • El elemento se muestra como un bloque y ocupa todo el ancho disponible de su contenedor.
  • Su altura podemos definirla o se ajustará automáticamente al contenido.
.color-box {
padding: .5em;
text-align: center;
font-size: 40px;
font-weight: bold;
color: #666;
box-sizing: border-box;
height: 200px;
display: block
}

Block

Inline

  • El elemento se muestra como una línea dentro del flujo de elementos.
  • No ocupan todo el ancho disponible y su altura se adapta automáticamente al contenido.
.color-box {
padding: .5em;
text-align: center;
font-size: 40px;
font-weight: bold;
color: #666;
box-sizing: border-box;
height: 10000px;
width: 10000px;
display: inline;
}

Inline

Inline-block

  • Combina las características de block e inline.
  • Se muestran como elementos en línea y solo ocupan el espacio necesario, pero permite establecer un alto y ancho.
.color-box {
padding: .5em;
text-align: center;
font-size: 40px;
font-weight: bold;
color: #666;
box-sizing: border-box;
height: 200px;
width: 450px;
display: inline-block;
}

inline-block

Flex

  • El elemento se mostrará como un contenedor flexible.
  • Esto nos permite una fácil manipulación del diseño y posicionamiento de sus hijos
.container {
background-color: #181818;
display: flex;
flex-direction: row;
}
.color-box {
width: 450px;
height: 200px;
display: block;
}

flex-row

.container {
background-color: #181818;
display: flex;
flex-direction: column;
}
.color-box {
width: 450px;
height: 200px;
display: block;
}

flex-column

Grid

  • El contenedor se mostrará como una cuadrícula, permitiendo así un control preciso del diseño y posicionamiento de los hijos.
  • Los elementos se dividen en filas y columnas.
.grid-container {
background-color: #181818;
display: grid;
/* Define tres columnas de igual ancho */
grid-template-columns: 1fr 1fr 1fr;
/* Define cuatro filas de igual ancho */
grid-template-rows: 1fr 1fr 1fr 1fr;
/* Define espacio entre las celdas */
gap: 10px;
}

grid