Saltar al contenido

¿Cómo hacer una columna fija en CSS usando CSS Grid Layout?

No olvides que en las ciencias un problema puede tener diversas soluciones, de igual modo compartimos lo más óptimo y mejor.

Solución:

Puede lograr esto agregando estas reglas CSS a su id #left:

position: sticky; // See link
top: 0; //to make it stick to the top of the screen
height: 100vh; // make the height equal to 100 view height

Enlace para posición fija: posición fija con nada más que CSS

sticky es un nuevo valor para la propiedad de posición, agregado como parte de las especificaciones del módulo de diseño CSS3. Actúa de manera similar al posicionamiento relativo, ya que no elimina nada del flujo de documentos. En otras palabras, un elemento fijo no tiene ningún efecto sobre la posición de los elementos adyacentes y no colapsa su elemento principal.

Espero que te ayude

EDITAR (corregir comportamiento nervioso)

Para evitar que la parte izquierda salte al final de la página, simplemente agregue la siguiente regla CSS a su id #left:

box-sizing: border-box;

Ver fragmento de código actualizado:

body 
    margin: 0 0 0 0;


#container 
    display: grid;
    grid-template-columns: 50% 50%;


.section 
    padding: 5% 5% 5% 5%;


#left 
    background-color: aquamarine;
    position: sticky;
    top: 0;
    height: 100vh;
    box-sizing: border-box;


#right 
    background-color: beige;

  

This should not scroll

Tu escribiste:

¿Hay alguna forma de arreglar la columna de la izquierda?

Agradecería una forma de hacerlo funcionar con el diseño de la cuadrícula.

Si desea que el elemento siga siendo un elemento de la cuadrícula, la respuesta es “no”.

Una vez que un elemento ha position: absolute o position: fixed (que es una forma de posicionamiento absoluto, con referencia a la ventana gráfica), adquiere nuevas características:

  • el elemento se elimina del flujo de documentos
  • el elemento se quita de la contexto de formato de cuadrícula
  • el elemento ya no es un elemento de cuadrícula

De la especificación:

10. Posicionamiento absoluto

Un elemento secundario absolutamente posicionado de un contenedor de cuadrícula está fuera de flujo y no es un elemento de cuadrícula, por lo que no afecta la ubicación de otros elementos o el tamaño de la cuadrícula.

Entonces un elemento de cuadrícula no funciona bien con el posicionamiento absoluto.

Sin embargo, no tendrá problemas para solicitar position: fixed a un contenedor de rejilla.

Considere administrar su #left y #right elementos por separado. #left puede ser un contenedor de rejilla de posición fija. #right puede ser otro contenedor de rejilla y permanecer en flujo.


Además, como acotación al margen, le ha dado a sus elementos de cuadrícula un relleno basado en porcentajes:

.section 
    padding: 5% 5% 5% 5%;

Al aplicar margin y padding para los elementos de la cuadrícula (y elementos flexibles), es mejor mantenerse alejado de las unidades porcentuales. Los navegadores pueden calcular los valores de manera diferente.

  • El porcentaje de relleno en el elemento de la cuadrícula se ignora en Firefox
  • ¿Por qué el relleno de porcentaje no funciona en elementos flexibles en Firefox?

Finalizando este artículo puedes encontrar las ilustraciones de otros programadores, tú igualmente tienes la opción de mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *