No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende Inglés, Desarrollo Web, AI, Ciberseguridad y mucho más.

Antes: $249

Currency
$209
Comienza ahora

Termina en:

2 Días
13 Hrs
45 Min
19 Seg

Creando la grilla con área

10/13
Recursos

Ya estamos en nuestra segunda sección del proyecto. No demoremos más y pasemos a un breve análisis del diseño antes de empezar a maquetar en código.

image.png

Tenemos una imagen grande a la derecha y cuatro pequeñas a la izquierda. Usamos las celdas pequeñas para definir el tamaño de las celdas de nuestra grilla, porque las celdas ocupan el espacio mínimo.

Maquetación de la grilla

  • Primero debemos crear otra sección.
  • Creamos una etiqueta div con una clase a la que llamaremos con el creativo nombre de “dishes-grid”. Creo que no hace falta explicar el porqué.
  • Como únicamente manejaremos imágenes, podemos colocar de forma directa las etiquetas img en lugar de contenerlas en algún div.
  • Agregamos una misma clase para todas las imágenes, añadiendo una segunda clase a la imagen más grande. De esta manera:
        <section class="dishes">
            <h2 class="dishes-title">Out services</h2>
            <div class="dishes-grid">
                <img class="dishes-item dishes-item_big" src="./img/video.png" alt="mesa con platos de pasta">
                <img class="dishes-item" src="./img/dish1.png" alt="bowl de vegetales">
                <img class="dishes-item" src="./img/dish2.png" alt="bowl de vegetales">
                <img class="dishes-item" src="./img/dish3.png" alt="bowl de vegetales">
                <img class="dishes-item" src="./img/dish4.png" alt="bowl de vegetales">
            </div>
        </section>

Estilos de la grilla

  • Llamamos la etiqueta de section desde su clase con .dishes.
  • Añadimos un margen superior de 100px y de 0 a los lados para separarla de la sección anterior.
.dishes {
    margin: 100px 0;
}
  • Llamamos la etiqueta de section desde su clase con .dishes.
  • Ajustamos su color en #333.
  • Cambiamos el tamaño de fuente en 2rem y su peso en bold.
  • Le damos un margen inferior de 50px.
  • Centramos el título con text-align: center.
.dishes-title {
    color: #333;
    font-weight: bold;
    text-align: center;
    margin-bottom: 50px;
    font-size: 2rem;
}
  • Llamamos la etiqueta contenedora de las imágenes con .dishes-grid.
  • Por supuesto, aplicamos display: grid.
  • Creamos cuatro columnas de una fracción cada una con ***grid-template-columns: repeat(4, 1fr)***.
  • Creamos las filas con un alto de una fracción con grid-auto-rows: 1fr.
  • Añadimos un gap: 25px para crear un espaciado entre las imágenes.
  • Centramos el contenedor con justify-content: center.
.dishes-grid {
    margin: 100px 0;
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 200px));
    grid-auto-rows: 1fr;
    gap: 25px;
    justify-content: center;
}
  • Llamamos las imágenes por sus clases con .dishes-item.
  • Le damos un ancho y alto del 100% de su contenedor.
  • Usamos object-fit: cover para que ocupe toda la celda en que se encuentra.
.dishes-item {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
image.png

Como vemos, funciona. Ahora necesitamos que la primera imagen ocupe cuatro celdas, desde la línea uno, hasta la tres, tanto vertical como horizontalmente.

  • Para ello, llamamos la clase adicional que creamos para la imagen más grande.
  • Delimitamos su área desde la primera línea horizontal y vertical, hasta la tercera.
.dishes-item_big {
    grid-area: 1/1/3/3;
}
image.png

Retoques de la primera sección

Recordemos que hubo varias partes de nuestra sección anterior sin terminar como la del título, subtítulo y botón.

  • Primero, creamos una clase para las etiquetas h1, p y button.
  • Llamamos la clase de la etiqueta h1.
  • Ajustamos su color en #333.
  • Cambiamos el tamaño de fuente en 3rem y su peso en bolder.
  • Le damos un margen inferior de 24px.
.info-title {
    color: #333;
    font-size: 3rem;
    font-weight: bolder;
    margin-bottom: 24px;
}
  • Llamamos la clase de la etiqueta p.
  • Ajustamos su color en #333.
  • Cambiamos el tamaño de fuente en 1rem.
  • Le damos un margen inferior de 24px.
.info-subtitle {
    color: #333;
    font-size: 1rem;
    margin-bottom: 24px;
}
  • Llamamos la clase de la etiqueta button.
  • Redondeamos las esquinas con border-radius: 20px.
  • Ajustamos su color en #333 y su color de fondo en #fb8c00.
  • Cambiamos el peso de fuente en bolder.
  • Le damos un padding superior e inferior de 12px y arriba y abajo de 24px.
.info-button {
    border: none;
    border-radius: 20px;
    color: #333;
    background-color: #fb8c00;
    font-weight: bolder;
    padding: 12px 24px;
}

¡Y listo! Hemos repasado varias funciones importantes como gap, template, auto-row y grid-area. ¿Verdad que aplicar lo aprendido refuerza mucho más que solo apuntarlo en tus notas?

Ese es el secreto del desarrollo web, así como de la programación en general. Practicar. ¡Sigamos trabajando en nuestro proyecto!

Contribución creada por: José Miguel Ventimilla (Platzi Contributor).

Aportes 59

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

la profesora juega legue of legends con warwick???’’

Consejo: Agregar a los estilos del button:

cursor: pointer;


HTML

CSS

para no hacer calculos se puede usar el grid template areas y decirle como se van a repartir las grillas, dejo ejemplo

        <section class="dishes">
            
            <h2>Our Services</h2>
            <div class="dishes-grid">
                <img class="dishes-item dishes-item__big" src="images/video.png" alt="">

            <img class="dishes-item dish-1" src="images/dish1.png" alt="">
            <img class="dishes-item dish-2" src="images/dish2.png" alt="">
            <img class="dishes-item dish-3" src="images/dish3.png" alt="">
            <img class="dishes-item dish-4" src="images/dish4.png" alt="">
            </div>

        </section>

— CSS —

.dishes-grid{
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 1fr;
    grid-template-areas: 
        "big big img1 img2"
        "big big img3 img4"
    ;
    gap: 26px;
}

.dishes-item__big{
    grid-area: big;
}

.dish-1{
    grid-area: img1;
}


.dish-2{
    grid-area: img2;
}

.dish-3{
    grid-area: img3;
}

.dish-4{
    grid-area: img4;
}

.dishes-item{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

mobile:

ipad:

Aqui les dejo como va quedando

VISTA:

CODIGO:

listo

😄

Esta quedando muy bonito!

Como importar varias imágenes con nombres similares usando Emmet Abbreviation

img[src="./images/dish$.png"]*4+img[src="./images/video.png"]

Me encanta maquetar con CSS grid, aunque se me olvide mucho

Esta fue mi decoracion

CSS GRID ES UNA BENDICION , lo que antes me costaba 40 minutos maquetar bien ahora simplemente en 7 lo realizo

COMPUTADORA:

TELEFONO:

El proyecto va quedando genial!
Les comparto mi resultado:

.
Repositorio GitHub: https://github.com/iJCode1/CSS_Grid_Basico-Platzi
.
Código HTML:

<section class="services">
      <h2>OUR SERVICES</h2>
      <div class="services__content">
        <div class="services__one">
          <img class="" src="./images/video.png" alt="A video of food plates">
        </div>
        <div class="services__two">
          <img src="./images/dish1.png" alt="A plate of food">
          <img src="./images/dish2.png" alt="A plate of food">
          <img src="./images/dish3.png" alt="A plate of food">
          <img src="./images/dish4.png" alt="A plate of food">
        </div>
      </div>
    </section>

.
Código CSS:

.services h2{
  font-size: 2rem;
  font-weight: 400;
  text-align: center;
}
.services__content{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-rows: 1fr;
  gap: 25px;
}
.services__one{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-rows: 1fr;
  grid-template-areas: 
  "img img"
  "img img";
}
.services__one img:nth-child(1){
  grid-area: img;
}
.services__two{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-auto-rows: 1fr;
  gap: 15px;
}
.services img{
  height: 100%;
  object-fit: cover;
  width: 100%;
}
* {
    /* margin: 0; */
    /*padding: 0; */
    font-family: Roboto, sans-serif;
}

:root {
    --space-base: 30px;
}

main {
    max-width: 1200px;
    margin: 0 auto;
    display: grid;
}

.hero {
    display: grid;
    grid-template-columns: 2fr minmax(100px, 3fr);;
    max-height: 550px;
    grid-auto-rows: 400px;
    margin-left: 30px;
    margin-top: 10px;
    border-bottom: 1px solid #ddd;

}

.hero--image {
    width: 90%;
    display: grid;
    height: 90%;
    object-fit: contain;
}

.title
{
    font-size: 1.2rem;
    margin-bottom: 24px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
}

h1 {
    font-size: 4.5rem;
    font-weight: 900px;
    line-height: 4.8rem;
  }
  
.p--info {
    margin: var(--space-base) 0;
    align-self: center;
    font-size: 1.5rem;
    border-bottom: 240px;
}
  
.button--info {
    padding: calc(var(--space-base) / 3) var(--space-base) ;
    font: inherit;
    color: white;
    background: linear-gradient(180deg, rgb(250, 172, 116) 25%, rgba(225,116,48,1) 100%);
    border: none;
    border-radius: var(--space-base);
    outline: inherit;
    cursor: pointer;
}
  

.services{
    display: grid;
    margin-top: 200px;
}

.services--title {
    color: #333;
    font-size: 3rem;
    font-weight: 400px;
    text-transform: uppercase;
    text-align: center;
    margin: 100px 0 50px 0;
  }
  
  .dishes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    grid-template-rows: repeat(2, minmax(150px, 1fr));
    grid-gap: 50px;
  }
  
  .dishes--images {
    margin: 0;
  }
  
  .dishes--images img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  
  .dishes--images__big {
    grid-area: 1 / 1 / 3 / 3;
  }
  
  /* Third section - menu */
  
  .menu--title {
    color: #333;
    font-size: 3rem;
    font-weight: 400;
    text-align: center;
    margin: 100px 0 50px 0;
  }
  
  .plates {
    display: grid;
    grid-gap: 25px;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    margin-bottom: 100px;
  }
  
  .plates--images {
    margin: 0;
    background-color: #ffebee;
    padding: 20px;
    border-top-left-radius: 30px;
  }
  
  .plates--images img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
<!DOCTYPE html>
<html lang="en">
<link>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="grid4.css"></link>
    <title>Grid 4</title>
</head>
<body>
    <main>
        <section class="hero">
            <div class="title">
                <h1>Check the <br>best food</h1>
                <p class="p--info">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Sed quaerat voluptate assumenda. Veniam praesentium velit eveniet facilis inventore assumenda magni, voluptatem cupiditate, maxime itaque enim quo tempora veritatis esse minima?</p>
                <button class="button--info">Book a table</button>  
            </div>
            <figure class="hero--image">
                <img class="hero--image" src="./images/hero.png" alt="Pasta Dish with neapolitan sauce and vegetables">
            </figure>
        </section>
  
    <section class="services">
        <h2 class="services--title">Our services</h2>
        <div class="dishes">
            <figure class="dishes--images dishes--images__big">
                <img src="./images/video.png" alt="Pasta video">
            </figure>
            <figure class="dishes--images">
                <img src="./images/dish1.png" alt="A bowl of vegetables with rice and avocado">
            </figure>
            <figure class="dishes--images">
                <img src="./images/dish2.png" alt="Avocado and egg toast">
            </figure>
            <figure class="dishes--images">
               <img src="./images/dish3.png" alt="Asparagus with tomato and butter">
            </figure>
            <figure class="dishes--images">
                <img src="./images/dish4.png" alt="Eggs and guacamole toast ">
            </figure>
        </div>
    </section>
    <section class="menu">
        <h2 class="menu--title">Home menu</h2>
        <div class="plates">
            <figure class="plates--images">
                <img src="./images/plate1.png" alt="pasta with neapolitan sauce and vegetables">
            </figure>
            <figure class="plates--images">
                <img src="./images/plate2.png" alt="pasta with broccoli and carrot">
            </figure>
            <figure class="plates--images">
                <img src="./images/plate3.png" alt="pesto pasta">
            </figure>
            <figure class="plates--images">
                <img src="./images/plate4.png" alt="pasta with avocado and corn">
            </figure>
            <figure class="plates--images">
                <img src="./images/plate5.png" alt="bowl of chicken, tomato and carrots">
            </figure>
        </div>
    </section>
    </main>
</body>
**:first-child** Obtiene el primer elemento hijo. ```js .dishes :first-child { grid-area: 1 / 1 / 3 / 3; } ```

Consejo para los colores usen variables, es un viaje de ida.

  • Primero las declaran:
    ![](

  • y luego las van llamando con var(‘nombre de la variable’)
    ![](
    Esto les va a permitir hacer cambios de manera más rápida a los colores si es que necesitan hacer algún cambio de esos.
    Espero les sirva!

segunda seccion con un poco de box-shadow

Mi aporte con SASS

me llegue a frustrar en un momento porque no me estaba quedando igual… pero era porque no había guardado 😑😑😑

Vamos bien, está quedando genial

Le agregue algunos detalles que vi en el template de inspiración.

Comparto mis resultados:

resultado de la clase:

😃 Este curso esta genial

Para poner el titulo en mayúsculas: ```css text-transform: uppercase; ```
Ya estamos en nuestra segunda [sección del proyecto](https://platzi.com/clases/2474-css-grid/42189-proyecto/). No demoremos más y pasemos a un breve análisis del diseño antes de empezar a maquetar en código. ![image.png](https://static.platzi.com/media/articlases/Images/image%28353%29.png) Tenemos una imagen grande a la derecha y cuatro pequeñas a la izquierda. Usamos las celdas pequeñas para definir el tamaño de las celdas de nuestra grilla, porque las celdas ocupan el espacio mínimo. ## Maquetación de la grilla * Primero debemos crear otra sección. * Creamos una etiqueta div con una clase a la que llamaremos con el creativo nombre de “**dishes-grid**”. Creo que no hace falta explicar el porqué. * Como únicamente manejaremos imágenes, podemos colocar de forma directa las etiquetas ***img*** en lugar de contenerlas en algún ***div***. * Agregamos una misma clase para todas las imágenes, añadiendo una segunda clase a la imagen más grande. De esta manera: ` <section class="dishes"`> `

Out services\

`
` ` ` ` ` \
\</section> ## Estilos de la grilla * Llamamos la etiqueta de section desde su clase con ***.dishes***. * Añadimos un margen superior de ***100px*** y de ***0*** a los lados para separarla de la sección anterior. `.dishes` { ` margin: 100px 0`; } * Llamamos la etiqueta de section desde su clase con ***.dishes***. * Ajustamos su color en ***#333***. * Cambiamos el tamaño de fuente en ***2rem*** y su peso en ***bold***. * Le damos un margen inferior de ***50px***. * Centramos el título con text-align: center. `.dishes-title` { ` color: #333`; ` font-weight`: bold; ` text-align`: center; ` margin-bottom: 50px`; ` font-size: 2rem`; } * Llamamos la etiqueta contenedora de las imágenes con ***.dishes-grid***. * Por supuesto, aplicamos ***display: grid***. * Creamos cuatro columnas de una fracción cada una con \*\*\*grid-template-columns: repeat(4, 1fr)\*\*\*. * Creamos las filas con un alto de una fracción con ***grid-auto-rows: 1fr***. * Añadimos un ***gap: 25px*** para crear un espaciado entre las imágenes. * Centramos el contenedor con ***justify-content: center***. `.dishes-grid` { ` margin: 100px 0`; ` display`: grid; ` grid-template-columns: repeat`(4, minmax(150px, 200px)); ` grid-auto-rows: 1`fr; ` gap: 25px`; ` justify-content`: center; } * Llamamos las imágenes por sus clases con ***.dishes-item***. * Le damos un ancho y alto del ***100%*** de su contenedor. * Usamos ***object-fit: cover*** para que ocupe toda la celda en que se encuentra. `.dishes-item` { ` width: 100%`; ` height: 100%`; ` object-fit`: cover; } ![image.png](https://static.platzi.com/media/articlases/Images/image%28399%29.png) Como vemos, funciona. Ahora necesitamos que la primera imagen ocupe cuatro celdas, desde la línea uno, hasta la tres, tanto vertical como horizontalmente. * Para ello, llamamos la clase adicional que creamos para la imagen más grande. * Delimitamos su área desde la primera línea horizontal y vertical, hasta la tercera. `.dishes-item_big` { ` grid-area: 1/1/3/3`; } ![image.png](https://static.platzi.com/media/articlases/Images/image%28400%29.png) ## Retoques de la primera sección Recordemos que hubo varias [partes de nuestra sección anterior](https://platzi.com/clases/2474-css-grid/42190-hagamos-nuestra-primera-seccion/) sin terminar como la del título, subtítulo y botón. * Primero, creamos una clase para las etiquetas ***h1***, ***p*** y ***button***. * Llamamos la clase de la etiqueta ***h1***. * Ajustamos su color en ***#333***. * Cambiamos el tamaño de fuente en ***3rem*** y su peso en ***bolder***. * Le damos un margen inferior de ***24px***. `.info-title` { ` color: #333`; ` font-size: 3rem`; ` font-weight`: bolder; ` margin-bottom: 24px`; } * Llamamos la clase de la etiqueta ***p***. * Ajustamos su color en ***#333***. * Cambiamos el tamaño de fuente en ***1rem***. * Le damos un margen inferior de ***24px***. `.info-subtitle` { ` color: #333`; ` font-size: 1rem`; ` margin-bottom: 24px`; } * Llamamos la clase de la etiqueta ***button***. * Redondeamos las esquinas con ***border-radius: 20px***. * Ajustamos su color en ***#333*** y su color de fondo en ***#fb8c00***. * Cambiamos el peso de fuente en ***bolder***. * Le damos un padding superior e inferior de ***12px*** y arriba y abajo de ***24px***. `.info-button` { ` border`: none; ` border-radius: 20px`; ` color: #333`; ` background-color: #fb8c00`; ` font-weight`: bolder; ` padding: 12px 24px`; } ¡Y listo! Hemos repasado varias funciones importantes como gap, template, auto-row y grid-area. ¿Verdad que aplicar lo aprendido refuerza mucho más que solo apuntarlo en tus notas? Ese es el secreto del desarrollo web, así como de la programación en general. **Practicar**. ¡Sigamos trabajando en nuestro proyecto!
![](https://static.platzi.com/media/user_upload/proyecto-css-grid-basico2-1f12a924-b1bb-4141-91c0-4c4f20f90165.jpg)
con la nueva configuracion de la pagina ya no aparecen los recursos, le doy click a recursos y no aparecen, o no se donde mas buscarlos

Esto juntandolo con responsive design cuesta un poco más e.e

Mi avance - sección 2


Pongo mi aporte, lo estoy trabajando con SASS y cambios, solo un mixin para poder ahorrar condigo con las imagenes


      <article class="outServices">
        <h2 class="outServices__title">Our services</h2>
        <div class="outServices__content">
          <figure
            class="outServices__content--image outServices__content--image--big"
          >
            <img
              src="./images/video.png"
              alt="video of pasta dishes being served"
            />
          </figure>
          <figure class="outServices__content--image">
            <img
              src="./images/dish1.png"
              alt="bowl of vegetables with rice and avocado"
            />
          </figure>
          <figure class="outServices__content--image">
            <img src="./images/dish2.png" alt="Avocado and egg toast" />
          </figure>
          <figure class="outServices__content--image">
            <img
              src="./images/dish3.png"
              alt="asparagus with tomato and butter"
            />
          </figure>
          <figure class="outServices__content--image">
            <img src="./images/dish4.png" alt="eggs and guacamole toast " />
          </figure>
        </div>
      </article>
.outServices {

    &__title {
        @include subtitles();
    }

    &__content {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: repeat(2, 1fr);

        gap: 20px;

        &--image {
            img {
                @include imageContainer();
            }

            &--big {
                grid-area: 1/1/3/3;
            }
        }
    }
}

@mixin imageContainer {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

Tengo de todos modos una confusión entre usar align-items o justify-content. Uno ve a la profe usar los elementos y todo va quedando chevere pero cuando le toca a uno solito no se sabe que escribir. Investigando en internet encontré este recurso por si a alguien le intereza empezar a salir de dudas
https://codepen.io/enxaneta/full/adLPwv/

NICE

HTML:

CSS:

Buenas noches profe Estefany, agradecerle su gran empeño en este curso, siento que fue un gran proyecto donde pudimos ver detalladamente la utilidad que le podemos dar a nuestros proximos proyectos personales, nuevamente muchas gracias.

No sé ustedes. Pero yo este lo hice fue con grid-templete-area

Así me quedo esta segunda parte 🍝

<section class="our-services">
  <h2>OUR SERVICES</h2>
  <div class="dishes">
    <img class="video-img" src="https://i.postimg.cc/k5qHRc5H/video.png" alt="Video de comida">
    <div class="dish dish1">
      <p>26$</p>
      <img class="dish-img" src="https://i.postimg.cc/qR0pRyfB/dish1.png" alt="">
    </div>
    <div class="dish dish2">
      <p>26$</p>
      <img class="dish-img" src="https://i.postimg.cc/Wp5sNd5j/dish2.png" alt="">
    </div>
    <div class="dish dish3">
      <p>26$</p>
      <img class="dish-img" src="https://i.postimg.cc/hPwgmHF5/dish3.png" alt="">
    </div>
    <div class="dish dish4">
      <p>26$</p>
      <img class="dish-img" src="https://i.postimg.cc/MG08hHnC/dish4.png" alt="">
    </div>
  </div>
</section>
.our-services h2 {
  margin-top: var(--space-base);
  font-weight: 500;
  text-align: center;
}

.dishes {
  margin: var(--space-base) 0;
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 220px));
  grid-template-rows: 1fr;
  gap: calc(var(--space-base));
  justify-content: center;
}

.video-img,
.dish-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dishes .video-img {
  grid-area: 1/1/3/3;
}

.dish {
  position: relative;
}

.dishes p {
  position: absolute;
  left: 10px;
  bottom: 10px;

  font-size: 2.2rem;
  color: white;
  text-shadow: 1px 1px 2px #1b1b1b;
}

listo vamos por buen camino .

Los comentarios alterados por el fondo de escritorio de la profe jaja

.service__container {
    margin: 100px 0;
}

.service__title {
    color: #333;
    font-weight: bold;
    text-align: center;
    margin-bottom: 40px;
    text-transform: uppercase;
    font-size: 2rem;
}

.service__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 200px));
    grid-auto-rows: 1fr;
    grid-template-areas: 
    "video video first second"
    "video video third fouth";
    justify-content: center;
    gap: 20px;
}

.service__container-item {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service__video {
    grid-area: video;
}

.service__first-img {
    grid-area: first;
}

.service__second-img {
    grid-area: second;
}

.service__third-img {
    grid-area: third;
}

.service__fouth-img {
    grid-area: fourth;
}

pues ya, así quedó.
Nota: Es mejor si ya tienes tus imágenes en los tamaños correctos

HTML

CSS

Yo lo resolví con el grid-template-areas, me resulta mucho más fácil de ubicarme:

<CSS3>  
*{
    font-family: 'Roboto', sans-serif;
}

main{
    max-width: 1200px;
    margin: 0 auto;
}

.hero{
    display: grid;
    grid-template-columns: 2fr 3fr;
    grid-auto-rows: 400px;
    border-bottom: 1px solid #ddd;
}

.hero-image{
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.info{
    align-self: center;
}

.info-title{
    color: #333;
    font-size: 3rem;
    font-weight: bolder;
    margin-bottom: 24px;
}


.info-subtitle{
    color: #333;
    margin-bottom: 24px;
    font-size: 1.5rem;
}
.info-button{
    border: none;
    border-radius: 20px;
    color: #333;
    background-color: #fb8c00;
    font-weight: bolder;
    padding: 12px 24px;
}

.dishes{
    margin: 100px 0;
}

.dishes-title{
    color: #333;
    font-weight: bold;
    text-align: center;
    margin-bottom: 50px;
}
.dishes-grid{
    display: grid;
    grid-template-columns: repeat(4, minmax(150px, 200px));
    grid-auto-rows: 1fr;
    grid-template-areas: 
    "header header main1 main3"
    "header header main2 main4";
    gap: 25px;
    justify-content: center;
}

.dishes-item{
    width: 100%;
    height: 100%;
    object-fit: cover;
}


.dishes-item__big{
    grid-area: header;
}

.dish-1{
    grid-area: main1;
}


.dish-2{
    grid-area: main2;
}

.dish-3{
    grid-area: main3;
}

.dish-4{
    grid-area: main4;
}

<HTML> 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="./style.css">
    <title>Document</title>
</head>
<body>
    <section class="hero">


        <div class="info">
            <h1 class="info-title">Check the</br>best food</h1>
            <p class="info-subtitle">Lorem ipsum dolor sit amet consectetur adipisicing elit. Ipsum maiores veritatis eum! Consectetur dicta repellendus delectus vitae, hic totam, qui, ratione dolore enim culpa accusantium perspiciatis accusamus atque dolor molestiae?</p>

            <button class="info-button">Book a table</button>
        </div>
        <img class="hero-image" src="./images/hero.png" alt="hero">
    </section>

    <section class="dishes">
        <h2 class="dishes-title"> Our Services</h2>
        <div class="dishes-grid">
        <img class="dishes-item dishes-item__big" src="./images/video.png" alt="video">

        <img class="dishes-item dish1" src="./images/dish1.png" alt="bowl de vegetales">

        <img class="dishes-item dish2" src="./images/dish2.png" alt="bowl de vegetales">

        <img class="dishes-item dish3" src="./images/dish3.png" alt="bowl de vegetales">

        <img class="dishes-item dish4" src="./images/dish4.png" alt="bowl de vegetales">
    </div>
    </section>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="Style.css">
    <title>Document</title>
</head>
<body>
    <div class="main">
        <header class="header-container">
            <div class="information">
                <h1>Check the <br> best food</h1>
                <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Ratione, similique, sequi perspiciatis labore qui culpa quisquam deserunt asperiores eos vel pariatur sed corporis nesciunt? Repellendus, voluptate fugiat. Cupiditate, veritatis nulla voluptas culpa placeat voluptatibus! Error voluptas dolor doloribus perferendis nam.</p>
                <button class="primary-button">Book a Table</button>
            </div>
            <div class="logo">
                <img src="/imagenes/hero.png" alt="logo">
            </div>
        </header>

        <main class="dishes-container">
            <h1 class="dishes-title">Our services</h1>
            <div class="dishes">
                <img class="dish-item dish-item_1" src="/imagenes/video.png">
                <img class="dish-item dish-item_2" src="/imagenes/dish1.png">
                <img class="dish-item dish-item_3" src="/imagenes/dish2.png">
                <img class="dish-item dish-item_4" src="/imagenes/dish3.png">
                <img class="dish-item dish-item_5" src="/imagenes/dish4.png">
            </div>
        </main>
    </div>
</body>
</html>
html {
    font-size: 62.5%;
}

body {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Roboto' , sans-serif;
}

.main {
    max-width: 120rem;
    margin: 0 auto;
}

.header-container {
    display: grid;
    grid-template-columns: 2fr 3fr;
    max-height: 50rem;
    border-bottom: .1rem solid goldenrod;
}

.logo img {
    width: 100%;
    height: 50rem;
    object-fit: contain;
}

.information {
    place-self: center;
}

.information h1 {
    font-weight: bold;
    font-size: 5rem;
    margin-bottom: .8rem;
}

.information p {
    font-size: 1.6rem;
    margin-bottom: 4rem;
}

.primary-button {
    padding: 1.2rem .8rem;
    border: none;
    border-radius: 2rem;
    background: #fb8c00;
    color: white;
    font-size: 1.6rem;
    cursor: pointer;
}

.dishes {
    display: grid;
    grid-auto-rows: 1fr;
    grid-template-columns: repeat(4, 1fr);
    justify-content: center;
    gap: .8rem
}

.dish-item {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 1.6rem;
    border: .3rem solid green;
}

.dish-item_1 {
    grid-column: 1 / 3;
    grid-row: 1 / 3;
}

.dishes-title {
    margin: .8rem 0 3rem 0;
    font-weight: bold;
    font-size: 5rem;
    text-align: center;
}