<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: TheDevSpace</title>
    <description>The latest articles on Forem by TheDevSpace (@thedevspace).</description>
    <link>https://forem.com/thedevspace</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F410394%2F97f0e039-3796-40d6-80c6-6363e60f9d2c.png</url>
      <title>Forem: TheDevSpace</title>
      <link>https://forem.com/thedevspace</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thedevspace"/>
    <language>en</language>
    <item>
      <title>Comparing Visibility, Opacity, and Display: hidden in CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Thu, 24 Apr 2025 14:37:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/comparing-visibility-opacity-and-display-hidden-in-css-2mgl</link>
      <guid>https://forem.com/thedevspace/comparing-visibility-opacity-and-display-hidden-in-css-2mgl</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Visibility
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;visibility&lt;/code&gt; property controls whether to show or hide an element. When set to &lt;code&gt;visible&lt;/code&gt;, the element will be displayed normally.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/bGZXPap?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.visible&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;visibility&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;visible&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.hidden&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;visibility&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;hidden&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.collapse&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;visibility&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;collapse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When set to &lt;code&gt;hidden&lt;/code&gt;, the element will become invisible, but the space it occupies will still be preserved.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"visible"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Visible&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Hidden&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"visible"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Visible&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As for &lt;code&gt;collapse&lt;/code&gt;, different elements are treated differently. For &lt;a href="https://www.thedevspace.io/course/htmlcss-tables" rel="noopener noreferrer"&gt;table elements&lt;/a&gt; such as table rows (&lt;code&gt;&amp;lt;tr&amp;gt;&lt;/code&gt;) or columns, the element will become invisible, and the space it occupies will be collapsed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;table&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;th&amp;gt;&lt;/span&gt;Column 1&lt;span class="nt"&gt;&amp;lt;/th&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;th&amp;gt;&lt;/span&gt;Column 2&lt;span class="nt"&gt;&amp;lt;/th&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;th&amp;gt;&lt;/span&gt;Column 3&lt;span class="nt"&gt;&amp;lt;/th&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 1&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 2&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 3&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tr&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"collapse"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 4&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 5&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 6&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 7&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 8&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;td&amp;gt;&lt;/span&gt;Data 9&lt;span class="nt"&gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But for other elements, it behaves the same as &lt;code&gt;hidden&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Opacity
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;opacity&lt;/code&gt; property accepts a numeric value from &lt;code&gt;0&lt;/code&gt; to &lt;code&gt;1&lt;/code&gt;, allowing you to control the opacity of an element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-image&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sx"&gt;url(. . .)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;cover&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;opacity&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0.5&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/VwNZvRo?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Visibility vs. opacity vs. display: hidden
&lt;/h2&gt;

&lt;p&gt;There are three different properties in CSS that can control the visibility of an element, &lt;code&gt;visibility&lt;/code&gt;, &lt;code&gt;opacity&lt;/code&gt;, and &lt;code&gt;display&lt;/code&gt;. Let's discuss their differences before we wrap up this lesson.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;visibility&lt;/code&gt; accepts three values, &lt;code&gt;visible&lt;/code&gt;, &lt;code&gt;hidden&lt;/code&gt;, and &lt;code&gt;collapse&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When set to &lt;code&gt;visible&lt;/code&gt;, the element will be displayed normally.&lt;/li&gt;
&lt;li&gt;When set to &lt;code&gt;hidden&lt;/code&gt;, the element will be hidden, but the space it occupies will be preserved.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As for &lt;code&gt;collapse&lt;/code&gt;, when a table row or column is set to &lt;code&gt;collapse&lt;/code&gt;, that row or column will be hidden, and the space it occupies will also be removed. When other elements are set to &lt;code&gt;collapse&lt;/code&gt;, it behaves just like hidden.&lt;/p&gt;

&lt;p&gt;When &lt;code&gt;opacity&lt;/code&gt; is set to &lt;code&gt;0&lt;/code&gt;, the element will be hidden, but the space it occupies will be preserved. This is just like setting &lt;code&gt;visibility&lt;/code&gt; to &lt;code&gt;hidden&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When &lt;code&gt;opacity&lt;/code&gt; is set to &lt;code&gt;1&lt;/code&gt;, the element will be displayed normally, just like setting &lt;code&gt;visibility&lt;/code&gt; to &lt;code&gt;visible&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When setting &lt;a href="https://www.thedevspace.io/course/htmlcss-display-types" rel="noopener noreferrer"&gt;the &lt;code&gt;display&lt;/code&gt; property&lt;/a&gt; to &lt;code&gt;hidden&lt;/code&gt;, it will remove the element from the DOM tree, meaning the element will be hidden, and the space it occupies will also be removed. This is kind of like setting &lt;code&gt;visibility&lt;/code&gt; to &lt;code&gt;collapse&lt;/code&gt;, but it works for all elements, not just table rows and columns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read More&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;How to Create a Grid Layout Using CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;Creating a Flexbox Layout Using CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-justify-and-align" rel="noopener noreferrer"&gt;Understanding CSS Alignment Properties Justify and Align&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow us for daily coding tips:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Stacking Elements with Z-index in CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Wed, 23 Apr 2025 14:09:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/stacking-elements-with-z-index-in-css-2b73</link>
      <guid>https://forem.com/thedevspace/stacking-elements-with-z-index-in-css-2b73</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;z-index&lt;/code&gt; is used to control the order of elements when they are stacked on top of each other. The property accepts integer values, the higher the integer, the higher the order. For example,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Try to change the z-index of this box&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Georgia&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;"Times New Roman"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Times&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;x-large&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;orange&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;bisque&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;skyblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;lightblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item4&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;150px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item5&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/RwdXLeq?default-tab=html%2Cresult&amp;amp;editable=true" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, the box &lt;code&gt;.item4&lt;/code&gt; should be on top of &lt;code&gt;.item3&lt;/code&gt;, but we configured their &lt;code&gt;z-index&lt;/code&gt; values, and because &lt;code&gt;.item3&lt;/code&gt; has a higher order, it will be on top of all other elements.&lt;/p&gt;

&lt;p&gt;You can also change the &lt;code&gt;z-index&lt;/code&gt; of the blue box (&lt;code&gt;.item&lt;/code&gt;) to see what happens.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read More&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;How to Create a Grid Layout Using CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;Creating a Flexbox Layout Using CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-justify-and-align" rel="noopener noreferrer"&gt;Understanding CSS Alignment Properties Justify and Align&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow us for daily coding tips:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Understanding Justify and Align in CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Tue, 22 Apr 2025 13:07:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/understanding-justify-and-align-in-css-2em1</link>
      <guid>https://forem.com/thedevspace/understanding-justify-and-align-in-css-2em1</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;After defining the layout, the next step is to deal with the alignment of items. There are nine different alignment properties, as shown in the list below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;align-content&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;align-items&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;align-self&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;justify-content&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;justify-items&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;justify-self&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;place-content&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;place-items&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;place-self&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is one of the most complex topics in HTML and CSS, as they do different things for different layout systems.&lt;/p&gt;

&lt;p&gt;We'll start by discussing how they work inside a grid layout.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grid layout
&lt;/h2&gt;

&lt;p&gt;When it comes to aligning items in a grid, we have to talk about both row and column alignments. As an example, this is a grid with six items, and the grid container is &lt;code&gt;300px&lt;/code&gt; high:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Row alignment
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/GRLRwpX?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;align-content&lt;/code&gt; property is used to specify how the rows are positioned in a multi-row grid or flex container. For a grid layout, the common values include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;start&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fichkl43hfilmym6ojlqf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fichkl43hfilmym6ojlqf.png" alt="align content start" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;end&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuswg4qelg5hzjqi44xbm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuswg4qelg5hzjqi44xbm.png" alt="align content end" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;center&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoe3lofj7vbknlieuugd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjoe3lofj7vbknlieuugd.png" alt="align content center" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;space-between&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-between&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwibhde3crq0hdrtppweg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwibhde3crq0hdrtppweg.png" alt="align content space between" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;space-around&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-around&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7x3qdz68g08fk8lygbu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw7x3qdz68g08fk8lygbu.png" alt="align content space around" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;space-evenly&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-evenly&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejl70nbzyle5awumua16.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fejl70nbzyle5awumua16.png" alt="align content space evenly" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;stretch&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;stretch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7rqc4x05j3708mns0qmy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7rqc4x05j3708mns0qmy.png" alt="align content stretch" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/KKYKrVK?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;align-items&lt;/code&gt;, on the other hand, is used to define how the items are positioned within their respective grid cell. Common values include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;start&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqo1z26l3yga5u2x22a0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdqo1z26l3yga5u2x22a0.png" alt="align items start" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;end&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ij1lpziiu71sw2wf4am.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5ij1lpziiu71sw2wf4am.png" alt="align items end" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;center&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyxirk5v0g0c77b4ntst.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftyxirk5v0g0c77b4ntst.png" alt="align items center" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;stretch&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;stretch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hm50ay1ckaw9fj5g81b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hm50ay1ckaw9fj5g81b.png" alt="align items stretch" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;baseline&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;baseline&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0sazavtkwa6t88juz7wr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0sazavtkwa6t88juz7wr.png" alt="align items baseline" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/OJGJaMr?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lastly, the &lt;code&gt;align-self&lt;/code&gt; property works just like &lt;code&gt;align-items&lt;/code&gt;, except it is used on individual grid cells. If the container has the &lt;code&gt;align-items&lt;/code&gt; set, it will be overwritten by &lt;code&gt;align-self&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;#Item&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;align-self&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcd2v1dkuyjxvbf525f7t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcd2v1dkuyjxvbf525f7t.png" alt="align self" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Column alignment
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/PogoxWV?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The column alignment, controlled by the &lt;code&gt;justify&lt;/code&gt; properties, works in a similar way. First, the &lt;code&gt;justify-content&lt;/code&gt; property defines how grid items are distributed horizontally along the main axis. Some common values are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;start&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6x2v5o4lyql5fmo1nx7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6x2v5o4lyql5fmo1nx7.png" alt="justify content start" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;end&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6330m9f6lk9lgcho3n4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6330m9f6lk9lgcho3n4w.png" alt="justify content end" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;center&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrsxu1i5d0cykwec4d0k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjrsxu1i5d0cykwec4d0k.png" alt="justify content center" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;space-between&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-between&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvhygdgy0combdiw1bwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvhygdgy0combdiw1bwz.png" alt="justify content between" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;space-around&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-around&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm5bve78gsrnvqitsq2d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsm5bve78gsrnvqitsq2d.png" alt="justify content around" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;space-evenly&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;space-evenly&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4prmhhi3ehdmwgzuu89.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc4prmhhi3ehdmwgzuu89.png" alt="justify content evenly" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/xxexQqL?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;justify-items&lt;/code&gt; controls how grid items are aligned horizontally within their cells. Some common values are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;start&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;justify-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzymyyqcvkekpgdgqx1h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzymyyqcvkekpgdgqx1h.png" alt="justify items start" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;end&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;justify-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcevv2x6iixyb9cqqy50j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcevv2x6iixyb9cqqy50j.png" alt="justify items end" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;center&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;justify-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0f25uzyoxdql37h135w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl0f25uzyoxdql37h135w.png" alt="justify items center" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;stretch&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;justify-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;stretch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna8yeb0lb4ozwlin8x3p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna8yeb0lb4ozwlin8x3p.png" alt="justify items stretch" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/abxbPzK?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similarly, the &lt;code&gt;justify-self&lt;/code&gt; property is used on individual grid items to overwrite the default alignment rule set by &lt;code&gt;justify-items&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;justify-items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;start&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item-sm&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;justify-self&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;end&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp5vikkxayn8oxmjkfgx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp5vikkxayn8oxmjkfgx.png" alt="justify self" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Alignment in both directions
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="py"&gt;place-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is the same as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/oNONJzV?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/QWPWzGp?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/LYvYMbq?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Flex layout
&lt;/h2&gt;

&lt;p&gt;The exact same alignment properties can be used for flexbox layouts. However, instead of row and column alignments, the &lt;code&gt;justify&lt;/code&gt; properties deal with the alignment in the flexbox's main axis, which depends on the &lt;code&gt;flex-direction&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;If &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;row&lt;/code&gt;, the main axis is horizontal:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav9xx8k6tnon3y08u6ri.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fav9xx8k6tnon3y08u6ri.png" alt="main axis row" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you change the &lt;code&gt;flex-direction&lt;/code&gt; property, the main axis also changes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3i7nxo7ud00m6b5jt8f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi3i7nxo7ud00m6b5jt8f.png" alt="main axis column" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/qBwBLxw?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Parallel to the main axis
&lt;/h3&gt;

&lt;p&gt;The &lt;code&gt;justify&lt;/code&gt; properties deal with alignments in the direction &lt;strong&gt;parallel&lt;/strong&gt; to the flex main axis. For example, when the &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;row&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;/* align-content: center; */&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fix75l5kwpwg8l6mzp480.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fix75l5kwpwg8l6mzp480.png" alt="flex justify center row" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And when the &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;column&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c"&gt;/* align-content: center; */&lt;/span&gt;
  &lt;span class="nl"&gt;justify-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77xsmutw1ti0f25bhdg4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77xsmutw1ti0f25bhdg4.png" alt="flex justify center column" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Note that the &lt;code&gt;justify-items&lt;/code&gt; and &lt;code&gt;justify-self&lt;/code&gt; properties are ignored in a flex layout.&lt;/p&gt;

&lt;p&gt;Also, instead of &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt;, there are &lt;code&gt;flex-start&lt;/code&gt; and &lt;code&gt;flex-end&lt;/code&gt;, designed specifically for a flex layout. In most cases, the keywords &lt;code&gt;start&lt;/code&gt; and &lt;code&gt;end&lt;/code&gt; would also work for a flex layout, but you might need to use the &lt;code&gt;flex-*&lt;/code&gt; keywords for the best browser compatibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Perpendicular to the main axis
&lt;/h3&gt;

&lt;p&gt;On the other hand, the &lt;code&gt;align&lt;/code&gt; properties deal with the alignment in the direction &lt;strong&gt;perpendicular&lt;/strong&gt; to the main axis. When the &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;row&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiajtnz1cx8l1q90f0jrq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fiajtnz1cx8l1q90f0jrq.png" alt="flex align center row" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And when the &lt;code&gt;flex-direction&lt;/code&gt; is set to &lt;code&gt;column&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;400px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;align-content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijldkai6lpuqvn9bs19i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fijldkai6lpuqvn9bs19i.png" alt="flex align center column" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unlike the &lt;code&gt;justify&lt;/code&gt; properties, the &lt;code&gt;align-items&lt;/code&gt; and &lt;code&gt;align-self&lt;/code&gt; properties work in a flex layout.&lt;/p&gt;

&lt;p&gt;Similarly, the &lt;code&gt;place&lt;/code&gt; properties are a set of shorthand properties that allow you to define justification and alignment at the same time.&lt;/p&gt;

&lt;p&gt;You may experiment with the above CodePen demo.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Read More&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/javascript-web-app" rel="noopener noreferrer"&gt;How to Build a Web App with JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/javascript-http" rel="noopener noreferrer"&gt;Learn about Network and HTTP in JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-box-shadow" rel="noopener noreferrer"&gt;How to Add Box Shadow Using CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow us for daily coding tips:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🎯 Mastering &lt;code&gt;z-index&lt;/code&gt;: Control Element Stacking in CSS&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;z-index&lt;/code&gt; is used to control the order of elements when they are stacked on top of each other. The property accepts integer values, the higher the integer, the higher the order. For example,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item3"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item4"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item5"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;z-index: 1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Try to change the z-index of this box&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Georgia&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;"Times New Roman"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Times&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;x-large&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;orange&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;bisque&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;skyblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;lightblue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item1&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item2&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item3&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item4&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;150px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item5&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;z-index&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/RwdXLeq?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default, the box &lt;code&gt;.item4&lt;/code&gt; should be on top of &lt;code&gt;.item3&lt;/code&gt;, but we configured their &lt;code&gt;z-index&lt;/code&gt; values, and because &lt;code&gt;.item3&lt;/code&gt; has a higher order, it will be on top of all other elements.&lt;/p&gt;

&lt;p&gt;You can also change the &lt;code&gt;z-index&lt;/code&gt; of the blue box (&lt;code&gt;.item&lt;/code&gt;) to see what happens.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>CSS Flexbox: Layouts Made Easy</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Mon, 21 Apr 2025 14:05:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/css-flexbox-layouts-made-easy-5dg3</link>
      <guid>https://forem.com/thedevspace/css-flexbox-layouts-made-easy-5dg3</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The flexbox is another layout model in CSS that provides an efficient way to design and structure complex layouts, but with a more flexible approach. It is particularly suited for creating one-dimensional layouts, either in a row or a column, as we will see later.&lt;/p&gt;

&lt;p&gt;Just like a &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;grid layout&lt;/a&gt;, a flexbox layout also consists of a flex container and several flex items. The container should have its &lt;code&gt;display&lt;/code&gt; property set to &lt;code&gt;flex&lt;/code&gt;, and all of its direct children automatically become flex items.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;flex&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Flex direction
&lt;/h2&gt;

&lt;p&gt;With a flex layout, instead of rows and columns, you must define a &lt;code&gt;flex-direction&lt;/code&gt; and a &lt;code&gt;flex-wrap&lt;/code&gt;. The &lt;code&gt;flex-direction&lt;/code&gt; specifies in which direction the container should stack its flex items. The accepted values are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;column&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjm5xghhji7cxvuhqy4je.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjm5xghhji7cxvuhqy4je.png" alt="flex direction column" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;column-reverse&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column-reverse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs80hc1plhdhgte4ljmct.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs80hc1plhdhgte4ljmct.png" alt="flex direction column reverse" width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;row&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmijjovz8drfv4rzc917d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmijjovz8drfv4rzc917d.png" alt="flex direction row" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;row-reverse&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-direction&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;row-reverse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgx8bhe8vsb3syhr6m5m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzgx8bhe8vsb3syhr6m5m.png" alt="flex direction row reverse" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Flex wrap
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;flex-wrap&lt;/code&gt; property determines whether the flex items should wrap, which means automatically change to the following line when there is insufficient space.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;wrap&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7er69rva946o3ymgj97.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh7er69rva946o3ymgj97.png" alt="flex wrap" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;nowrap&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;nowrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqu8wtwruxjct1a7sedtr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqu8wtwruxjct1a7sedtr.png" alt="flex nowrap" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;wrap-reverse&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-wrap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;wrap-reverse&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdwuol4e1cc9uzh9gq6v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdwuol4e1cc9uzh9gq6v.png" alt="flex wrap reverse" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;flex-flow&lt;/code&gt; is a shorthand for both &lt;code&gt;flex-direction&lt;/code&gt; and &lt;code&gt;flex-wrap&lt;/code&gt; properties.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;flex-flow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt; &lt;span class="n"&gt;wrap&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9nx5cnt2335ut93l4lw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff9nx5cnt2335ut93l4lw.png" alt="flex flow" width="800" height="398"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read More&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-selectors" rel="noopener noreferrer"&gt;What is a CSS Selector&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/javascript-rest-parameter-spread-syntax" rel="noopener noreferrer"&gt;Rest Parameter and Spread Syntax in JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/javascript-expressjs" rel="noopener noreferrer"&gt;A Beginner's Guide to Express.js&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow us for daily coding tips:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;




</description>
    </item>
    <item>
      <title>Mastering CSS Grid Layout: Columns, Rows, Gaps, and More</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Wed, 09 Apr 2025 14:35:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/mastering-css-grid-layout-columns-rows-gaps-and-more-1b24</link>
      <guid>https://forem.com/thedevspace/mastering-css-grid-layout-columns-rows-gaps-and-more-1b24</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;For more complex layouts, you can opt to use a grid system.&lt;/p&gt;

&lt;p&gt;A grid layout consists of a grid container and several grid items. The grid container must have its &lt;a href="https://www.thedevspace.io/course/htmlcss-display-types" rel="noopener noreferrer"&gt;&lt;code&gt;display&lt;/code&gt; property&lt;/a&gt; set to &lt;code&gt;grid&lt;/code&gt; or &lt;code&gt;inline-grid&lt;/code&gt;. &lt;code&gt;grid&lt;/code&gt; creates a block-level container, and &lt;code&gt;inline-grid&lt;/code&gt; creates an inline-level container.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;All direct children of this container will automatically become grid items.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grid columns
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/rNRXjZr?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hint: You can edit this CodePen demo directly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You can then specify how many columns you wish to create using the &lt;code&gt;grid-template-columns&lt;/code&gt; property. The property accepts any number of values. The number of values determines the number of columns, and the value itself determines the size of that column. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.item&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;Georgia&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;"Times New Roman"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;Times&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;serif&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;x-large&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;orange&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;bisque&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhz42pq6dckiqay4gzr3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhz42pq6dckiqay4gzr3.png" alt="grid with two columns" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, we created two columns, the first one is &lt;code&gt;100px&lt;/code&gt; wide, and the second one is &lt;code&gt;200px&lt;/code&gt; wide. If you want more columns, simply add more values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feltmcz2vucgz5wj0tyfl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feltmcz2vucgz5wj0tyfl.png" alt="grid with three columns" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want all columns to be equal in size, set the value to &lt;code&gt;auto&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohtq1uj70vaz4ndddiss.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohtq1uj70vaz4ndddiss.png" alt="grid with auto columns" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This will allow the browser to choose an appropriate column size to fill the parent container.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grid rows
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/gOEVgqM?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The grid rows, on the other hand, are created automatically. You can define row sizes using the &lt;code&gt;grid-template-rows&lt;/code&gt; property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;150px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa35ggjgrn5emd90hrzec.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa35ggjgrn5emd90hrzec.png" alt="grid with different row heights" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, this property does not determine the number of rows in the grid. It only controls the row height. If you specify extra values, they will be ignored.&lt;/p&gt;

&lt;p&gt;This is because, by default, the grid items will flow horizontally, meaning they will fill the first row, and if there is insufficient space, the remaining items will be moved to the second row, and so on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grid flow
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/rNRXjPZ?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This default behavior is a bit problematic because sometimes, you only know how many rows you want, and you need the browser to create the columns automatically. In this case, you can change the flow direction of the grid items by setting &lt;code&gt;grid-auto-flow&lt;/code&gt; to &lt;code&gt;column&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Next, you can configure the gird rows, and this time, you can define the number of rows, as well as their sizes. The columns, on the other hand, will be created automatically.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-auto-flow&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;column&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="py"&gt;grid-template-rows&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt; &lt;span class="m"&gt;300px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The grid template shorthand
&lt;/h2&gt;

&lt;p&gt;Lastly, &lt;code&gt;grid-template&lt;/code&gt; is a shorthand property for &lt;code&gt;grid-template-columns&lt;/code&gt; and &lt;code&gt;grid-template-rows&lt;/code&gt; with the following syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grid-template: &amp;lt;row&amp;gt; &amp;lt;row&amp;gt; ... / &amp;lt;col&amp;gt; &amp;lt;col&amp;gt; ...;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;grid-template&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt; &lt;span class="m"&gt;150px&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzh27w2t58kyzdl5zhp9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftzh27w2t58kyzdl5zhp9.png" alt="grid template" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Grid gaps
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/mdoNWer?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When designing a webpage, it is good to leave some space between elements so that they are not too close to each other. By using the grid layout, you can easily add equal spacing between the grid items instead of micromanaging their individual margin. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;row-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;column-gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkkcmhvlypdnixh92vhv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkkkcmhvlypdnixh92vhv.png" alt="gaps" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, you may use the shorthand property, &lt;code&gt;gap&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you want equal spacing for columns and rows, give a single value:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-template-columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt; &lt;span class="nb"&gt;auto&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoghahflfkhc8tj23lai.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faoghahflfkhc8tj23lai.png" alt="gaps with equal spacing" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spanning over multiple columns
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/JjzgWNo?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also customize individual grid items using CSS. In a real-life scenario, it is common for one grid item to take up multiple columns or rows. For example, you can define an item to span multiple columns by specifying a start point (&lt;code&gt;grid-column-start&lt;/code&gt;) and an end point (&lt;code&gt;grid-column-end&lt;/code&gt;).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"container"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item-2col"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;2&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;3&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;4&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;5&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;6&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;7&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"item"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;8&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.item-2col&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;grid-column-start&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-column-end&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g1jpu0m3xiomt4c33fm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5g1jpu0m3xiomt4c33fm.png" alt="grid item two columns" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Keep in mind that the numbers refer to the column line, not the column itself, as shown in the chart below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febvxs5ye0zka0w2qozty.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Febvxs5ye0zka0w2qozty.png" alt="column lines and row lines" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a result, for an item to span over two columns, it should start from &lt;code&gt;1&lt;/code&gt; and end with &lt;code&gt;3&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can also use the shorthand property &lt;code&gt;grid-column&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.item-2col&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;grid-column&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or use &lt;code&gt;span&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.item-2col&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;grid-column&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;span&lt;/span&gt; &lt;span class="m"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.item-3col&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;grid-column&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;span&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/BabXWVr?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spanning over multiple rows
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.item-2row&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;grid-row-start&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="py"&gt;grid-row-end&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;/* or shorthand */&lt;/span&gt;
&lt;span class="nc"&gt;.item-2row&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;grid-row&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Figma9a1mzy50c474g24o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Figma9a1mzy50c474g24o.png" alt="grid row" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spanning over an area
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.item-area&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnlsqyds4ubme138t7fb2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnlsqyds4ubme138t7fb2.png" alt="grid area" width="800" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Nested grid systems
&lt;/h2&gt;

&lt;p&gt;You can even nest grids for complex layouts. This helps maintain structure and consistency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevspace.io%2Fmedia%2Fcourse%2Fhtmlcss%2Fnested-grid.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.thedevspace.io%2Fmedia%2Fcourse%2Fhtmlcss%2Fnested-grid.png" alt="column lines and row lines" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/qBverKZ?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read More&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/javascript-web-app" rel="noopener noreferrer"&gt;How to Build a Web App with JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/javascript-http" rel="noopener noreferrer"&gt;Learn about Network and HTTP in JavaScript&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-box-shadow" rel="noopener noreferrer"&gt;How to Add Box Shadow Using CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Follow us for more web development tutorials:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Creating a Multi-column Layout Using CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Tue, 08 Apr 2025 14:43:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/creating-a-multi-column-layout-using-css-3k2h</link>
      <guid>https://forem.com/thedevspace/creating-a-multi-column-layout-using-css-3k2h</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Creating layouts using CSS is one of the most fundamental skills for a web developer. A well-designed layout is the backbone of any successful website, as it improves user experience and usability.&lt;/p&gt;

&lt;p&gt;There are three most common methods for creating webpage layouts: columns, &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;grids&lt;/a&gt;, and &lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;flexbox&lt;/a&gt;. Let's begin by discussing how to create a multi-column layout.&lt;/p&gt;

&lt;p&gt;By default, the block-level elements will span over the entire viewport. But in practice, you don't want these elements, especially the text elements, to occupy too much horizontal space, as research shows that the optimal length of a single line is around 80 characters. People have limited attention span, and texts longer than that can be difficult for users to read.&lt;/p&gt;

&lt;p&gt;The obvious solution for this problem is to split the layout into columns, which can be easily achieved using the &lt;code&gt;column-*&lt;/code&gt; properties.&lt;/p&gt;

&lt;h2&gt;
  
  
  Column count and column width
&lt;/h2&gt;

&lt;p&gt;To begin with, you can specify the number of columns using the &lt;code&gt;column-count&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/ExMBgKx?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The browser will automatically choose the column width that will fit the entire layout inside the container.&lt;/p&gt;

&lt;p&gt;Alternatively, you can set the column width, and let the browser pick the column count.&lt;/p&gt;

&lt;p&gt;The browser will create as much columns as it possibly can, and then the remaining space will be shared by all columns. Which means you are unlikely to get the column width you specify, unless the viewport size is exactly divisible by the specified column width.&lt;/p&gt;

&lt;p&gt;You can verify this claim using the Developer Tools in your browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0wyw6t0zf89zyi5qo9h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0wyw6t0zf89zyi5qo9h.png" alt="column width" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It is not possible to customize the size for individual columns. If you want a more complex layout, you have to use &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;grid&lt;/a&gt; or &lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;flexbox&lt;/a&gt; instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  Column gap
&lt;/h2&gt;

&lt;p&gt;You can also customize the gap between columns using the &lt;code&gt;column-gap&lt;/code&gt; property. The default option is &lt;code&gt;normal&lt;/code&gt;, which corresponds to &lt;code&gt;1em&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;You can change that by setting a new length or percentage value. The percentage would be relative to the width of each column.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/xxBoROL?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Column rule
&lt;/h2&gt;

&lt;p&gt;Using the &lt;code&gt;column-rule&lt;/code&gt; property, you can also add a vertical rule between the columns, similar to how you may define a &lt;a href="https://www.thedevspace.io/course/htmlcss-the-box-model" rel="noopener noreferrer"&gt;border&lt;/a&gt;. You can define a width, a style (&lt;code&gt;solid&lt;/code&gt;, &lt;code&gt;dotted&lt;/code&gt;, and more), and a color.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;column-rule&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="err"&gt;4&lt;/span&gt;&lt;span class="nt"&gt;px&lt;/span&gt; &lt;span class="nt"&gt;dotted&lt;/span&gt; &lt;span class="nt"&gt;blue&lt;/span&gt;&lt;span class="o"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/rNREWmy?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Spanning over columns
&lt;/h2&gt;

&lt;p&gt;Sometimes, you might want an element to span over multiple columns. Take the &lt;code&gt;&amp;lt;h2&amp;gt;&lt;/code&gt; element in the previous demo as an example, it is a bit cramped inside one column. The layout might look better if the heading can be taken out of the multi-column layout and be allowed to span over multiple columns.&lt;/p&gt;

&lt;p&gt;This can be done with the &lt;code&gt;column-span&lt;/code&gt; property by setting it to &lt;code&gt;all&lt;/code&gt;, which allows the element to span over all columns.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/KKEjNqV?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unfortunately, there are only two options, &lt;code&gt;all&lt;/code&gt; and &lt;code&gt;none&lt;/code&gt;, which means you cannot tell the element to span over a certain number of columns. This is because the &lt;code&gt;column&lt;/code&gt; properties are designed to create simple multi-column layouts. There are not much customizations available.&lt;/p&gt;

&lt;p&gt;In the next two lessons, we will discuss &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;grids&lt;/a&gt; and &lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;flexbox&lt;/a&gt;, which are used to create much more complex layouts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Related Lessons
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;CSS Grid Layout Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;Mastering Flexbox&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-the-box-model" rel="noopener noreferrer"&gt;The Box Model in Depth&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Follow us for more web development tutorials:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>codenewbie</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to Position Elements Using CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Mon, 07 Apr 2025 14:08:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/how-to-position-elements-using-css-5503</link>
      <guid>https://forem.com/thedevspace/how-to-position-elements-using-css-5503</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;position&lt;/code&gt; property controls how you wish to position an element. There are five different position methods available, including &lt;code&gt;static&lt;/code&gt;, &lt;code&gt;relative&lt;/code&gt;, &lt;code&gt;fixed&lt;/code&gt;, &lt;code&gt;absolute&lt;/code&gt;, and &lt;code&gt;sticky&lt;/code&gt;. &lt;code&gt;static&lt;/code&gt; is the default positioning method, meaning the element is not positioned in any special way.&lt;/p&gt;

&lt;p&gt;Things get more interesting starting from the &lt;code&gt;relative&lt;/code&gt; position.&lt;/p&gt;

&lt;h2&gt;
  
  
  Relative position
&lt;/h2&gt;

&lt;p&gt;With the &lt;code&gt;position&lt;/code&gt; set to &lt;code&gt;relative&lt;/code&gt;, the element will be placed relative to its default position. It can be adjusted by setting the &lt;code&gt;left&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, &lt;code&gt;top&lt;/code&gt;, or &lt;code&gt;bottom&lt;/code&gt; properties.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"static"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Static&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"relative"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Relative&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.static&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;static&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.relative&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;relative&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/BabgOqP?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Fixed position
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;fixed&lt;/code&gt; position means that the element is positioned relative to the viewport. This method can be useful when you need to create a component, such as a navigation bar, that always stays at the top of the webpage, no matter the user's scrolling position. Or when you need a pop-up window that stays at the bottom right corner.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"fixed"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Fixed&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.fixed&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;fixed&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/wvOLENY?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Together, the &lt;code&gt;right&lt;/code&gt; and &lt;code&gt;bottom&lt;/code&gt; properties will anchor the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; element to the bottom right corner of the webpage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Absolute position
&lt;/h2&gt;

&lt;p&gt;If an element has the &lt;code&gt;absolute&lt;/code&gt; position, it will be placed according to its closest positioned ancestor, which should have a positioning method other than &lt;code&gt;static&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"relative"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Relative
  &lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"absolute"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Absolute&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.absolute&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;absolute&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/NWJZOqm?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, &lt;code&gt;.relative&lt;/code&gt; is a &lt;code&gt;500x500px&lt;/code&gt; box with relative position, and &lt;code&gt;.absolute&lt;/code&gt; is a smaller box placed inside &lt;code&gt;.relative&lt;/code&gt;. As you can see from the demonstration, the &lt;code&gt;.absolute&lt;/code&gt; box is positioned relative to the &lt;code&gt;.relative&lt;/code&gt; box instead of the viewport.&lt;/p&gt;

&lt;p&gt;If the &lt;code&gt;absolute&lt;/code&gt; element does not have a positioned ancestor, it will be positioned relative to the viewport, making it behave like a &lt;code&gt;fixed&lt;/code&gt; element.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sticky position
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;sticky&lt;/code&gt; option is similar to &lt;code&gt;fixed&lt;/code&gt;, except the element will be fixed only when a specific scroll threshold is reached.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Lorem ipsum. . .&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;. . .&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;div&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"sticky"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Sticky&lt;span class="nt"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;. . .&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.sticky&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;position&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;sticky&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;orange&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;background-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;bisque&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/QWoXZdL?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Read More
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-best-practices" rel="noopener noreferrer"&gt;Best Practices for Writing HTML and CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-forms" rel="noopener noreferrer"&gt;How to Create Forms in HTML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-blend-mode" rel="noopener noreferrer"&gt;What is CSS Blend Mode&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you found this guide helpful, follow us on social media for more tips, tutorials, and updates on web development:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's stay connected! 🚀&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>codenewbie</category>
      <category>programming</category>
    </item>
    <item>
      <title>Using the `float` Property in CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Thu, 03 Apr 2025 04:00:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/using-the-float-property-in-css-150o</link>
      <guid>https://forem.com/thedevspace/using-the-float-property-in-css-150o</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Originally, the &lt;code&gt;float&lt;/code&gt; property was used to take an HTML element (usually an image) out of the normal flow of the webpage and make it float on top of other elements. But then developers quickly realized you can use &lt;code&gt;float&lt;/code&gt; to design entire webpage layouts, so that multiple columns of information could sit next to each other.&lt;/p&gt;

&lt;p&gt;However, with the creation of modern layout techniques such as &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;grid&lt;/a&gt; and &lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;flexbox&lt;/a&gt;, &lt;code&gt;float&lt;/code&gt; gradually returned to its original purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Float
&lt;/h2&gt;

&lt;p&gt;Here is an example of using &lt;code&gt;float&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/LYaqKWb?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; element is taken out of the normal flow of the webpage, and it is now floating on top of the &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;p&gt;In this example, we are making the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; box float to the left side. Similarly, you can make it float to the right side like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;left&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c"&gt;/* . . . */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also float multiple boxes together like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/dyraxom?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Clearing float
&lt;/h2&gt;

&lt;p&gt;Notice that when the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; boxes are floating, all subsequent &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements will move up to fill their original space. If you want to change this default behavior, meaning you don't want the floated boxes to affect the layout of other elements, you can clear the side effects of &lt;code&gt;float&lt;/code&gt; using the &lt;code&gt;clear&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/wvOOGXe?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;clear&lt;/code&gt; property takes four values: &lt;code&gt;none&lt;/code&gt; (default), &lt;code&gt;left&lt;/code&gt;, &lt;code&gt;right&lt;/code&gt;, and &lt;code&gt;both&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When set to &lt;code&gt;left&lt;/code&gt;, the side effects of left floated boxes will be removed, as shown in the demonstration. As you can see, the two &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; boxes are still floating next to each other, but the &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; element is no longer affected.&lt;/p&gt;

&lt;p&gt;When set to &lt;code&gt;right&lt;/code&gt;, the side effects of right floated boxes will be removed, and when set to &lt;code&gt;both&lt;/code&gt;, the side effects of all floated boxes will be removed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Read More
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-z-index" rel="noopener noreferrer"&gt;What is the Z Index in CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-justify-and-align" rel="noopener noreferrer"&gt;Understanding CSS Alignment Properties Justify and Align&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-color" rel="noopener noreferrer"&gt;Modern CSS Colors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you found this guide helpful, follow us on social media for more tips, tutorials, and updates on web development:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's stay connected! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Using CSS Aspect Ratio for Consistent Image Sizing</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Wed, 02 Apr 2025 08:30:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/using-css-aspect-ratio-for-consistent-image-sizing-45a1</link>
      <guid>https://forem.com/thedevspace/using-css-aspect-ratio-for-consistent-image-sizing-45a1</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead of defining the size of an element using the &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; properties, CSS also allows you to define its aspect ratio. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;". . ."&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Image"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;200px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="py"&gt;aspect-ratio&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16&lt;/span&gt; &lt;span class="p"&gt;/&lt;/span&gt; &lt;span class="m"&gt;9&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this case, the image is set to be &lt;code&gt;200px&lt;/code&gt; wide, and instead of specifying the height, we defined the aspect ratio to be &lt;code&gt;16:9&lt;/code&gt;. The browser will automatically calculate the height based on the ratio.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/poYXvrB?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo 🔗&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Read More
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-text-spacing-alignment" rel="noopener noreferrer"&gt;How to Customize Text Alignment &amp;amp; Text Spacing in CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-forms" rel="noopener noreferrer"&gt;How to Create Forms in HTML&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/community/html-css-web-form" rel="noopener noreferrer"&gt;How to Build Interactive Forms Using HTML and CSS&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you found this guide helpful, follow us on social media for more tips, tutorials, and updates on web development:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's stay connected! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
    </item>
    <item>
      <title>Image Sizing and Object Fit in CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Mon, 31 Mar 2025 14:30:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/image-sizing-and-object-fit-in-css-290o</link>
      <guid>https://forem.com/thedevspace/image-sizing-and-object-fit-in-css-290o</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Previously, we talked about &lt;a href="https://www.thedevspace.io/course/htmlcss-media-files" rel="noopener noreferrer"&gt;how to embed images&lt;/a&gt; using the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element. Just like any other block-level element, you can define a size for the image using the &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; attributes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"images/image.png"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Image"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"500"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"500"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/KKELOZL?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo ↗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this case, we defined the &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element as a &lt;code&gt;500x500&lt;/code&gt; box, but the actual image has a different aspect ratio, so it gets squished to fit inside. This might not be ideal because, in most cases, you want the image to keep its original aspect ratio.&lt;/p&gt;

&lt;h2&gt;
  
  
  Object fit
&lt;/h2&gt;

&lt;p&gt;To solve this problem, you can use the &lt;code&gt;object-fit&lt;/code&gt; property to specify how you wish the image to be displayed inside the defined box. The default option is &lt;code&gt;fill&lt;/code&gt;, which means the images will be stretched or squished to fill the entire space, changing the image's aspect ratio.&lt;/p&gt;

&lt;p&gt;To avoid that, you can set &lt;code&gt;object-fit&lt;/code&gt; to &lt;code&gt;contain&lt;/code&gt;. The image will shrink to fit inside the box.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/XWGwvZm?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo ↗&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Alternatively, you can set &lt;code&gt;object-fit&lt;/code&gt; to &lt;code&gt;cover&lt;/code&gt;, which works the other way. It will zoom in on the image until it fills the entire box.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/qBvGexR?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo ↗&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Object position
&lt;/h2&gt;

&lt;p&gt;Notice that it doesn't matter if you set &lt;code&gt;object-fit&lt;/code&gt; to &lt;code&gt;fill&lt;/code&gt; or &lt;code&gt;cover&lt;/code&gt;. The browser will always zoom in on the center of that image. You can change how the image is positioned inside the box using the &lt;code&gt;object-position&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;The property accepts keyword values such as &lt;code&gt;top&lt;/code&gt;, &lt;code&gt;bottom&lt;/code&gt;, &lt;code&gt;left&lt;/code&gt;, and &lt;code&gt;right&lt;/code&gt;, or combinations of these values such as &lt;code&gt;top left&lt;/code&gt;, &lt;code&gt;bottom right&lt;/code&gt;, and so on.&lt;/p&gt;

&lt;p&gt;You can also micromanage the positioning of the image by specifying either percentage or length values.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;object-position&lt;/span&gt;&lt;span class="o"&gt;:&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;horizontal&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;vertical&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://codepen.io/ericnanhu/embed/preview/ZEPdYKg?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;Visit Code Demo ↗&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Read More
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-typography" rel="noopener noreferrer"&gt;Typography for Modern Web Design&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-the-box-model" rel="noopener noreferrer"&gt;What is the Box Model in CSS&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-responsive-design" rel="noopener noreferrer"&gt;What is Responsive Design&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you found this guide helpful, follow us on social media for more tips, tutorials, and updates on web development:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's stay connected! 🚀&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>css</category>
      <category>codenewbie</category>
    </item>
    <item>
      <title>Mastering CSS Float Property for Modern Layouts</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Fri, 28 Mar 2025 17:45:00 +0000</pubDate>
      <link>https://forem.com/thedevspace/mastering-css-float-property-for-modern-layouts-5bh7</link>
      <guid>https://forem.com/thedevspace/mastering-css-float-property-for-modern-layouts-5bh7</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/course/htmlcss-overflow" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Originally, the &lt;code&gt;float&lt;/code&gt; property was used to take an HTML element (usually an image) out of the normal flow of the webpage and make it float on top of other elements. But then developers quickly realized you can use &lt;code&gt;float&lt;/code&gt; to design entire webpage layouts, so that multiple columns of information could sit next to each other.&lt;/p&gt;

&lt;p&gt;However, with the creation of modern layout techniques such as &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;grid&lt;/a&gt; and &lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;flexbox&lt;/a&gt;, &lt;code&gt;float&lt;/code&gt; gradually returned to its original purpose.&lt;/p&gt;

&lt;h2&gt;
  
  
  Float
&lt;/h2&gt;

&lt;p&gt;Here is an example of using &lt;code&gt;float&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;➡️ &lt;a href="https://codepen.io/ericnanhu/embed/preview/LYaqKWb?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;View Code Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; element is taken out of the normal flow of the webpage, and it is now floating on top of the &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;p&gt;In this example, we are making the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; box float to the left side. Similarly, you can make it float to the right side like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;float&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;right&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="c"&gt;/* . . . */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also float multiple boxes together like this:&lt;/p&gt;

&lt;p&gt;➡️ &lt;a href="https://codepen.io/ericnanhu/embed/preview/dyraxom?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;View Code Demo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Clearing float
&lt;/h2&gt;

&lt;p&gt;Notice that when the &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; boxes are floating, all subsequent &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; elements will move up to fill their original space. If you want to change this default behavior, meaning you don't want the floated boxes to affect the layout of other elements, you can clear the side effects of &lt;code&gt;float&lt;/code&gt; using the &lt;code&gt;clear&lt;/code&gt; property.&lt;/p&gt;

&lt;p&gt;➡️ &lt;a href="https://codepen.io/ericnanhu/embed/preview/wvOOGXe?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;View Code Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;clear&lt;/code&gt; property takes four values:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;none&lt;/code&gt; (default)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;left&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;right&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;&lt;code&gt;both&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When set to &lt;code&gt;left&lt;/code&gt;, the side effects of left floated boxes will be removed, as shown in the demonstration. As you can see, the two &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; boxes are still floating next to each other, but the &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; element is no longer affected.&lt;/p&gt;

&lt;p&gt;When set to &lt;code&gt;right&lt;/code&gt;, the side effects of right floated boxes will be removed, and when set to &lt;code&gt;both&lt;/code&gt;, the side effects of all floated boxes will be removed.&lt;/p&gt;

&lt;h3&gt;
  
  
  Read More
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;CSS Grid Layout Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-flexbox" rel="noopener noreferrer"&gt;Flexbox Complete Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-color" rel="noopener noreferrer"&gt;Modern CSS Colors&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you found this guide helpful, follow us on social media for more tips, tutorials, and updates on web development:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's stay connected! 🚀&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>codenewbie</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Block vs. Inline vs. Inline-Block in CSS</title>
      <dc:creator>TheDevSpace</dc:creator>
      <pubDate>Thu, 27 Mar 2025 20:53:51 +0000</pubDate>
      <link>https://forem.com/thedevspace/block-vs-inline-vs-inline-block-in-css-1eli</link>
      <guid>https://forem.com/thedevspace/block-vs-inline-vs-inline-block-in-css-1eli</guid>
      <description>&lt;p&gt;&lt;em&gt;This post was originally published at &lt;a href="https://www.thedevspace.io/course/htmlcss-display-types" rel="noopener noreferrer"&gt;thedevspace.io&lt;/a&gt;. &lt;strong&gt;Everything you need to master web development, all in one place&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let's consider the following example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
  Lorem ipsum dolor sit amet consectetur adipisicing elit.
  &lt;span class="nt"&gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"/"&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Fuga blanditiis delectus voluptatum molestias accusantium id repudiandae
    exercitationem!&lt;span class="nt"&gt;&amp;lt;/a&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  Labore ipsum blanditiis vero, doloremque, nisi vel molestiae ea odio tempore
  recusandae dicta?
&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
  Lorem ipsum dolor sit amet consectetur adipisicing elit. Illum itaque eaque
  esse inventore incidunt delectus quia? Eos nam fuga sint obcaecati magnam.
  Fuga voluptatem doloremque quisquam eligendi libero. Deleniti, rerum.
&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jb8ilnvmqmotwwkbz6z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9jb8ilnvmqmotwwkbz6z.png" alt="p vs a" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Notice that the &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt; element always starts on a new line and takes up as much horizontal space as possible. On the other hand, the &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element does not start on a new line and only takes up as much space as necessary.&lt;/p&gt;

&lt;p&gt;This is, in fact, the difference between the &lt;a href="https://www.thedevspace.io/course/htmlcss-display-types" rel="noopener noreferrer"&gt;block elements and inline elements&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Most of the elements we mentioned so far are block elements, such as &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;h1&amp;gt;&lt;/code&gt; to &lt;code&gt;&amp;lt;h6&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt;, etc. Without extra styles defined, they will automatically take up as much horizontal space as possible.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;&amp;lt;a&amp;gt;&lt;/code&gt; element is an example of an inline element. It only takes up as much space as necessary when placed along side other elements. And the &lt;code&gt;width&lt;/code&gt; and &lt;code&gt;height&lt;/code&gt; attributes will have no effects on it.&lt;/p&gt;

&lt;p&gt;There are many other elements, both block and inline elements available in HTML. It is impossible to discuss all of them in one lesson, but here is a &lt;a href="https://www.w3schools.com/tags/default.asp" rel="noopener noreferrer"&gt;reference of all HTML elements&lt;/a&gt; from W3Schools if you are interested.&lt;/p&gt;

&lt;p&gt;Recall that we introduced the block and inline elements at the beginning of this chapter, where we explored &lt;a href="https://www.thedevspace.io/course/htmlcss-html-elements" rel="noopener noreferrer"&gt;the basics of HTML&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Block elements are those that automatically take up all the horizontal space available, but you can define custom width and height. Inline elements, on the other hand, only take as much space as necessary, and defining width and height has no effect on these elements.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inline
&lt;/h2&gt;

&lt;p&gt;However, you sometimes need to be more flexible when working on real-life projects. For example, you are trying to build a navigation bar that sits on top of the page, and you have a list of links here:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Link1&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Link2&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Link3&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;li&amp;gt;&amp;lt;a&lt;/span&gt; &lt;span class="na"&gt;href=&lt;/span&gt;&lt;span class="s"&gt;"#"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Link4&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;By default, &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; is a block element occupying the horizontal line.&lt;/p&gt;

&lt;p&gt;This would waste a lot of vertical space. To fix this issue, you can change how the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; elements are displayed using the &lt;code&gt;display&lt;/code&gt; property.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;inline&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now, the &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; will be displayed as an inline element.&lt;/p&gt;

&lt;p&gt;➡️ &lt;a href="https://codepen.io/ericnanhu/embed/preview/rNRPbqY?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;View Code Demo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Block
&lt;/h2&gt;

&lt;p&gt;You can also make an inline element behave like a block element in a similar way.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;div&amp;gt;&amp;lt;span&amp;gt;&lt;/span&gt;#1&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&lt;/span&gt;#2&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;span&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;➡️ &lt;a href="https://codepen.io/ericnanhu/embed/preview/LYaqvgg?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;View Code Demo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Inline block
&lt;/h2&gt;

&lt;p&gt;If you need an inline element but you want to be able to customize its width and height, you can use &lt;code&gt;inline-block&lt;/code&gt; instead.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;span&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;inline-block&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;100px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;50px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;➡️ &lt;a href="https://codepen.io/ericnanhu/embed/preview/BabMEGN?default-tab=html%2Cresult" rel="noopener noreferrer"&gt;View Code Demo&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;code&gt;display&lt;/code&gt; vs. &lt;code&gt;visibility&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;display&lt;/code&gt; can also control whether or not an element is rendered on the webpage. If you set &lt;code&gt;display&lt;/code&gt; to &lt;code&gt;none&lt;/code&gt;, the element will not be displayed. This can create useful features when combined with &lt;a href="https://www.thedevspace.io/course/javascript-introduction" rel="noopener noreferrer"&gt;JavaScript&lt;/a&gt;, allowing you to toggle the element on and off.&lt;/p&gt;

&lt;p&gt;This behavior is very similar to another CSS property called &lt;code&gt;visibility&lt;/code&gt;. Their difference is that when &lt;code&gt;visibility&lt;/code&gt; is set to &lt;code&gt;hidden&lt;/code&gt;, the element is still on the webpage, just not displayed by the browser. It will take up the same space as before. When &lt;code&gt;display&lt;/code&gt; is set to &lt;code&gt;none&lt;/code&gt;, the element will be completely removed from the webpage.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;display&lt;/code&gt; property is probably the most important CSS property we are going to cover in this chapter. It not only controls the display types of individual elements, but also the &lt;a href="https://www.thedevspace.io/course/htmlcss-grid" rel="noopener noreferrer"&gt;layout&lt;/a&gt; of its children. However, this requires a deeper understanding of CSS, so we will come back to this topic later.&lt;/p&gt;

&lt;h3&gt;
  
  
  Read More
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-functions-and-at-rules" rel="noopener noreferrer"&gt;CSS Functions &amp;amp; @ Rules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-selectors" rel="noopener noreferrer"&gt;A Comprehensive Guide to CSS Selectors&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.thedevspace.io/course/htmlcss-justify-and-align" rel="noopener noreferrer"&gt;Justify and Align in CSS Layout&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;If you found this guide helpful, follow us on social media for more tips, tutorials, and updates on web development:&lt;/p&gt;

&lt;p&gt;🔹 &lt;a href="https://www.linkedin.com/company/thedevspace/" rel="noopener noreferrer"&gt;TheDevSpace | LinkedIn&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://x.com/thedevspacehq" rel="noopener noreferrer"&gt;TheDevSpace | X&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🔹 &lt;a href="https://www.threads.net/@thedevspacehq?hl=en" rel="noopener noreferrer"&gt;TheDevSpace | Threads&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's stay connected! 🚀&lt;/p&gt;

</description>
      <category>html</category>
      <category>css</category>
      <category>webdev</category>
      <category>codenewbie</category>
    </item>
  </channel>
</rss>
