{"id":1443,"date":"2023-10-22T12:04:40","date_gmt":"2023-10-22T11:04:40","guid":{"rendered":"https:\/\/bitsolto.com\/bitacora\/?p=1443"},"modified":"2023-10-22T12:21:25","modified_gmt":"2023-10-22T11:21:25","slug":"consellos-trucos-css","status":"publish","type":"post","link":"https:\/\/bitsolto.com\/bitacora\/deseno-web\/consellos-trucos-css\/","title":{"rendered":"Consellos e trucos CSS"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Calc(), Grid e Flexbox<\/h2>\n\n\n\n<p>Sabemos que o esencial para crear contidos web con estilo basta con HTML e CSS. Pero \u00e9 bastante habitual que por momentos nos esquezamos destas torcas e parafusos do dese\u00f1o web. Demasiado habituados ao uso de bibliotecas como Material, Semantic-Ui, Tailwind ou Bootstrap, ou outras; esquecemos alg\u00fans conceptos clave e moi \u00fatiles para o dese\u00f1o web.<\/p>\n\n\n\n<p>Falemos dalgunhas destas ferramentas CSS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C\u00e1lculo<\/h3>\n\n\n\n<p>A primeira ferramenta CSS que veremos \u00e9 a funci\u00f3n <em>calc()<\/em> . Esta funci\u00f3n se pode engadir dentro do noso arquivo CSS. <em><code>calc()<\/code><\/em> \u00e9 unha funci\u00f3n que executa ou &#8216;calcula&#8217; unha ecuaci\u00f3n dentro das t\u00faas declaraci\u00f3ns. Para este exemplo, empregaremos un documento HTML b\u00e1sico con tres divs dentro dun div principal. Digamos que queremos facer que cada div fillo ocupe 1\/3 de todo o ancho da pantalla. Isto ser\u00eda doado se sabemos que a pantalla sempre ter\u00e1 un tama\u00f1o espec\u00edfico. <em><code>calc()<\/code><\/em> permite ademais que o noso dese\u00f1o sexa sensible aos cambios de tama\u00f1o da pantalla.\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html><br>\u00a0&lt;html lang=\"en\"><br>\u00a0&lt;head><br>\u00a0 \u00a0 \u00a0&lt;meta charset=\"UTF-8\"><br>\u00a0 \u00a0 \u00a0&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><br>\u00a0 \u00a0 \u00a0&lt;link rel=\"stylesheet\" href=\"styles.css\"><br>\u00a0 \u00a0 \u00a0&lt;title>Document&lt;\/title><br>\u00a0&lt;\/head><br>\u00a0&lt;body><br>\u00a0 \u00a0 \u00a0&lt;div class=\"container\"><br>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-1\">One&lt;\/div><br>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-2\">Two&lt;\/div><br>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-3\">Three&lt;\/div><br>\u00a0 \u00a0 \u00a0&lt;\/div><br><br>\u00a0&lt;\/body><br>\u00a0&lt;\/html><\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>arquivo html de referencia<\/small><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u200b&nbsp;html, body{<br>&nbsp; &nbsp; &nbsp;margin: 0;<br>&nbsp;}<br>&nbsp;\u200b<br>&nbsp;.container &gt; div { &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp;outline: 1px solid black; &nbsp;<br>&nbsp;}<br>&nbsp;.box-1 {<br>&nbsp; &nbsp; &nbsp;width: calc( 100vw \/ 3 ); &nbsp; &nbsp; \/* calcula o 100% da vista e o divide entre 3 *\/<br>&nbsp; &nbsp; &nbsp;color: white; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br>&nbsp; &nbsp; &nbsp;background: purple;<br>&nbsp;}<br>&nbsp;.box-2 {<br>&nbsp; &nbsp; &nbsp;width: calc( 100vw * ( 2 \/ 3) ); &nbsp;\/* dous terzos da vista enteira *\/<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: orange<br>&nbsp;}<br>&nbsp;.box-3 {<br>&nbsp; &nbsp; &nbsp;width: 100vw; &nbsp; \/* a vista enteira, para referencia *\/<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: green;<br>&nbsp;}<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>arquivo cos estilos CSS<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>No navegador podemos esperar os seguintes resultados:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022123658275.png\" alt=\"\" class=\"wp-image-1444\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022123658275.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022123658275-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022123658275-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>tama\u00f1o dos div usando calc<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>Neste exemplo, se axusta o ancho e o alto de resposta en 600px para que sexa f\u00e1cil ver que cada div \u00e9 1\/3, 2\/3 e despois o ancho completo. Pero, e se o ancho total da pantalla fose de 782px ou 911px? En lugar de facer aproximaci\u00f3ns con porcentaxes como o 33,33 % ou o 66,67 %, podemos calcular un terzo exacto da anchura de vista para eliminar a estimaci\u00f3n do tama\u00f1o do noso elemento.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Esta \u00e9 unha ferramenta moi \u00fatil en escenarios que precisan unha presentaci\u00f3n perfecta de pixels &#8211; <em>pixel pefect<\/em>. Partindo do bosquexo ou wireframe do teu dese\u00f1o, podes descubrir a relaci\u00f3n entre o div e a pantalla do dispositivo de visualizaci\u00f3n. E logo, en lugar de asignar a cada compo\u00f1ente unha altura ou un ancho concreto, podes asignarlles valores calculados, como 1\/3 da altura ou do ancho da pantalla.<\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">CSS Flexbox<\/h3>\n\n\n\n<p>CSS flexbox \u00e9 unha funci\u00f3n de CSS que permite aplicar estilos aos elementos dunha p\u00e1xina nunha dimensi\u00f3n, e determinar o espazo entre os elementos e a direcci\u00f3n na que fl\u00faen, xa sexan columnas ou filas. Flexbox \u00e9 ideal para un conxunto de elementos que necesitan unha visualizaci\u00f3n uniforme en todos os \u00e1mbitos.<\/p>\n\n\n\n<p>O arquivo html de referencia para este exemplo \u00e9 o que segue:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u00a0&lt;!DOCTYPE html>\n\u00a0&lt;html lang=\"en\">\n\u00a0&lt;head>\n\u00a0 \u00a0 \u00a0&lt;meta charset=\"UTF-8\">\n\u00a0 \u00a0 \u00a0&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\u00a0 \u00a0 \u00a0&lt;link rel=\"stylesheet\" href=\"styles2.css\">\n\u00a0 \u00a0 \u00a0&lt;title>Document&lt;\/title>\n\u00a0&lt;\/head>\n\u00a0&lt;body>\n\u00a0 \u00a0 \u00a0&lt;div class=\"container\">\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-1\">Lorem ipsum dolor sit amet.&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-2\">Lorem ipsum dolor, sit amet consectetur adipisicing elit. Officiis, corporis!&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-3\">Lorem ipsum dolor sit.&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-4\">Lorem ipsum, dolor sit amet consectetur adipisicing.&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-5\">Lorem ipsum dolor sit amet.&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-6\">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum, delectus. Laudantium doloremque quam voluptatem nulla.&lt;\/div>\n\u00a0 \u00a0 \u00a0&lt;\/div>\n&lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124206352.png\" alt=\"\" class=\"wp-image-1445\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124206352.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124206352-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124206352-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>sen estilo CSS (excepto para as cores de cada div)<\/small><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u200b&nbsp;.box-1{<br>&nbsp; &nbsp; &nbsp;background: blue;<br>&nbsp;}<br>&nbsp;.box-2{<br>&nbsp; &nbsp; &nbsp;background: blueviolet; &nbsp;<br>&nbsp;}<br>&nbsp;.box-3{<br>&nbsp; &nbsp; &nbsp;background: orangered;<br>&nbsp;}<br>&nbsp;.box-4{<br>&nbsp; &nbsp; &nbsp;background: yellowgreen;<br>&nbsp;}<br>&nbsp;.box-5{<br>&nbsp; &nbsp; &nbsp;background: sandybrown; &nbsp;<br>&nbsp;}<br>&nbsp;.box-6{<br>&nbsp; &nbsp; &nbsp;background: gray;<br>&nbsp;}<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>estilo CSS s\u00f3 para as cores de cada div<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>Agora, para mudar a visualizaci\u00f3n e que todos os div dentro do \u201c<code>div.container<\/code>&#8221; estean na mesma li\u00f1a, simplemente podemos configurar a visualizaci\u00f3n do contedor principal a &#8220;flex&#8221;. E todos encaixar\u00e1n na mesma li\u00f1a:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124312189.png\" alt=\"\" class=\"wp-image-1446\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124312189.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124312189-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124312189-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>todos os div son contidos na mesma li\u00f1a<\/small><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u200b&nbsp;.container{<br>&nbsp; &nbsp; &nbsp;display: flex;<br>&nbsp;}<br>&nbsp;\/\/ ...<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>configurar a visualizaci\u00f3n do contedor principal para flex<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>Hai unha serie de funci\u00f3ns integradas en flexbox que permiten modificar a\u00ednda m\u00e1is a colocaci\u00f3n do contido na p\u00e1xina. Por exemplo, se non queremos todo nunha li\u00f1a, pero queremos manter a fila, podemos engadir un axuste flexible ao noso contedor principal. Isto, xunto con xustificar-contido: o espazo-equilibrio contin\u00faa o patr\u00f3n de mostrar os nosos divs fila por fila sen comezar unha nova fila para cada div, pero tam\u00e9n cambiando o espazo entre eles. Ao engadir un tama\u00f1o predeterminado aos divs, podemos ver o efectiva que poden ser esta adici\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124405016.png\" alt=\"\" class=\"wp-image-1447\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124405016.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124405016-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124405016-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>espazo entre cada elemento<\/small><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u200b&nbsp;.container{<br>&nbsp; &nbsp; &nbsp;display: flex;<br>&nbsp; &nbsp; &nbsp;flex-wrap: wrap;<br>&nbsp; &nbsp; &nbsp;justify-content: space-around;<br>&nbsp;}<br>&nbsp;.container &gt; div {<br>&nbsp; &nbsp; &nbsp;width: 200px;<br>&nbsp;}<br>&nbsp;\/\/ ...<\/code><\/pre>\n\n\n\n<p>Outra caracter\u00edstica de flexbox \u00e9 a capacidade de mover o contido de cada compo\u00f1ente fillo dentro de si mesmo. Con <code>align-self<\/code>, podes cambiar o espazo dentro da caixa flexible que ocupa o div e onde se atopa.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124517278.png\" alt=\"\" class=\"wp-image-1448\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124517278.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124517278-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124517278-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>exemplo de align-self<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>Mirando o exemplo anterior, podemos ver que <code>align-self<\/code> pon o contido de cada div no centro, comezo ou final do div real.\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.container{<br>\u00a0 \u00a0 \u00a0display: flex;<br>\u00a0 \u00a0 \u00a0flex-wrap: wrap;<br>\u00a0 \u00a0 \u00a0justify-content: space-around;<br>\u00a0}<br>\u00a0.container > div {<br>\u00a0 \u00a0 \u00a0width: 200px;<br>\u00a0}<br>\u00a0.box-1{<br>\u00a0 \u00a0 \u00a0background: blue;<br>\u00a0 \u00a0 \u00a0align-self: center;<br>\u00a0}<br>\u00a0.box-2{<br>\u00a0 \u00a0 \u00a0background: blueviolet;<br>\u00a0}<br>\u00a0.box-3{<br>\u00a0 \u00a0 \u00a0background: orangered;<br>\u00a0 \u00a0 \u00a0align-self: flex-end; \u00a0<br>\u00a0}<br>\u00a0.box-4{<br>\u00a0 \u00a0 \u00a0background: yellowgreen;<br>\u00a0 \u00a0 \u00a0align-self: flex-start;<br>\u00a0}<br>\u00a0.box-5{<br>\u00a0 \u00a0 \u00a0background: sandybrown; \u00a0<br>\u00a0 \u00a0 \u00a0align-self: flex-end;<br>\u00a0}<br>\u00a0.box-6{<br>\u00a0 \u00a0 \u00a0background: gray;<br>\u00a0}<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>ali\u00f1ando o contido de cada div<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>CSS flexbox tam\u00e9n ten outras moitas funci\u00f3ns \u00fatiles, como <code>align-content<\/code>, <code>align-items<\/code> e <code>flex grow<\/code>. Todas elas permiten cambiar o dese\u00f1o e o tama\u00f1o dos elementos dentro do flexbox.<\/p>\n\n\n\n<p>Flexbox \u00e9 xenial porque pode organizar unha fila ou unha columna unidimensional do teu contido. E pode que por iso se use normalmente flexbox para dese\u00f1os de contedores e divs espec\u00edficos, en lugar de p\u00e1xinas enteiras.<\/p>\n\n\n\n<p>Pero que pasa cando necesitas organizar a t\u00faa p\u00e1xina enteira en d\u00faas direcci\u00f3ns? Iso l\u00e9vanos \u00e1 grella de CSS Grid.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Grella CSS<\/h3>\n\n\n\n<p>Outra ferramenta para o estilo CSS \u00e9 CSS Grid. Mentres flex-box \u00e9 uni-dimensional, CSS Grid permite unha disposici\u00f3n bidimensional dos elementos da p\u00e1xina. Podemos empregar o noso html orixinal pero con alg\u00fan CSS diferente para explorar o uso de CSS Grid.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u00a0html, body{<br>\u00a0 \u00a0 \u00a0margin: 0;<br>\u00a0}<br>\u00a0\u200b<br>\u00a0.container {<br>\u00a0 \u00a0 \u00a0display: grid; \/* o contedor principal se disp\u00f3n como grella - grid *\/<br>\u00a0 \u00a0 \u00a0grid-template-columns: 1fr 2fr 3fr; \/* e se determina o tam\u00f1o para cada columna *\/<br>\u00a0}<br>\u00a0.box-1 { \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\/* as\u00ed non precisamos especificar o ancho de cada div *\/<br>\u00a0 \u00a0 \u00a0color: white;<br>\u00a0 \u00a0 \u00a0background: purple;<br>\u00a0}<br>\u00a0.box-2 {<br>\u00a0 \u00a0 \u00a0color: white;<br>\u00a0 \u00a0 \u00a0background: orange<br>\u00a0}<br>\u00a0.box-3 {<br>\u00a0 \u00a0 \u00a0color: white;<br>\u00a0 \u00a0 \u00a0background: green;<br>\u00a0}<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>CSS empregando visualizaci\u00f3n en cuadr\u00edcula &#8211; grid<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124804819.png\" alt=\"\" class=\"wp-image-1449\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124804819.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124804819-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124804819-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>Os divs se ali\u00f1an por terzos nunha soa fila<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>Como podes ver, reducimos a cantidade de CSS que temos que escribir para acadar o tama\u00f1o de cada div. Con CSS Grid, a unidade &#8220;fr&#8221; \u00fasase para facer referencia a unha fracci\u00f3n do espazo libre que queda na grella. A regra &#8220;<code>grid-template-columns<\/code>&#8221; establece o valor de cada columna dentro dunha grella. Pode ser unha lonxitude, porcentaxe ou fracci\u00f3n, neste caso \u00e9 unha fracci\u00f3n. Neste exemplo, a primeira columna \u00e9 de 1\/5, a segunda de 2\/5 e a terceira de 3\/5 de ancho. (As fracci\u00f3ns son superiores a 5 xa que se sumas todos os valores de fr, obter\u00e1s 6).<\/p>\n\n\n\n<p>Se queremos recrear a mesma visualizaci\u00f3n que obtivemos usando a funci\u00f3n <em>calc()<\/em> para crear 1\/3 e 2\/3, podemos ampliar as columnas do modelo inicial e engadir alg\u00fans CSS:\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n\u00a0&lt;html lang=\"en\">\n\u00a0&lt;head>\n\u00a0 \u00a0 \u00a0&lt;meta charset=\"UTF-8\">\n\u00a0 \u00a0 \u00a0&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\u00a0 \u00a0 \u00a0&lt;link rel=\"stylesheet\" href=\"styles.css\">\n\u00a0 \u00a0 \u00a0&lt;title>Document&lt;\/title>\n\u00a0&lt;\/head>\n\u00a0&lt;body>\n\u00a0 \u00a0 \u00a0&lt;div class=\"container\">\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-1\">One&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-2\">Two&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-3\">Three&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-4\">Four&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-5\">Five&lt;\/div>\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0&lt;div class=\"box-6\">Six&lt;\/div>\n\u00a0\u200b\u00a0 \u00a0 \u00a0&lt;\/div>\n\u00a0&lt;\/body>\n\u00a0&lt;\/html><\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">c<small>rear seis caixas<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"931\" height=\"640\" src=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124922520.png\" alt=\"\" class=\"wp-image-1450\" srcset=\"https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124922520.png 931w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124922520-300x206.png 300w, https:\/\/bitsolto.com\/bitacora\/wp-content\/uploads\/2023\/10\/image-20231022124922520-768x528.png 768w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>pantalla dividida en terzos<\/small><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\u200b&nbsp;html, body{<br>&nbsp; &nbsp; &nbsp;margin: 0;<br>&nbsp;}<br>&nbsp;\u200b<br>&nbsp;.container {<br>&nbsp; &nbsp; &nbsp;display: grid;<br>&nbsp; &nbsp; &nbsp;\/* grid-template-columns: 1fr 2fr 3fr; *\/<br>&nbsp; &nbsp; &nbsp;grid-auto-columns: 1fr; \/* cada columna \u00e9 unha peza igual do conxunto *\/<br>&nbsp; &nbsp; &nbsp;grid-template-rows: repeat(3, 1fr 2fr 1fr); \/* repetir este patr\u00f3n de tama\u00f1o cada tres filas *\/<br>&nbsp;}<br>&nbsp;.box-1 {<br>&nbsp; &nbsp; &nbsp;grid-column: 1; \/* comeza na columna 1, por defecto s\u00f3 ocupa un espazo de columna *\/<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: purple;<br>&nbsp;}<br>&nbsp;.box-2 {<br>&nbsp; &nbsp; &nbsp;grid-column: span 2; &nbsp;\/* tramo da columna 1 ata a 2 *\/<br>&nbsp; &nbsp; &nbsp;grid-row: 2; &nbsp; &nbsp; &nbsp;\/* comezar na fila 2 *\/<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: orange<br>&nbsp;}<br>&nbsp;.box-3 {<br>&nbsp; &nbsp; &nbsp;grid-column: 3; &nbsp; \/* comezar na columna 3 *\/<br>&nbsp; &nbsp; &nbsp;grid-row: 3; &nbsp; &nbsp; &nbsp;\/* comezar na fila 3 *\/<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: green;<br>&nbsp;}<br>&nbsp;.box-4 {<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: blue;<br>&nbsp; &nbsp; &nbsp;grid-row: 4;<br>&nbsp;}<br>&nbsp;.box-5 {<br>&nbsp; &nbsp; &nbsp;color: white;<br>&nbsp; &nbsp; &nbsp;background: red;<br>&nbsp; &nbsp; &nbsp;grid-column: span 2;<br>&nbsp; &nbsp; &nbsp;grid-row: 5;<br>&nbsp;}<br>&nbsp;.box-6 {<br>&nbsp; &nbsp; &nbsp;background: yellow;<br>&nbsp; &nbsp; &nbsp;grid-column: 2; \/* asentar na columna do medio pero...*\/<br>&nbsp; &nbsp; &nbsp;grid-row: 6; &nbsp; &nbsp; &nbsp;\/* ocupando o espazo dunha soa columna *\/<br>&nbsp;}<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\">\u200b<small>dando estilo \u00e1s caixas adicionais<\/small><\/p>\n\n\n\n<p>\u200b<\/p>\n\n\n\n<p>Vexamos o exemplo en detalle:<\/p>\n\n\n\n<p>No contedor, xeramos columnas autom\u00e1ticas que representan 1fr do espazo libre, o que significa que a cantidade de columnas depender\u00e1 de onde coloquemos os nosos elementos individuais, pero sempre ser\u00e1n unha fracci\u00f3n par do tama\u00f1o total. Despois, usamos a funci\u00f3n <em>repeat()<\/em> para repetir ese tama\u00f1o de fila de 1fr, 2fr, 1fr cada tres filas. A\u00ednda que tiv\u00e9semos 200 divs no noso HTML, o tama\u00f1o de cada fila ser\u00eda 1fr 2fr 1fr, facendo que a fila do medio sexa d\u00faas veces m\u00e1is grande que a primeira e a \u00faltima do patr\u00f3n.<\/p>\n\n\n\n<p>Na parte inferior do arquivo CSS podes ver que establecemos o \u00faltimo div para que permaneza na columna central. Sen especificar que ten que ser m\u00e1is grande, o div ocupar\u00e1 automaticamente exactamente unha columna de ancho e unha fila.<\/p>\n\n\n\n<p>Hai decenas de funci\u00f3ns m\u00e1is en CSS Grid, pero isto pode servir para encetar. Iso si, recom\u00e9ndoche ler a documentaci\u00f3n e probar con CSS Grid at\u00e9 familiarizarse con este poderoso recurso de estilo. Constru\u00edr r\u00e9plicas de xornais ou xogos de cartas son algunhas boas formas de familiarizarse coa grella CSS. Funci\u00f3ns como <code>row-gap<\/code> e <code>column-gap<\/code>, ali\u00f1ar elementos e xustificar elementos dentro das s\u00faas columnas e filas e comprender a ubicaci\u00f3n poden levar o teu estilo CSS ao seguinte nivel.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">R\u00e1pido crecemento<\/h2>\n\n\n\n<p>CSS, como calquera outra tecnolox\u00eda, sempre est\u00e1 crecendo e cambiando. Cousas como flexbox levan m\u00e1is de 10 anos, pero sempre est\u00e1 a sufrir actualizaci\u00f3ns. CSS Grid \u00e9 algo m\u00e1is nova e realmente resolve moitos problemas que quedan abertos con flexbox. Cousas como o desprazamento instant\u00e1neo, as fontes variables e as unidades de relaci\u00f3n de aspecto son outras excelentes funci\u00f3ns para utilizar con CSS.<\/p>\n\n\n\n<p>Lembra que podes constru\u00edr un proxecto sen marcos de estilo e profundar nos poderes de CSS. Moitas empresas que buscan contratar un programador frontend est\u00e1n m\u00e1is interesadas na comprensi\u00f3n de CSS que no que se pode facer cunha biblioteca de estilos. An\u00edmoche a non pasar por alto os conceptos b\u00e1sicos do dese\u00f1o web e non ter medo de non estar ao d\u00eda das \u00faltimas tendencias CSS mentres saibas do poder dos conceptos fundamentais.<\/p>\n\n\n\n<p>Feliz codificaci\u00f3n!<\/p>\n\n\n\n<p><em><strong>Recursos:<\/strong><\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/github.com\/AidanMcB\/css-tips\">AidanMcB\/css-tips<\/a><\/strong>: GitHub \u00e9 o fogar de m\u00e1is de 50 mill\u00f3ns de desenvolvedores que traballan xuntos para aloxar e revisar c\u00f3digo, xestionar proxectos e constru\u00edr&#8230;<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/css-tricks.com\/snippets\/css\/complete-guide-grid\/\">Gu\u00eda completa de Grid | CSS-Triks<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/css-tricks.com\/snippets\/css\/a-guide-to-flexbox\">Gu\u00eda completa de Flexbox | CSS-Tricks<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"www.w3schools.com\">Tutorial CSS<\/a><\/strong><\/li>\n\n\n\n<li>MDN<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em>ref.:<\/em> Artigo de referencia <a href=\"https:\/\/aidankmcbride.medium.com\/?source=post_page-----81d3c641428--------------------------------\">Aidan McBride<\/a> \u00b7 22 de novembro de 2020<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Calc(), Grid e Flexbox Sabemos que o esencial para crear contidos web con estilo basta con HTML e CSS. Pero \u00e9 bastante habitual que por momentos nos esquezamos destas torcas e parafusos do dese\u00f1o web. Demasiado habituados ao uso de bibliotecas como Material, Semantic-Ui, Tailwind ou Bootstrap, ou outras; esquecemos alg\u00fans conceptos clave e moi [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1453,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"","ocean_second_sidebar":"","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"","ocean_custom_header_template":"","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"","ocean_menu_typo_font_family":"","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"","omw_enable_modal_window":"enable","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"on","ocean_gallery_id":[],"footnotes":""},"categories":[19,55],"tags":[],"class_list":["post-1443","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-deseno-web","category-tips","entry","has-media"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts\/1443","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/comments?post=1443"}],"version-history":[{"count":2,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts\/1443\/revisions"}],"predecessor-version":[{"id":1454,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/posts\/1443\/revisions\/1454"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/media\/1453"}],"wp:attachment":[{"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/media?parent=1443"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/categories?post=1443"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitsolto.com\/bitacora\/wp-json\/wp\/v2\/tags?post=1443"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}