{"id":9127,"date":"2020-01-30T17:19:21","date_gmt":"2020-01-30T15:19:21","guid":{"rendered":"https:\/\/www.espai.es\/blog\/?p=9127"},"modified":"2021-09-13T20:36:38","modified_gmt":"2021-09-13T18:36:38","slug":"introduccion-a-css-grid-layout","status":"publish","type":"post","link":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/","title":{"rendered":"Introducci\u00f3n a CSS Grid Layout"},"content":{"rendered":"<p><strong>Flexbox es unidimensional<\/strong>. Es capaz de disponer los elementos hijos formando filas <strong>o<\/strong> columnas. Pero lo que no puede hacer de ning\u00fan modo es disponer los elementos hijos formando filas <strong>y<\/strong> columnas al mismo tiempo. Cuando a un elemento HTML le indicamos <strong><em>display: flex;<\/em><\/strong>, por defecto, va a disponer todos sus elementos hijos formando una \u00fanica fila. Tenemos la posibilidad de indicar que queremos que los elementos hijos se dispongan formando una columna con <strong><em>flex-direction<\/em><\/strong>, pero no podemos hacer que algunos hijos se dispongan formando filas y otros columnas todo al mismo tiempo. Sin embargo, <strong>Grid es bidimensional<\/strong>.<\/p>\n<p>Es decir, nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas. Lo cual nos va a dar una mayor libertad a la hora de disponer los elementos en la p\u00e1gina Web, y tambi\u00e9n, una mayor flexibilidad para realizar dise\u00f1os adaptativos, ya que vamos a tener un mayor grado de control sobre c\u00f3mo se disponen los elementos.<\/p>\n<h2>\u00bf C\u00f3mo funciona el Grid ?<\/h2>\n<p>De forma similar a <strong>Flexbox<\/strong>, cuando indicamos a un elemento HTML que va a usar <strong>Grid,<\/strong> en realidad esto va a afectar a la disposici\u00f3n de sus hijos. Concretamente, vamos a colocar los elementos hijos sobre una rejilla formada en el elemento padre. Los bordes de las cajas hijas estar\u00e1n \u201canclados\u201d a las l\u00edneas de dicha rejilla.<\/p>\n<p>De forma similar a <strong>Flexbox<\/strong>, a la caja padre le debemos de indicar <strong><em>display: grid;<\/em><\/strong> si queremos que se comporte como un elemento en bloque o <strong><em>display: inline-grid;<\/em><\/strong> si queremos que se comporte como un elemento en l\u00ednea.<\/p>\n<p>Adem\u00e1s, deberemos de indicar con <strong><em>grid-template-rows<\/em><\/strong> y <strong><em>grid-template-columns<\/em><\/strong>, como es la rejilla que vamos a usar para colocar los elementos hijos.<\/p>\n<p>Finalmente, a cada elemento hijo le podemos indicar exactamente d\u00f3nde va a ir situado en la rejilla usando las propiedades CSS <strong><em>grid-column<\/em><\/strong> y <strong><em>grid-row<\/em><\/strong>. Esto implica que el orden de los elementos hijos en el HTML no es realmente importante, y que lo podremos alterar sin problemas si lo necesitamos cuando hagamos el <em>responsive<\/em>.<\/p>\n<p>Como ejemplo, vamos a crear un dise\u00f1o que ser\u00eda imposible de realizar con <strong>Flexbox<\/strong>. Para este dise\u00f1o vamos a necesitar una rejilla de 3&#215;3. Despu\u00e9s colocaremos 5 elementos hijos dentro de esa rejilla. Es importante tener en cuenta que el <strong>Grid<\/strong> no nos va a permitir hacer un \u201cTetris\u201d. <strong>Los elementos hijos van a tener todos forma rectangular.<\/strong><\/p>\n<p>El c\u00f3digo HTML ser\u00e1 el siguiente:<\/p>\n<pre>\r\n&lt;div id=\"grid\"&gt;\r\n  &lt;div id=\"p1\"&gt;1&lt;\/div&gt;\r\n  &lt;div id=\"p2\"&gt;2&lt;\/div&gt;\r\n  &lt;div id=\"p3\"&gt;3&lt;\/div&gt;\r\n  &lt;div id=\"p4\"&gt;4&lt;\/div&gt;\r\n  &lt;div id=\"p5\"&gt;5&lt;\/div&gt;\r\n&lt;\/div&gt;\r\n<\/pre>\n<p>Y el c\u00f3digo CSS ser\u00e1:<\/p>\n<pre>\r\n#grid {\r\n  display: grid; \/* CSS Grid Layout *\/\r\n  \/* con grid-template indicamos cuantas filas\r\n  y columnas tiene la rejilla y de que tama\u00f1o son *\/\r\n  grid-template-columns: 200px 200px 200px; \/* 3 columnas de 200px cada una *\/\r\n  grid-template-rows: 200px 200px 200px; \/* 3 filas de 200px cada una *\/\r\n}\r\n\r\n#grid&gt;div {\r\n  border: 1px solid black;\r\n}\r\n<\/pre>\n<p>Por ahora el resultado es el siguiente:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9132 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid01.png\" alt=\"Ejemplo de CSS Grid Layout #1\" width=\"729\" height=\"487\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid01.png 729w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid01-300x200.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid01-700x468.png 700w\" sizes=\"auto, (max-width: 729px) 100vw, 729px\" \/><\/p>\n<p>Tal y como se puede observar, los 5 elementos hijos se han dispuesto en lo que parece una rejilla de 3&#215;3, con filas y columnas de 200px de ancho. Una rejilla de 3&#215;3 tiene un total de 9 celdas, pero como solo tenemos 5 elementos, solo son \u201cvisibles\u201d las 5 primeras. Si el <strong>Grid<\/strong> necesita usar m\u00e1s filas de las indicadas en la propiedad CSS <strong><em>grid-template-rows<\/em><\/strong>, las a\u00f1adir\u00e1 autom\u00e1ticamente.<\/p>\n<p>Si queremos que el primer hijo ocupe las dos primeras celdas, deberemos de indicar en que l\u00edneas de la rejilla empieza y termina dicho elemento. Tal y como se puede observar en la imagen anterior, una rejilla de 3&#215;3 tiene 4 l\u00edneas verticales (y aunque no se aprecie en la imagen, tambi\u00e9n tiene 4 l\u00edneas horizontales). Por lo que si a\u00f1adimos el siguiente c\u00f3digo CSS:<\/p>\n<pre>\r\n#p1 {\r\n  grid-column-start: 1; \/* empieza en la primera l\u00ednea de columnas *\/\r\n  grid-column-end: 3; \/* termina en la tercera l\u00ednea de columnas *\/\r\n  grid-row-start: 1;\r\n  grid-row-end: 2;\r\n  background: red;\r\n}\r\n<\/pre>\n<p>Obtendremos el siguiente resultado:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9134 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid02.png\" alt=\"Ejemplo #2\" width=\"783\" height=\"527\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid02.png 783w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid02-300x202.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid02-768x517.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid02-700x471.png 700w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\" \/><\/p>\n<p>Tal y como se puede observar, el primer hijo se ha dispuesto en la posici\u00f3n de la rejilla que hemos indicado, mientras que el resto se han colocado de forma autom\u00e1tica. Ahora vamos a colocar el segundo hijo, pero esta vez formando una columna en lugar de una fila.<\/p>\n<pre>\r\n#p2 {\r\n  \/* grid-column es una abreviatura de grid-column-start y grid-column-end *\/\r\n  grid-column: 3 \/ 4;\r\n  \/* grid-row es una abreviatura de grid-row-start y grid-row-end *\/\r\n  grid-row: 1 \/ 3;\r\n  background: green;\r\n}\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9140 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03.png\" alt=\"Ejemplo #3\" width=\"768\" height=\"766\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03-150x150.png 150w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03-300x300.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03-570x570.png 570w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03-500x500.png 500w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid03-700x698.png 700w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/p>\n<p>Ahora vamos a colocar el tercer hijo de nuevo formando una fila.<\/p>\n<pre>\r\n#p3 {\r\n  \/* grid-area es una abreviatura de grid-column y grid-row *\/\r\n  grid-area: 3 \/ 2 \/ 4 \/ 4; \/* equivale a grid-row: 3 \/ 4; grid-column: 2 \/ 4; *\/\r\n  background: blue;\r\n}\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9151 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04.png\" alt=\"Ejemplo #4\" width=\"762\" height=\"760\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04.png 762w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04-150x150.png 150w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04-300x300.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04-570x570.png 570w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04-500x500.png 500w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid04-700x698.png 700w\" sizes=\"auto, (max-width: 762px) 100vw, 762px\" \/><\/p>\n<p>Y finalmente vamos a terminar de colocar el cuarto hijo, el quinto no necesitamos indicar su posici\u00f3n ya que simplemente se quedar\u00e1 en el \u00fanico hueco del <strong>Grid<\/strong> que le vamos a dejar vac\u00edo.<\/p>\n<pre>\r\n#p4 {\r\n  \/* grid-area: inicio fila \/ inicio columna \/ fin fila \/ fin columna; *\/\r\n  grid-area: 2 \/ 1 \/ 4 \/ 2;\r\n  background: yellow;\r\n}\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9152 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05.png\" alt=\"Ejemplo #5\" width=\"766\" height=\"762\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05.png 766w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05-150x150.png 150w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05-300x298.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05-700x696.png 700w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><\/p>\n<p>Tal y como se ha podido observar, la propiedad CSS <strong><em>grid-area<\/em><\/strong> es una abreviatura de las propiedades <strong><em>grid-row<\/em><\/strong> y <strong><em>grid-column<\/em><\/strong>. Y de forma similar, <strong><em>grid-row<\/em><\/strong> es una abreviatura de <strong><em>grid-row-start<\/em><\/strong> y <strong><em>grid-row-end<\/em><\/strong>. Y lo mismo sucede con <strong><em>grid-column<\/em><\/strong> que es una abreviatura de <strong><em>grid-column-start<\/em><\/strong> y <strong><em>grid-column-end<\/em><\/strong>.<\/p>\n<p>Tambi\u00e9n existe otra abreviatura para indicar la rejilla en el elemento padre.<\/p>\n<pre>\r\n#grid {\r\n  display: grid; \/* CSS Grid Layout *\/\r\n  \/* grid-template es una abreviatura de\r\n  grid-template-columns y grid-template-rows *\/\r\n  grid-template: 200px 200px 200px \/ 200px 200px 200px; \/* filas \/ columnas *\/\r\n}\r\n<\/pre>\n<h2>Nombres de l\u00edneas<\/h2>\n<p>En lugar de trabajar con n\u00fameros, existe la posibilidad de darle nombre a las l\u00edneas del <strong>Grid<\/strong>. Para ello simplemente debemos de indicar el nombre entre los tama\u00f1os cuando definimos la rejilla.<\/p>\n<pre>\r\n#grid {\r\n  display: grid; \/* CSS Grid Layout *\/\r\n  grid-template-rows: [primera] 200px [dos] 200px [tres] 200px [ultima];\r\n  grid-template-columns: [first] 200px [second] 200px [third] 200px [last];\r\n}\r\n<\/pre>\n<p><em>(Nota: podemos darle m\u00e1s de un nombre a una misma l\u00ednea usando un espacio para separarlos [nombre1 nombre2].)<\/em><\/p>\n<p>Despu\u00e9s, simplemente en lugar de indicar los n\u00fameros hay que indicar los nombres.<\/p>\n<pre>\r\n#p4 {\r\n  grid-area: dos \/ first \/ ultima \/ second;\r\n  background: yellow;\r\n}\r\n<\/pre>\n<h2>Separaci\u00f3n entre celdas<\/h2>\n<p>Es posible indicar una separaci\u00f3n entre las celdas del <strong>Grid<\/strong> mediante el atributo CSS <strong><em>grid-gap<\/em> <\/strong>(que es una abreviatura de <strong><em>grid-row-gap<\/em><\/strong> y <strong><em>grid-column-gap<\/em><\/strong>).<\/p>\n<pre>\r\n#grid {\r\n  display: grid; \/* CSS Grid Layout *\/\r\n  grid-template: 200px 200px 200px \/ 200px 200px 200px;\r\n  grid-gap: 10px 20px; \/* separaci\u00f3n entre filas y columnas *\/\r\n  \/* NOTA: si indicamos un solo valor se aplicar\u00e1 el mismo valor\r\n  tanto a las filas como a las columnas *\/\r\n}\r\n<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9154 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05b.png\" alt=\"Ejemplo #6\" width=\"810\" height=\"786\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05b.png 810w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05b-300x291.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05b-768x745.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid05b-700x679.png 700w\" sizes=\"auto, (max-width: 810px) 100vw, 810px\" \/><\/p>\n<h2>Tama\u00f1o de la rejilla del Grid<\/h2>\n<p>En el ejemplo anterior simplemente hemos usado pixeles para definir el tama\u00f1o de las filas y las columnas, pero adem\u00e1s de otras unidades similares como <strong>em<\/strong> o <strong>rem<\/strong>, o el uso de porcentajes con <strong>%<\/strong>, tenemos tambi\u00e9n las siguientes alternativas:<\/p>\n<ul>\n<li><strong>auto<\/strong> \u2013 si indicamos este valor, las filas o columnas tendr\u00e1 un tama\u00f1o seg\u00fan el contenido.<\/li>\n<li><strong>fr<\/strong> \u2013 esta es una nueva unidad similar al funcionamiento de la propiedad CSS <strong><em>flex-grow <\/em><\/strong>del <strong>Flexbox<\/strong>. Es un valor que indica que proporci\u00f3n del espacio libre (si lo hay) se asignar\u00e1 a la fila o columna.<\/li>\n<\/ul>\n<p>Vamos a modificar el ejemplo anterior con estas nuevas unidades.<\/p>\n<pre>\r\n#grid {\r\n  display: grid; \/* CSS Grid Layout *\/\r\n  \/* La primera columna medira 100px de ancho.\r\n  Del ancho restante, la tercera columna\r\n  se quedar\u00e1 el doble de ancho que la primera. *\/\r\n  grid-template-columns: 100px 1fr 2fr;\r\n  \/* La altura de la primera fila depender\u00e1 del contenido.\r\n  Si hacen falta m\u00e1s filas (va a ser que si), se crear\u00e1n\r\n  autom\u00e1ticamente con altura autom\u00e1tica.\r\n  *\/\r\n  grid-template-rows: auto;\r\n}\r\n<\/pre>\n<p>Esta vez la rejilla ocupar\u00e1 todo el ancho del elemento #grid. La primera columna ser\u00e1 de tan solo 100px de ancho, y las otras dos se repartir\u00e1n el ancho restante de forma no proporcional. Respecto a la altura, depender\u00e1 del contenido, que en este caso es muy escaso, por lo que el resultado ser\u00e1 el siguiente:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-9155 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid06.png\" alt=\"Ejemplo de CSS Grid Layout #7\" width=\"1440\" height=\"74\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid06.png 1440w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid06-300x15.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid06-768x39.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid06-1024x53.png 1024w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/grid06-700x36.png 700w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/p>\n<p>Y por ahora nada m\u00e1s. Espero que os haya resultado interesante esta introducci\u00f3n a este nuevo sistema de <strong>Layout<\/strong>. En un pr\u00f3ximo art\u00edculo veremos otros aspectos como <a href=\"https:\/\/www.espai.es\/blog\/2020\/03\/usar-areas-en-css-grid-layout\/\">las \u00e1reas de CSS Grid Layout<\/a>, o como realizar el <em>responsive<\/em>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Flexbox es unidimensional. Es capaz de disponer los elementos hijos formando filas o columnas. Pero lo que no puede hacer de ning\u00fan modo es disponer los elementos hijos formando filas y columnas al mismo tiempo. Cuando a un elemento HTML le indicamos display: flex;, por&#8230;<\/p>\n","protected":false},"author":23,"featured_media":9175,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_ef_editorial_meta_date_first-draft-date":"","_ef_editorial_meta_paragraph_assignment":"","_ef_editorial_meta_checkbox_needs-photo":"","_ef_editorial_meta_number_word-count":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7],"tags":[12,714],"class_list":["post-9127","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diseno-web","tag-css","tag-grid"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Introducci\u00f3n a CSS Grid Layout - Blog Escola Espai<\/title>\n<meta name=\"description\" content=\"CSS Grid Layout va m\u00e1s all\u00e1 de Flexbox y nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introducci\u00f3n a CSS Grid Layout - Blog Escola Espai\" \/>\n<meta property=\"og:description\" content=\"CSS Grid Layout va m\u00e1s all\u00e1 de Flexbox y nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Escola Espai\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-30T15:19:21+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-13T18:36:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Abel Camarena\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abel Camarena\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\"},\"author\":{\"name\":\"Abel Camarena\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\"},\"headline\":\"Introducci\u00f3n a CSS Grid Layout\",\"datePublished\":\"2020-01-30T15:19:21+00:00\",\"dateModified\":\"2021-09-13T18:36:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\"},\"wordCount\":1046,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg\",\"keywords\":[\"CSS\",\"Grid\"],\"articleSection\":[\"Dise\u00f1o Web\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\",\"url\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\",\"name\":\"Introducci\u00f3n a CSS Grid Layout - Blog Escola Espai\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg\",\"datePublished\":\"2020-01-30T15:19:21+00:00\",\"dateModified\":\"2021-09-13T18:36:38+00:00\",\"author\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\"},\"description\":\"CSS Grid Layout va m\u00e1s all\u00e1 de Flexbox y nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage\",\"url\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg\",\"contentUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg\",\"width\":1000,\"height\":500,\"caption\":\"CSS Grid Layout\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.espai.es\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introducci\u00f3n a CSS Grid Layout\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.espai.es\/blog\/#website\",\"url\":\"https:\/\/www.espai.es\/blog\/\",\"name\":\"Blog Escola Espai\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.espai.es\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\",\"name\":\"Abel Camarena\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g\",\"caption\":\"Abel Camarena\"},\"sameAs\":[\"http:\/\/www.espai.es\"],\"url\":\"https:\/\/www.espai.es\/blog\/author\/abel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Introducci\u00f3n a CSS Grid Layout - Blog Escola Espai","description":"CSS Grid Layout va m\u00e1s all\u00e1 de Flexbox y nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/","og_locale":"es_ES","og_type":"article","og_title":"Introducci\u00f3n a CSS Grid Layout - Blog Escola Espai","og_description":"CSS Grid Layout va m\u00e1s all\u00e1 de Flexbox y nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas.","og_url":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/","og_site_name":"Blog Escola Espai","article_published_time":"2020-01-30T15:19:21+00:00","article_modified_time":"2021-09-13T18:36:38+00:00","og_image":[{"width":1000,"height":500,"url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg","type":"image\/jpeg"}],"author":"Abel Camarena","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Abel Camarena","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#article","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/"},"author":{"name":"Abel Camarena","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897"},"headline":"Introducci\u00f3n a CSS Grid Layout","datePublished":"2020-01-30T15:19:21+00:00","dateModified":"2021-09-13T18:36:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/"},"wordCount":1046,"commentCount":0,"image":{"@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg","keywords":["CSS","Grid"],"articleSection":["Dise\u00f1o Web"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/","url":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/","name":"Introducci\u00f3n a CSS Grid Layout - Blog Escola Espai","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage"},"image":{"@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg","datePublished":"2020-01-30T15:19:21+00:00","dateModified":"2021-09-13T18:36:38+00:00","author":{"@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897"},"description":"CSS Grid Layout va m\u00e1s all\u00e1 de Flexbox y nos va a permitir disponer los elementos hijos combinando filas y columnas sin problemas.","breadcrumb":{"@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#primaryimage","url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg","contentUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg","width":1000,"height":500,"caption":"CSS Grid Layout"},{"@type":"BreadcrumbList","@id":"https:\/\/www.espai.es\/blog\/2020\/01\/introduccion-a-css-grid-layout\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.espai.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Introducci\u00f3n a CSS Grid Layout"}]},{"@type":"WebSite","@id":"https:\/\/www.espai.es\/blog\/#website","url":"https:\/\/www.espai.es\/blog\/","name":"Blog Escola Espai","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.espai.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897","name":"Abel Camarena","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g","caption":"Abel Camarena"},"sameAs":["http:\/\/www.espai.es"],"url":"https:\/\/www.espai.es\/blog\/author\/abel\/"}]}},"jetpack_featured_media_url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2020\/01\/intro_grid.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/9127","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/comments?post=9127"}],"version-history":[{"count":15,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/9127\/revisions"}],"predecessor-version":[{"id":9301,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/9127\/revisions\/9301"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media\/9175"}],"wp:attachment":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media?parent=9127"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/categories?post=9127"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/tags?post=9127"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}