Botón para abrir el Menú Botón para cerrar el Menú
Logo da empresa Alura
Iniciar Sesión Nuestros Planes
Formaciones Conoce a Luri
  • Programación _
  • Front End _
  • Data Science _
  • DevOps _
  • Innovación y Gestión _
Artículos de Tecnología > Front-end

CSS: Grids y tablas con responsividad en la Web

Alura
Mario Souto
Mario Souto
22/09/2021

Compartir

Grids consisten en dividir una proporción de la pantalla del usuario en partes iguales con espaciado entre ellas. Similar al antiguo sistema de table que teníamos, pero de manera receptiva, para que el sitio brinde una excelente experiencia de usuario.Los smartphones son prácticamente parte de las manos de todos los que tienen uno, todo el tiempo accedemos a apps de todo tipo (incluso recordando beber agua) y en ocasiones incluso nos olvidamos que detrás de muchas de estas hay una versión web que funciona tan bien cuánto.Diferentes sites acessados via um celular

Con el nivel de experiencia en el uso de las aplicaciones, la web se vio obligada a tener un estándar de calidad superior y una de las bases de esta experiencia es que un sitio sea realmente responsivo y eso es exactamente lo que veremos con más detalle en la publicación de hoy. y entender el concepto de grid del que se habla mucho.

¿Qué es el Grid?

Exemplo de grid com colunas

La idea de tener un grid consiste básicamente en dividir una proporción de la pantalla del usuario en partes iguales, con espaciamiento entre ellas. Esto ya existía desde el principio, cuando trabajábamos con columnas y celdas en el momento en que los sitios se hacían en tablas.

Site feito com tabelas

Como las tablas no son muy flexibles y ninguna otra tag de html tenía un estilo estándar siguiendo esta idea de dividir por partes iguales para definir una estructura, cuando surgió la necesidad de hacer diseños para múltiples dispositivos de diferentes tamaños, la cosa empezó a complicarse y muchos sitios antiguos que no se han actualizado todavía siguen hoy con un desplazamiento lateral.

Exemplo de site com scroll lateral

Con los diferentes tipos de pantallas que existen, el código CSS necesitaría tener muchas adaptaciones para que todo funcione si no hubiera un grid que sirviera como un lenguaje común con respecto al ancho de las cosas entre los diseñadores y los front-enders, porque el layout de un proyecto podría venir teniendo cada elemento un valor que cambiaría en las más diversas resoluciones, la idea es trabajar menos con valores fijos y más con valores relativos en css.

¿Y cómo hacer un grid con código?

Bueno, la mejor manera de introducir la parte del código es volver a la idea de dividir la pantalla en columnas del mismo tamaño como en la siguiente imagen:Grid com 12 colunas

Imagina que 12 significa el 100% del área disponible y 6 significa el 50% de esa área máxima donde se pueden presentar al usuario uno o varios contenidos, esta área se suele llamar contenedor.

  • Contenedor: Estructura que sirve de base para trabajar con columnas.

  • Columnas (col): Estructura que divide espacios dentro de un contenedor (se puede hacer con combinaciones de float y width, flexbox o incluso en la parte superior de la Grid Layout de CSS)

  • Gutter: es el nombre del espaciamiento que se da entre las columnas de un grid, en el modelo que hicimos lo definimos con padding en las columnas

  • Row: En el ejemplo no lo puse en todos los casos, pero podríamos crear este elemento que serviría como divisor horizontal dentro de los grids y que resetea el padding aplicado al contenedor, dejando las columnas con el máximo tamaño posible en su interior.

    Los nombres de las clases CSS aquí terminan considerando cada parte del grid como algo único, pero nada te detiene organizar el CSS como mejor te parezca con algo como BEM CSS, siempre que sea fácil de usar y mantener para su equipo durante todo el proyecto.

    Pero, ¿cómo funciona esto en responsivo?

    Trabajando con Media queries y Grids

    Para que este grid sea responsivo, simplemente agregue media queries que cambien el tamaño de nuestro contenedor:En la práctica, los grids que hacemos hoy se basan en algunas convenciones, como que la pantalla más pequeña del teléfono celular es la del iPhone 4 que tiene 320px de píxeles reales, la pantalla promedio de una tableta tiene 480px, la pantalla promedio de una computadora desktop tiene 1120px y así sucesivamente. (Estos valores pueden variar según cada proyecto y pantallas del momento). Sobre esta base, el diseñador del proyecto imagina cómo se puede distribuir el contenido dividiendo el área máxima posible de mostrar el contenido, también denominado contenedor en muchos casos, y en columnas.

    Bootstrap 4: ¿Grids con Flexbox?

    Bootstrap 3 tenía el estilo anterior de grid con float que vimos y en su nueva versión usando flexbox algunas cosas cambiaron:

    • Contenedor: la idea aquí sigue siendo la misma

    • Row: Ahora row tiene la función de aplicar flexbox a elementos secundarios.

    • Col: Un col solo tiene el comportamiento de ocupar el área máxima disponible y con más de una esta se ajusta automáticamente

    • Cada col todavía tiene un gutter de espaciamiento horizontal predefinido

    • Col-X: X es el número de columnas que ocupará un elemento, esto se hace con una combinación de flex-basis y max-width

      Hay otras variaciones sobre cómo usar el nuevo grid de bootstrap, si desea profundizarse más, eche un vistazo a la documentación de ellos e imagino que ahora será más fácil de usar :)

      Grids con Grid Layout

      Siguiendo la idea de solucionar algunos problemas de CSS, como centralizar las cosas, la spec de Grid Layout surgió como una forma de tener algo de la propia plataforma web para lidiar con grids.

      Aunque el nombre de una idea sería la solución mágica cuando hablamos de este tema, vale la pena recordar que la simplicidad del código es importante y en muchos casos el uso de esta nueva spec puede hacer que el código sea más complejo / confuso, así que usa con parsimonia y si quieres saber más sobre esto te indico esta publicación de alura. Y también hay este pequeño juego súper genial que te guiará a través de las diversas propiedades de la spec

      ¿Cómo simular fácilmente diferentes tipos de pantallas en la vida cotidiana?

      Botão que habilita e desabilita o simulador de resoluções no Chrome

      Para simular diferentes resoluciones a diario, no olvide que las herramientas de desarrollo de la mayoría de los navegadores, actualmente tenemos un icono que habilita un modo en el que es fácil cambiar de resolución.

      Site da alura alternando em resoluções de tela

      Sistemas de diseño

      Si te interesa grid, te dejo el consejo de que aprendas también sobre sistemas de diseño. Mucha gente descubre este tema observando cómo alguna marca organiza sus componentes a través de alguna herramienta como Storybook, hoy en día las formas de documentar y organizar componentes son el bombo del momento en el mundo Front End y tomar referencias puede ayudarte mucho para llegar a algo más sólido en las interfaces donde trabajas.

      ¿Sitio web con grid responsivo o sitio web con versión mobile?

      Esta pregunta es común para quienes se acercan a la web y lo que puedo decir es que depende mucho. Como primera opción, incluso pensando principalmente en el mantenimiento, es mejor tener solo un sitio web, un código con solo una base de código ayuda a evitar bugs y en muchos casos a estar replicando código o creando estrategias para compartir. Aplicaciones gigantes como facebook tienen su versión específica para sitios mobile porque la interfaz es tan compleja que la solución más rápida terminó siendo crear un nuevo sitio, pero piénsalo y antes de despedirme aquí, te dejo esta excelente publicación de Sérgio Lopes sobre diseño responsivo

      Conclusión

      Hoy aprendimos que la base de grids consiste en entender qué son los Contenedores, Row y Col. Ya sea con un diseño float, flexbox o grid, lo importante es poder hacer que cualquier sitio que vaya a desarrollar sea responsivo de una manera fácil.

      Si desea obtener más consejos sobre el mundo de Front End, consulte mi serial aquí en alura Fronteras del Front End

      Eso es todo por hoy, espero que lo hayan disfrutado, pronto les traeré más consejos sobre varios otros temas relacionados con Front End, asegúrate de seguirme en mis redes sociales y sigue mis demás artículos en mi sitio web personal. https://mariosouto.com.

      Mario Souto

      Mario Souto

      Vivo en 220v, siempre buscando una nueva película / paseo y codificando desafíos aleatorios en JavaScript. Me encanta hacer sitios web y hablar/enseñar sobre eso.

Mario Souto
Mario Souto

Vivo no 220v, sempre atrás de um filme/rolê novo e codando desafios aleatórios em JavaScript. Adoro fazer sites e falar/dar aulas sobre isso no @nubank, meu canal no YouTube DevSoutinho e na @alura

Artículo Anterior
Puntos de ruptura en el diseño responsivo
Siguiente Artículo
Manipulación de array con map, filter y reduce

Ver otros artículos sobre Front-end

Navegación

  • Planes
  • Instructores
  • Blog
  • Política de privacidad
  • Términos de uso
  • Sobre nosotros
  • Preguntas frecuentes

¡CONTÁCTANOS!

  • ¡Quiero entrar en contacto!

Blog

  • Programación
  • Data Science
  • Front End
  • Innovación y Gestión
  • DevOps

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

NOVEDADES Y LANZAMIENTOS

Aliados

  • Programa de aceleração Scale-Up Endeavor
  • En Alura somos unas de las Scale-Ups seleccionadas por Endeavor, programa de aceleración de las empresas que más crecen en el país.
  • Growth Academy 2021 do Google For Startups
  • Fuimos unas de las 7 startups seleccionadas por Google For Startups en participar del programa Growth Academy en 2021
Alura

Powered by

Caelum

AOVS Sistemas de Informática S.A CNPJ 05.555.382/0001-33

SÍGUENOS EN NUESTRAS REDES SOCIALES

YouTube Facebook Instagram Linkedin Whatsapp Spotify

Cursos

Cursos de Programación
Lógica de Programación | Java
Cursos de Front End
HTML y CSS | JavaScript | React
Cursos de Data Science
Data Science | Machine Learning | Excel | Base de Datos | Data Visualization | Estadística
Cursos de DevOps
Docker | Linux
Cursos de Innovación y Gestión
Transformación Ágil | Marketing Analytics

Alura

  • Educação em Tecnologia

    • logo fiap FIAP
    • logo casa do codigo Casa do Código
    • logo pm3 PM3 - Cursos de Produto
  • Mais Alura

    • logo alura start START BY Alura
    • logo alura lingua Alura Língua
    • logo alura para empresas Alura Para Empresas
    • logo alura latam Alura LATAM
  • Comunidade

    • logo tech guide Tech Guide
    • logo 7 days of code 7 days of code
    • logo Hipsters ponto Jobs Hipsters ponto Jobs
  • Podcasts

    • logo Hipster Network Hipster Network
    • logo Hipsters ponto Tech Hipsters ponto Tech
    • logo Dev sem fronteiras Dev sem Fronteiras
    • logo Like a Boss Like a Boss
    • logo IA Sob Controle IA Sob Controle
    • logo Mesa de Produto Mesa de Produto
    • logo Decode Decode
    • logo FIAPCast FIAPCast