Les dejo un juego para refrescar los conocimientos de CSS grid
CSS Grid Garden
Introducción
Lo que aprenderás sobre maquetación en CSS
Chrome Devtools
Análisis y creación del proyecto
Diseño del proyecto
Setup del proyecto
Creando la página principal
Arquitectura del header en HTML
Estilos en el header
Agregando íconos
Agregando imágenes al header
Manejo de Grid para posicionar contenedores
Manejo de imágenes de Background
Agregando fuentes
Terminando el Home
Creando página de Blogs
Blog page
Manejo de clases
Estilos en blogs html
Agregando imagen
Estilos del botón
Trabajando la sección de post
Grid Container
Creando página de Blog
Crear la pantalla de blog
Agregando estilos a la página de blog
Creando página de perfil
Sección de contacto
Maquetando perfil HTML
Manejando estilos en la página de perfil
Blog responsivo
Media Queries
Cierre
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
El mundo del desarrollo web es un lugar fascinante donde la organización y el diseño juegan un papel primordial. Al trabajar con HTML y CSS, crear una disposición atractiva y funcional para un blog puede llevar tu sitio web al siguiente nivel. El uso de CSS Grid es una herramienta poderosa para lograr esto. Veamos cómo puedes estructurar un blog empleando esta técnica de manera efectiva.
Para crear una estructura de columnas en nuestro blog, comenzamos por definir un contenedor principal usando CSS Grid. Este contenedor alojará todos los elementos del blog, permitiéndonos organizar eficientemente los contenidos.
.blog-main {
display: grid;
grid-template-columns: repeat(3, 1fr); /* Tres columnas iguales */
}
Aquí, grid-template-columns: repeat(3, 1fr);
asegura que nuestro contenedor principal esté dividido en tres columnas de igual ancho, donde cada artículo del blog puede ser colocado.
El contenedor principal requiere algunos ajustes estéticos para mejorar su presentación visual. Vamos a aplicar un color de fondo, ajustar el espacio interno, y asegurarnos de que los elementos estén correctamente espaciados.
.blog-main-container {
background-color: #f0f0f0; /* Color de fondo */
padding: 0 50px 40px 50px; /* Espaciado interno: abajo e izquierda-derecha */
}
La propiedad background-color
establece un color base, mientras que padding
define el espacio interno del contenedor, asegurando que haya suficiente separación entre el contenido y los bordes del contenedor.
Para la sección principal del blog, que incluirá un título y una imagen, utilizamos una estructura de cuadrícula que permita acomodar estos elementos eficientemente. Aquí, el título y la imagen se distribuyen visualmente en un diseño de dos fracciones.
.blog-main-new {
display: grid;
grid-template-columns: 2fr 1fr; /* Dos fracciones para el título y una para la imagen */
}
Esta configuración asegura que el título del blog ocupe un espacio más prominente, mientras que la imagen se ajusta al lado derecho en su fracción dedicada.
Si alguna de las clases no se alinea correctamente dentro del grid, es posible que tu código necesite reestructurarse. Asegúrate de que todos los elementos hijos estén correctamente anidados dentro del contenedor del grid.
<div class="blog-main-new">
<div class="blog-title"></div>
<div class="blog-image">
<img src="ruta-de-la-imagen.jpg" alt="Imagen del blog">
</div>
</div>
Los errores de alineación pueden surgir si los contenedores de elementos no están bien organizados dentro del grid, como ser colocados erróneamente como elementos hermanos en vez de hijos.
Finalmente, para asegurar un espacio estético y flexible, se pueden aplicar margenes y ajustes de tamaño a las imágenes y los textos dentro de nuestros contenedores.
.blog-content {
margin: 35px; /* Márgenes alrededor del contenido */
}
Utilizar márgenes permite que las diferentes partes del blog se respiren visualmente, mejorando el dinamismo general del diseño.
Con estas configuraciones, lograremos que las columnas, imágenes y textos se acomoden perfectamente, generando una disposición armoniosa y profesional para cualquier blog. ¡Ya estás listo para experimentar con CSS Grid y construir tu propio diseño de blog! Tu viaje en el desarrollo web está comenzando, ¡sigue explorando y aprendiendo!
Aportes 62
Preguntas 8
Les dejo un juego para refrescar los conocimientos de CSS grid
CSS Grid Garden
Rayos no sabia lo del lorem y lo había escrito completo xd 💔 😅
Siento que se complica la vida usando CSS-GRID para todo, cuando usando CSS GRID y Flexbox junto es muchas mas practico, desde mi punto de vista.
Me confundi un poco. Resulta que en el min 5:55 usa:
Si quieres practicar algo del CSS Grid que vimos en la clase de hoy, te dejo un juego en el que aprenderás lo que necesitas de CSS Grid de una manera muy interactiva! 😄
Les comparto este link Aqui esta muy bien explicado y trae muy buen contenido con respecto al CSS grid. Espero les ayude y les resuelva sus dudas con este tema.
Team display grid!!
El menú de los maquetadores CSS:
**Grid **en el desayuno!!!
**Flex **en el almuerzo!!!
**Grid **en la cena!!!
ja ja ja ja ja:)😃😃
Tengo que repasar mucho de grid
Encontré una gran herramienta para generar codigo HTML y CSS para construir tus diseños GRID aquí la dejo: Grid Layoutit
Es la primer ocasión en que logro completar un reto al 100%, se que puedo tener muchos errores pero visualmente esta muy parecido a lo que nos pedían.
adjunto imágenes y mi código, agradezco cualquier critica constructiva.
código html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My BLog</title>
<link rel="stylesheet" href="css/main.css">
<link rel="stylesheet" href="css/font/flaticon.css">
</head>
<body>
<header>
<section class="header-icons-container">
<div class="icons">
<a href=""><span class="flaticon-001-facebook"></span></a>
<a href=""><span class="flaticon-002-twitter"></span></a>
<a href=""><span class="flaticon-011-instagram"></span></a>
<a href=""><span class="flaticon-010-linkedin"></span></a>
<a href=""><span class="flaticon-008-youtube"></span></a>
</div>
</section>
<nav>
<section class="nav-logo-container">
<a href="index.html"><img src="assetts/img/Logo-negro.png" alt="Logo de mi blog"></a>
</section>
<section class="profile-link">
<a href="perfil.html">Sobre mí</a>
</section>
</nav>
</header>
<main class="main-blogs">
<section class=" grid-container blogs-news-container">
<h3>Soy un título</h3>
<div class="img-blogs-news">
<img src="./assetts/img/main-news-img.png" alt="imagen principal del blog">
</div>
<div class="blogs-news-info-container">
<h2>Título del Blogpost</h2>
<p> It is a long established fact that a reader will be distracted by the
readable content of a page when looking at its layout.
The point of using Lorem Ipsum is that it has a more-or-less
normal distribution of letters, as opposed to using 'Content here,
</p>
<a href="/" class="button-blogs-news">Leer más</a>
</div>
</section>
</main>
<br>
<hr>
<br>
<Section class="blogs-post-container">
<article class="post-container">
<img src="./assetts/img/post-1.png" alt="imagen del post">
<p>Título del blog post</p>
<p>descripsion el post
Lorem ipsum dolor sit
amet consectetur adipisicing
elit. Suscipit ut a fugiat
</p>
<a href="" class="blogs-button">Leer más</a>
</article>
<article class="post-container">
<img src="./assetts/img/post-1.png" alt="imagen del post">
<p>Título del blog post</p>
<p>descripsion el post
Lorem ipsum dolor sit
amet consectetur adipisicing
elit. Suscipit ut a fugiat
</p>
<a href="" class="blogs-button">Leer más</a>
</article>
<article class="post-container">
<img src="./assetts/img/post-1.png" alt="imagen del post">
<p>Título del blog post</p>
<p>descripsion el post
Lorem ipsum dolor sit
amet consectetur adipisicing
elit. Suscipit ut a fugiat
</p>
<a href="" class="blogs-button">Leer más</a>
</article>
<article class="post-container">
<img src="./assetts/img/post-1.png" alt="imagen del post">
<p>Título del blog post</p>
<p>descripsion el post
Lorem ipsum dolor sit
amet consectetur adipisicing
elit. Suscipit ut a fugiat
</p>
<a href="" class="blogs-button">Leer más</a>
</article>
<article class="post-container">
<img src="./assetts/img/post-1.png" alt="imagen del post">
<p>Título del blog post</p>
<p>descripsion el post
Lorem ipsum dolor sit
amet consectetur adipisicing
elit. Suscipit ut a fugiat
</p>
<a href="" class="blogs-button">Leer más</a>
</article>
<article class="post-container">
<img src="./assetts/img/post-1.png" alt="imagen del post">
<p>Título del blog post</p>
<p>descripsion el post
Lorem ipsum dolor sit
amet consectetur adipisicing
elit. Suscipit ut a fugiat
</p>
<a href="" class="blogs-button">Leer más</a>
</article>
</Section>
<footer>
<section class="footer-bg-green">
</section>
<section class="footer-creditos">
<p>Éste es el primer reto que logro al 100%</p>
</section>
</footer>
</body>
</html>
código css
/* -----------------------blogs------------------- */
.main-blogs {
background-color: #e6e9ed;
}
.grid-container {
max-width: 980px;
margin: auto;
}
.main-blogs .blogs-news-container {
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: 2fr;
padding: 0 50px 40px;
}
.main-blogs .blogs-news-container h3 {
display: block;
font-size: 1.17em;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
}
.blogs-news-container .img-blogs-news {
grid-column: 1;
}
.img-blogs-news img {
width: 85%;
}
.blogs-news-info-container {
grid-column: 2;
}
.blogs-news-info-container h2 {
display: block;
font-size: 1.5em;
margin-block-start: 0.83em;
margin-block-end: 0.83em;
margin-inline-start: 0px;
margin-inline-end: 0px;
font-weight: bold;
}
.blogs-news-info-container p {
margin-bottom: 35px;
display: block;
margin-block-start: 1em;
margin-block-end: 1em;
margin-inline-start: 0px;
margin-inline-end: 0px;
}
.blogs-news-info-container .button-blogs-news{
border: 1px solid #47cfac;
padding: 10px 15px;
font-size: 12px;
}
/* --------------------------blogs-post---------------- */
.blogs-post-container {
width: 80%;
padding: 0 50px 40px;
margin: auto;
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 10px;
}
.blogs-post-container .post-container {
width: 90%;
display: inline-block;
padding-left: 10px;
margin-bottom: 50px;
}
.blogs-post-container .post-container img {
width: 100%;
}
.blogs-button {
border: 1px solid #47cfac;
padding: 10px 15px;
font-size: 12px;
}
/* --------------------------footer--------------------------- */
footer{
width: 100%;
display: grid;
grid-template-rows: 1fr 2fr;
}
footer .footer-bg-green {
background-color: #47cfac;
}
footer .footer-creditos {
display: flex;
justify-content: center;
background-color: black;
color: white;
}
No entiendo porque grid hace 2 filas cuando escribe el siguiente código
.blogs-news-img-container {
grid-column:1;
}
Alguien me puede ayudar?
y yo aqui haciendo con grid-template-areas, me he olvidado que se puede posicionar de otras maneras en grid :v
Hola, vengo de terminar los cursos de CSS GRID y de Grid con flexbox, los recomiendo antes de tomar este. De hecho con el definitivo de html y css junto con el mobile first son una gran guia para poder hacer este proyecto mobile first.
Para el toogle word wrap en VS CODE pueden utilizar el atajo de letras “ALT+Z”.
De esa forman hacen que su código no rompa el viewport de su editor de texto. 👍
Los que no han visto el curso de Grid Layout, le recomiendo que vayan a verlo y regresen
//Pueden utilizar esta forma, es lo mismo que decir 1fr 1fr
grid-template-columns: repeat(2 1fr);
Interesante uso de Grid, nunca lo habia usado y la verdad es muy util
organice mis proyectos lamento no poder compartir pero estoy feliz Muchas gracias
El inspector ayuda mucho para la detección de esos errores
Que bien se siente entender de lleno el código, realmente la practica te hace mejorar, el curso de Css Grid vale la pena, grade Leonidas, grande Diego.
💪👍📈🤓👨🏻💻
Alguien me puede ayudar como le puedo dar un espacio medor al titulo
O ajustar el tamano del grid row del titulo
https://gridcritters.com/
aqui puedes practicar grid de una manera muy interesante y a profundida. Igualmente encontraras para practicar muchas otras cosas de css.
para la generación de textos
https://loremipsum.io/
Pueden jugar con el inspector el navegador para entender mejor los grid, lo que pasa es que el profe lo coloca algunos valores e ignora otros porque automáticamente se posicionan como está el diseño, pero aquí va el código un poco más específico:
.blogs-main {
display: grid;
}
.blogs-news-container {
background-color: #E6E9ED;
padding: 0 50px 40px;
}
.blogs-main-new {
display: grid;
grid-template-columns: 2fr 1fr;
/* No es necesario ya que al colocar grid este detecta la cantidad de items dentro y lo coloca las grillas de acuerdo a la cantidad de columnas */
/* grid-template-rows: 1fr 5fr; */
}
blogs-main-new h3 {
grid-column: 1; /* Para indicarle en que grid se va a posicionar */
grid-row: 1;
}
.blogs-news-img-container {
grid-column: 1;
grid-row: 2;
}
.blogs-news-img-container img {
height: 100px;
}
.blogs-news-info-container {
grid-column: 2;
grid-row: 2;
}
.blogs-news-info-container p {
margin-bottom: 35px;
}
Les comparto esta extensión de Chrome para tomar el color que quieran de cualquier sitio web (como el ColorPicker que usa el profesor). También viene una herramienta para generar gradientes.
Gracias a emmet podemos seleccionar la cantidad de palabras que aparece en nuestro “texto dummy”.
Digamos que quieres que sean 7 palabras entonces simplemente pones:
lorem7
y despliega:
Lorem ipsum dolor, sit amet consectetur adipisicing.
puedes variar la cantidad de palabras a tu gusto.
Excelente repaso para el curso de CSS Grid Layout, aqui se ve en un entorno mas real.
Lo mejor que pudieron haber codificado para CSS es GRID, es simplemente magnifico.
Padding: crea márgenes internas del contenedor.
Partidario del grid.
Siempre que se quiera crear un sitio web con muchas columnas o rows, será mejor usar display grid?
Osea qué: grid-template-columns: 2fr 1fr; / declara la proporcion de espacio ocupado por cada columna y el numero de columnas y grid-column: 1; la columna que ocupará determinado contenido. Interesante!!!
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, officiis exercitationem! Quia ipsam neque et accusantium debitis! Debitis, commodi iusto vero ex odio voluptates cum soluta hic aliquam nesciunt repellat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, officiis exercitationem! Quia ipsam neque et accusantium debitis! Debitis, commodi iusto vero ex odio voluptates cum soluta hic aliquam nesciunt repellat.
Leer masLorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, officiis exercitationem! Quia ipsam neque et accusantium debitis! Debitis, commodi iusto vero ex odio voluptates cum soluta hic aliquam nesciunt repellat.\
\Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, officiis exercitationem! Quia ipsam neque et accusantium debitis! Debitis, commodi iusto vero ex odio voluptates cum soluta hic aliquam nesciunt repellat.\
\Leer mas\ \Para el acento de las vocales en el curso de git y github Anita sugiere usar entidades de html : Título
Para ahorrar tiempo al obtener el color de una página web, les recomiendo Colorzilla una extensión de Chrome que simplifica el trabajo.
Es más facil mover el grid al seccion anterior
.blogs-news-container {
background-color: #e6e9ed;
padding: 0 48px 40px;
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: 2fr;
}
.blogs-main-new {
grid-column: 1;
}
Les quiero compartir la manera en la que organizo los css para tenerlos separados y que no se haga tanto codigo.
Lo que hice fue hacer un ccs llamado “layout” en el que meto los estilos del navbar, para poder traerme solo eso.
Y después llamo a otro archivo css en el que agrego los estilos específicos de la vista que estamos construyendo (el main)
Cabe destacar que en el html recomiendo llamar primero al layout y después al blogs.css. esto por si queremos realizarle algún cambio especifico por vista podamos caerle encima a los estilos del layyout.
Así se verían los archivos con menos líneas:
waos, me gusta grid
si necesitan crear un lorem con un numero determinado de parrafos, por ejemplo 5. Simplemente escriban lorem*5 y tabulador. y voila!!
Espero les sea de ayuda!!
No se olviden de usar el Auto guardado de VSC. 😊
/* BLOGS */
.blogs-main{
display: grid;
}
.blogs-news-container{
background-color: #E6E9ED;
padding: 0 50px 40px;
}
.blogs-main-new{
display: grid;
grid-template-columns: 2fr 1fr;
grid-template-rows: 2fr;
}
.blogs-news-img-container{
grid-column: 1;
}
.blogs-news-img-container img{
}
.blogs-news-info-container{
grid-column: 2;
}
.blogs-news-info-container p{
margin-bottom: 35px;
}
Yo pensaba hacerle un display:flex a blogs-news-container en lugar del display grid. Tambien se podria hacer asi ¿no?
Excelente clase. Con Grid y flex son buena combinaciones que puede facilitar mucho para poder maquetar un sitio web de forma profesional.
Cada clase se aprende un poco mas, como maquetar y usar los estilos mas eficientemente gracias a BEM.
Excelente cada vez vamos acercándonos al diseño original de la página blogs.
Genial, Gran clase
Team display flex
Yo la primer sección la hice utilizando FLEX y la segunda con GRID.
Les recomiendo este articulo compañeros, https://css-tricks.com/snippets/css/complete-guide-grid/
Incríble, me encanta este proyecto
Muy buena aplicación del Grid para ir aprendiendo un uso más real del mismo.
Recomiendo muchísimo el curso de CSS Grid Layout para entender a profundidad el tema.
una pregunta tengo mi menu del header donde dice “sobre mi”,
al momento de reducir la pantalla este se divide en do s es decir sobre en la parte de arriba y mi en la parte de abajo pero no quiero qe pase eso solo quiero qe este en una linea como lo hago.
Muy bien!
Genial!
Super
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?