{"componentChunkName":"component---src-templates-post-js","path":"/blog/justify-content","result":{"data":{"markdownRemark":{"html":"<p class=\"intro\">In my <a href=\"https://anku.netlify.com/blog/flexbox-wrapping/\">last post</a>, I discussed about <code>flexbox-wrap</code> and <code>order</code>. Today, I will be talking about the role of <code>justify-content</code> in Flexbox.</p>\n<p>I will be using below code sample to explain <code class=\"language-text\">justify-content</code>. I have 6 divs (flex-items) inside a container div (flex-container).</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>container<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>box box1<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>1<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>box box2<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>2<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>box box3<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>3<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>box box4<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>4<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>box box5<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>5<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n    <span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span> <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>box box6<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span>6<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<div class=\"gatsby-highlight\" data-language=\"css\"><pre class=\"language-css\"><code class=\"language-css\"><span class=\"token selector\">.box</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">color</span><span class=\"token punctuation\">:</span> white<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">font-size</span><span class=\"token punctuation\">:</span> 100px<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">text-align</span><span class=\"token punctuation\">:</span> center<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">text-shadow</span><span class=\"token punctuation\">:</span> 4px 4px 0 <span class=\"token function\">rgba</span><span class=\"token punctuation\">(</span>0<span class=\"token punctuation\">,</span> 0<span class=\"token punctuation\">,</span> 0<span class=\"token punctuation\">,</span> 0.1<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token property\">padding</span><span class=\"token punctuation\">:</span> 10px<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token comment\">/* Colours for each box */</span>\n<span class=\"token selector\">.box1</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #1abc9c<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token selector\">.box2</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #3498db<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token selector\">.box3</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #9b59b6<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token selector\">.box4</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #34495e<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token selector\">.box5</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #f1c40f<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n<span class=\"token selector\">.box6</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">background</span><span class=\"token punctuation\">:</span> #e67e22<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span>\n\n<span class=\"token selector\">.container</span> <span class=\"token punctuation\">{</span>\n  <span class=\"token property\">display</span><span class=\"token punctuation\">:</span> flex<span class=\"token punctuation\">;</span>\n  <span class=\"token property\">border</span><span class=\"token punctuation\">:</span> 10px solid #000000<span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span></code></pre></div>\n<p>The above code produces following output:</p>\n<figure>\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 626px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 16.56441717791411%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAvElEQVQI12NQaMv/r7to7n+Lrn3/i7PW/O8Im/rf1CXlf3mx4//rm+T/H6lR/n+yK/z/zRvX/t+8eev/zZs3/t+8eRMFX7t+/f+zhw//T1m95j+D4cre/yEXz/7P2vv+/7yJt//v6D76v6pl6f8VS/P+/38U+v/nroz//47N+k8M2H72/H8G6ba8/4aL5/537Nv3vyhn7f+emBn/bb0z/1eVuf6/vkXt/5EG3f8n++IIuvDpw4f/p61d9x8ApLm6H+/5v48AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"justify content\" title=\"justify content\" src=\"/static/1dda52fd3e326f0c964e915ddf1f94cf/af590/justify-content.png\" srcset=\"/static/1dda52fd3e326f0c964e915ddf1f94cf/222b7/justify-content.png 163w,\n/static/1dda52fd3e326f0c964e915ddf1f94cf/ff46a/justify-content.png 325w,\n/static/1dda52fd3e326f0c964e915ddf1f94cf/af590/justify-content.png 626w\" sizes=\"(max-width: 626px) 100vw, 626px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n  <figcaption>Output for starter code</figcaption>\n</figure>\n<p><code class=\"language-text\">justify-content</code> defines the alignment of flex-items along the main-axis in a flex-container. It also helps distribute extra free space left over when either all the flex items on a line are inflexible, or are flexible but have reached their maximum size.</p>\n<p>The default value for <code class=\"language-text\">justify-content</code> is <code class=\"language-text\">flex-start</code> which aligns the flex-items towards the start of the main axis. If we change the value of <code class=\"language-text\">justify-content</code> to <code class=\"language-text\">flex-end</code> then it will align flex-items towards the end of the main axis as seen below:</p>\n<figure>\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 626px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 16.56441717791411%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAAy0lEQVQI14WOP0sCcQBA75O4tZyETSI0eINDuDbcEg5CJQ4JDTmJN8gdkZI4FKHgenhxHK6CCk0NyfmH393vDO78Cu7xoqbAoQdvfTzFdV3iOEYIQRAEB25DycdmTc7poj730R6m1CsjjPNHTgoXmI08y9cUi4aKeXWKIqXkP74APZpw9vZOfb5n2N0ytubcGE9MxrewK8Gsht2+RPE8jyRJfm9+4n8NpeQzivCF4Nhuk34ZUOjMuLt2aOk9ssUy902NlXuEb2SwqhrfWqe5kPBy5Q8AAAAASUVORK5CYII=&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"justify content flex end\" title=\"justify content flex end\" src=\"/static/21324211782d2ea4dd0704d74972f51f/af590/justify-content-flex-end.png\" srcset=\"/static/21324211782d2ea4dd0704d74972f51f/222b7/justify-content-flex-end.png 163w,\n/static/21324211782d2ea4dd0704d74972f51f/ff46a/justify-content-flex-end.png 325w,\n/static/21324211782d2ea4dd0704d74972f51f/af590/justify-content-flex-end.png 626w\" sizes=\"(max-width: 626px) 100vw, 626px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n  <figcaption>justify-content: flex-end</figcaption>\n</figure>\n<p>Changing <code class=\"language-text\">flex-items</code> to <code class=\"language-text\">center</code> will align all the flex-items to the center of the main axis (see, how easy it is to center in Flexbox) as seen below:</p>\n<figure>\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 626px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 17.177914110429448%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA4UlEQVQI113Lv0rDQADA4byKlKJrJ3HwD5QOfQBBBAdBrOKkWFAR0cUhqCA2obh01sZ4m1BQIRGqS3XoXe5i9VLUB3B0KD/BSfrtnxOGIdZapJSkWtPpdimGHvm6z4x7R3WtyeHsGYXiIntbk8jrEeLtHI/uHLr3TpIopFJ8ZpbaZYBjjOG/AbBiI6bimM3bbxpej9ZRm/X9BuKiAh9L/LQqDKIaw246zzhCCLIsQyUJryblRSkmglPy5z6l43s2Vpu48z7j5WUOdqaRYpSH3TGeThZI3yxG67/71e/jBVf8Auunua1IpRzIAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"justify content center\" title=\"justify content center\" src=\"/static/455a14af4c94ccfc96ad2e9fbde0808b/af590/justify-content-center.png\" srcset=\"/static/455a14af4c94ccfc96ad2e9fbde0808b/222b7/justify-content-center.png 163w,\n/static/455a14af4c94ccfc96ad2e9fbde0808b/ff46a/justify-content-center.png 325w,\n/static/455a14af4c94ccfc96ad2e9fbde0808b/af590/justify-content-center.png 626w\" sizes=\"(max-width: 626px) 100vw, 626px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n  <figcaption>justify-content: center</figcaption>\n</figure>\n<p>To distribute the extra space among all the flex-items we can set <code class=\"language-text\">justify-content</code> to <code class=\"language-text\">space-between</code>. The first item is on the start of the main axis while the last item is on the end of the main axis as seen below:</p>\n<figure>\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 626px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 16.56441717791411%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA7UlEQVQI1yWOvUsCYQCH749wcGx1C5scmnKo3ZZoijAI3JwiCLw6PEgQDJoaoksEQ6iggwP7xI8GOe6ke+FVB++0IRECCXJ6Iu+Zfg+/5VGiuQwp02A86FF7c1hWLcqPNsGwz+XRLcUdA+lJXpst4mubnBTOCEYTnOcDOtUlhGvhiR5dLYm2u4ISM07JfXn8M/iBPXPKx/dCcao+7Qu52LPfOdnjEuZTMzxnFfDTwGforQIVfRslomZIPYSFdw2XhGZxVbcZDfsY6j2l9DVSSBrtdxIbW+jFc/xggvtySOcmhnDreELSza+T31/lDyvRukMUvF8jAAAAAElFTkSuQmCC&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"justify content space between\" title=\"justify content space between\" src=\"/static/a288f3ff4003137bea0ad92d9445cd8d/af590/justify-content-space-between.png\" srcset=\"/static/a288f3ff4003137bea0ad92d9445cd8d/222b7/justify-content-space-between.png 163w,\n/static/a288f3ff4003137bea0ad92d9445cd8d/ff46a/justify-content-space-between.png 325w,\n/static/a288f3ff4003137bea0ad92d9445cd8d/af590/justify-content-space-between.png 626w\" sizes=\"(max-width: 626px) 100vw, 626px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n  <figcaption>justify-content: space-between</figcaption>\n</figure>\n<p>We can see that first and last flex-items don't have the margin on the left and right side respectively. We can fix this by changing <code class=\"language-text\">justify-content</code> to <code class=\"language-text\">space-around</code>.</p>\n<figure>\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 627px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 16.56441717791411%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA7klEQVQI1x3JPUsCAQCA4ftB4tLi1OLYknIEDkIUzS39gwgRo+gg8zgK8QtTqeH6UkupLLVL/OowjbsTFOEaXKIteqN7pwdeQc5m8JxFWVdT2JZBUL7HL1UZGCNU+ZYdv0K/qXN+dY17cZlY/JSJ2eUl76JzE2Bo2jxHVuiFl4imkwil9iui8cD+TOe/iPZNqP7lePo0pxzuOrZmNlvbErXWEPiFySbMD5z3U4+Bdkixdoeg5LK48hJrF2k+xyYbJ4/4pArv5geXSoWQeMybpqMWyyx4RZREgem4h1Zw0ymtMrJsGnsB+rs+jjIp/gDWcLmc7CNmSgAAAABJRU5ErkJggg==&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"justify content space around\" title=\"justify content space around\" src=\"/static/5b0f91ab575fffaff47367d9fd84e794/e9c9b/justify-content-space-around.png\" srcset=\"/static/5b0f91ab575fffaff47367d9fd84e794/222b7/justify-content-space-around.png 163w,\n/static/5b0f91ab575fffaff47367d9fd84e794/ff46a/justify-content-space-around.png 325w,\n/static/5b0f91ab575fffaff47367d9fd84e794/e9c9b/justify-content-space-around.png 627w\" sizes=\"(max-width: 627px) 100vw, 627px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n  <figcaption>justify-content: space-around</figcaption>\n</figure>\n<p>Still, the first and last flex items have only one unit margin on their respective left and right side while other flex-items have 2 units margin. To fix this we can set <code class=\"language-text\">justify-content</code> to <code class=\"language-text\">space-evenly</code>. Now, the spacing between any two items (and the space to the edges) is equal as seen below:</p>\n<figure>\n  <span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 627px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 16.56441717791411%; position: relative; bottom: 0; left: 0; background-image: url(&apos;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAADCAYAAACTWi8uAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAA70lEQVQI1wXBP0sCYQDA4fsEbdHi2toQBM1O0RKE0BeopaUP0BSG0RcQKSyic7Dr6v545IV1nlmUgt69Xr1JcTfUpFAERgjCr+dRbMOk0PZJHee4Ch9Ra4K5HZfrQNLQmmRXDgn8Hiflc+bTq2jmDYk4paVOIUON6NaivpkiudMpXFZQ4v4b7uSbdMfmkzHRF6w7QwbAz/MIdy+AP+i+vrO9n0cmQyBi0l8GYvgdMCpvwPiDmpAojlUh364zc7SLGz5x5vVYyFapdl64v3gglynSbQhKusHi0hq67RELlVZpGilMIs/C35olbhocmA7/oAq7PHMQ1PgAAAAASUVORK5CYII=&apos;); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"justify content space evenly\" title=\"justify content space evenly\" src=\"/static/a79f5ec3eb5552e10206ad663336797c/e9c9b/justify-content-space-evenly.png\" srcset=\"/static/a79f5ec3eb5552e10206ad663336797c/222b7/justify-content-space-evenly.png 163w,\n/static/a79f5ec3eb5552e10206ad663336797c/ff46a/justify-content-space-evenly.png 325w,\n/static/a79f5ec3eb5552e10206ad663336797c/e9c9b/justify-content-space-evenly.png 627w\" sizes=\"(max-width: 627px) 100vw, 627px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\">\n    </span>\n  <figcaption>justify-content: space-evenly</figcaption>\n</figure>\n<p>This is all about <code class=\"language-text\">justify-content</code> in Flexbox. I am learning Flexbox from Wes Bos's course <a href=\"https://flexbox.io\" target=\"_blank\" >What The Flex Box </a>. It is a great free course.</p>","timeToRead":2,"frontmatter":{"title":"What is justify-content in Flexbox","date":"2017-10-25T00:00:00.000Z","tags":["CSS"]}}},"pageContext":{"slug":"justify-content"}},"staticQueryHashes":["3649515864","63159454"]}