<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ freeCodeCamp Curriculum Guide - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ freeCodeCamp Curriculum Guide - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 04:44:22 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/freecodecamp-curriculum-guide/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ How to Indent HTML Code – And Why it's Important ]]>
                </title>
                <description>
                    <![CDATA[ When you are building out HTML files, it's really important to indent your code. But how do you do that in HTML and why is it important? In this article, I will show you how to properly indent your HTML files and explain why it is important to proper... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-indent-in-html-and-why-it-is-important/</link>
                <guid isPermaLink="false">66b8d98bf0d0708280f1346c</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp Curriculum Guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ best practices ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Wed, 01 Jun 2022 15:40:55 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/06/irvan-smith-ymn_TY_MBn8-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>When you are building out HTML files, it's really important to indent your code. But how do you do that in HTML and why is it important?</p>
<p>In this article, I will show you how to properly indent your HTML files and explain why it is important to properly format your code. </p>
<h2 id="heading-how-to-indent-your-code-in-html">How to Indent Your Code in HTML</h2>
<p>Whenever you have HTML elements nested inside other HTML elements, it's best to use indentation. Nested elements  are known as children of their parent element.</p>
<p>In this example, I have a <code>p</code> element nested inside a <code>div</code> element.  To indent the <code>p</code> element, I will move it two spaces to the right.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">div</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is what indentation looks like for HTML<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<p>This is considered best practice and will make your code more readable by other developers.  Now we can see that the <code>p</code> element is nested inside its parent element which is the <code>div</code>. </p>
<p>In this next example, I have an <code>h2</code> and <code>p</code> element nested inside a <code>main</code> element <strong>without</strong> indentation.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">main</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Let's learn about indentation<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>There is no indentation here<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">main</span>&gt;</span>
</code></pre>
<p>But if I edit the code by moving the <code>h2</code> and <code>p</code> elements two spaces to the right, now we have proper indentation.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">main</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Let's learn about indentation<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is indentation<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">main</span>&gt;</span>
</code></pre>
<p>The <code>h2</code> and <code>p</code> elements are children of the <code>main</code> element.</p>
<h2 id="heading-commonly-used-examples-of-indentation-in-html">Commonly Used Examples of Indentation in HTML</h2>
<h3 id="heading-unordered-lists">Unordered lists</h3>
<p>The <code>li</code> elements are indented two spaces to the right and nested inside the <code>ul</code> element. The <code>ul</code> element is the parent of the <code>li</code> elements.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Cake<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Pizza<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Salad<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Apple<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
</code></pre>
<h3 id="heading-ordered-lists">Ordered lists</h3>
<p>The <code>li</code> elements are indented two spaces to the right and nested inside the <code>ol</code> element. The <code>ol</code> element is the parent of the <code>li</code> elements.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">ol</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Drive 1.2 miles and turn left on Cherry lane<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Drive 4.5 miles and turn right on Sycamore Rd.<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Drive 400 feet and stop at the light<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Turn left at the light<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>Arrive at the destination on your right<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ol</span>&gt;</span>
</code></pre>
<h2 id="heading-why-is-indentation-important">Why is Indentation Important?</h2>
<p>When you are writing code, it is important to write code that is readable by other developers. A large part of readability is properly indenting your HTML. </p>
<p>In this example, I have copied all of the code from the <a target="_blank" href="https://www.freecodecamp.org/learn/2022/responsive-web-design/#learn-html-by-building-a-cat-photo-app">Learn HTML by Building a Cat Photo App</a> project and removed all of the indentation to show you what poor code formatting looks like. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"en"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>CatPhotoApp<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>CatPhotoApp<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">main</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">section</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Cat Photos<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
<span class="hljs-comment">&lt;!-- <span class="hljs-doctag">TODO:</span> Add link to cat photos --&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
Click here to view more
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://freecatphotoapp.com"</span>&gt;</span>cat photos<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>.
<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://freecatphotoapp.com"</span>
&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">img</span>
<span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg"</span>
<span class="hljs-attr">alt</span>=<span class="hljs-string">"A cute orange cat lying on its back."</span>
/&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">section</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">section</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Cat Lists<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Things cats love:<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>cat nip<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>laser pointers<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>lasagna<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">figure</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">img</span>
<span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg"</span>
<span class="hljs-attr">alt</span>=<span class="hljs-string">"A slice of lasagna on a plate."</span>
/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">figcaption</span>&gt;</span>Cats <span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>love<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span> lasagna.<span class="hljs-tag">&lt;/<span class="hljs-name">figcaption</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">figure</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Top 3 things cats hate:<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">ol</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>flea treatment<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>thunder<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>other cats<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">ol</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">figure</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">img</span>
<span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg"</span>
<span class="hljs-attr">alt</span>=<span class="hljs-string">"Five cats looking around a field."</span>
/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">figcaption</span>&gt;</span>Cats <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>hate<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span> other cats.<span class="hljs-tag">&lt;/<span class="hljs-name">figcaption</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">figure</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">section</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">section</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Cat Form<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">form</span> <span class="hljs-attr">action</span>=<span class="hljs-string">"https://freecatphotoapp.com/submit-cat-photo"</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">fieldset</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">legend</span>&gt;</span>Is your cat an indoor or outdoor cat?<span class="hljs-tag">&lt;/<span class="hljs-name">legend</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">label</span>
&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">input</span>
<span class="hljs-attr">id</span>=<span class="hljs-string">"indoor"</span>
<span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span>
<span class="hljs-attr">name</span>=<span class="hljs-string">"indoor-outdoor"</span>
<span class="hljs-attr">value</span>=<span class="hljs-string">"indoor"</span>
<span class="hljs-attr">checked</span>
/&gt;</span>
Indoor<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>
&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">label</span>
&gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">input</span>
<span class="hljs-attr">id</span>=<span class="hljs-string">"outdoor"</span>
<span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span>
<span class="hljs-attr">name</span>=<span class="hljs-string">"indoor-outdoor"</span>
<span class="hljs-attr">value</span>=<span class="hljs-string">"outdoor"</span>
/&gt;</span>
Outdoor<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>
&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">fieldset</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">fieldset</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">legend</span>&gt;</span>What's your cat's personality?<span class="hljs-tag">&lt;/<span class="hljs-name">legend</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span>
<span class="hljs-attr">id</span>=<span class="hljs-string">"loving"</span>
<span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span>
<span class="hljs-attr">name</span>=<span class="hljs-string">"personality"</span>
<span class="hljs-attr">value</span>=<span class="hljs-string">"loving"</span>
<span class="hljs-attr">checked</span>
/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"loving"</span>&gt;</span>Loving<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"lazy"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"personality"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"lazy"</span> /&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"lazy"</span>&gt;</span>Lazy<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span>
<span class="hljs-attr">id</span>=<span class="hljs-string">"energetic"</span>
<span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span>
<span class="hljs-attr">name</span>=<span class="hljs-string">"personality"</span>
<span class="hljs-attr">value</span>=<span class="hljs-string">"energetic"</span>
/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"energetic"</span>&gt;</span>Energetic<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">fieldset</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">input</span>
<span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span>
<span class="hljs-attr">name</span>=<span class="hljs-string">"catphotourl"</span>
<span class="hljs-attr">placeholder</span>=<span class="hljs-string">"cat photo URL"</span>
<span class="hljs-attr">required</span>
/&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;</span>Submit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">section</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">main</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">footer</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
No Copyright -
<span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.freecodecamp.org"</span>&gt;</span>freeCodeCamp.org<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">footer</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>This is not good HTML practice at all because it is really difficult to read and understand what the code is doing. If you tried to submit something like this in a professional developer setting, your team would not be happy with you at all.</p>
<p>Now I am going to take that exact same code and properly indent it to show you the difference. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">html</span> <span class="hljs-attr">lang</span>=<span class="hljs-string">"en"</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">head</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">title</span>&gt;</span>CatPhotoApp<span class="hljs-tag">&lt;/<span class="hljs-name">title</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">head</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">body</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">h1</span>&gt;</span>CatPhotoApp<span class="hljs-tag">&lt;/<span class="hljs-name">h1</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">main</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">section</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Cat Photos<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
        <span class="hljs-comment">&lt;!-- <span class="hljs-doctag">TODO:</span> Add link to cat photos --&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
          Click here to view more
          <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://freecatphotoapp.com"</span>&gt;</span>cat photos<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>.
        <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://freecatphotoapp.com"</span>
          &gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">img</span>
            <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg"</span>
            <span class="hljs-attr">alt</span>=<span class="hljs-string">"A cute orange cat lying on its back."</span>
        /&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">section</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">section</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Cat Lists<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Things cats love:<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ul</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>cat nip<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>laser pointers<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>lasagna<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ul</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">figure</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">img</span>
            <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.freecodecamp.org/curriculum/cat-photo-app/lasagna.jpg"</span>
            <span class="hljs-attr">alt</span>=<span class="hljs-string">"A slice of lasagna on a plate."</span>
          /&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">figcaption</span>&gt;</span>Cats <span class="hljs-tag">&lt;<span class="hljs-name">em</span>&gt;</span>love<span class="hljs-tag">&lt;/<span class="hljs-name">em</span>&gt;</span> lasagna.<span class="hljs-tag">&lt;/<span class="hljs-name">figcaption</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">figure</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">h3</span>&gt;</span>Top 3 things cats hate:<span class="hljs-tag">&lt;/<span class="hljs-name">h3</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">ol</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>flea treatment<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>thunder<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">li</span>&gt;</span>other cats<span class="hljs-tag">&lt;/<span class="hljs-name">li</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">ol</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">figure</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">img</span>
            <span class="hljs-attr">src</span>=<span class="hljs-string">"https://cdn.freecodecamp.org/curriculum/cat-photo-app/cats.jpg"</span>
            <span class="hljs-attr">alt</span>=<span class="hljs-string">"Five cats looking around a field."</span>
          /&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">figcaption</span>&gt;</span>Cats <span class="hljs-tag">&lt;<span class="hljs-name">strong</span>&gt;</span>hate<span class="hljs-tag">&lt;/<span class="hljs-name">strong</span>&gt;</span> other cats.<span class="hljs-tag">&lt;/<span class="hljs-name">figcaption</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">figure</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">section</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">section</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Cat Form<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">form</span> <span class="hljs-attr">action</span>=<span class="hljs-string">"https://freecatphotoapp.com/submit-cat-photo"</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">fieldset</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">legend</span>&gt;</span>Is your cat an indoor or outdoor cat?<span class="hljs-tag">&lt;/<span class="hljs-name">legend</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">label</span>
              &gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">input</span>
                <span class="hljs-attr">id</span>=<span class="hljs-string">"indoor"</span>
                <span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span>
                <span class="hljs-attr">name</span>=<span class="hljs-string">"indoor-outdoor"</span>
                <span class="hljs-attr">value</span>=<span class="hljs-string">"indoor"</span>
                <span class="hljs-attr">checked</span>
              /&gt;</span>
              Indoor<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>
            &gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">label</span>
              &gt;</span><span class="hljs-tag">&lt;<span class="hljs-name">input</span>
                <span class="hljs-attr">id</span>=<span class="hljs-string">"outdoor"</span>
                <span class="hljs-attr">type</span>=<span class="hljs-string">"radio"</span>
                <span class="hljs-attr">name</span>=<span class="hljs-string">"indoor-outdoor"</span>
                <span class="hljs-attr">value</span>=<span class="hljs-string">"outdoor"</span>
              /&gt;</span>
              Outdoor<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>
            &gt;</span>
          <span class="hljs-tag">&lt;/<span class="hljs-name">fieldset</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">fieldset</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">legend</span>&gt;</span>What's your cat's personality?<span class="hljs-tag">&lt;/<span class="hljs-name">legend</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">input</span>
              <span class="hljs-attr">id</span>=<span class="hljs-string">"loving"</span>
              <span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span>
              <span class="hljs-attr">name</span>=<span class="hljs-string">"personality"</span>
              <span class="hljs-attr">value</span>=<span class="hljs-string">"loving"</span>
              <span class="hljs-attr">checked</span>
            /&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"loving"</span>&gt;</span>Loving<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">input</span> <span class="hljs-attr">id</span>=<span class="hljs-string">"lazy"</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span> <span class="hljs-attr">name</span>=<span class="hljs-string">"personality"</span> <span class="hljs-attr">value</span>=<span class="hljs-string">"lazy"</span> /&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"lazy"</span>&gt;</span>Lazy<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">input</span>
              <span class="hljs-attr">id</span>=<span class="hljs-string">"energetic"</span>
              <span class="hljs-attr">type</span>=<span class="hljs-string">"checkbox"</span>
              <span class="hljs-attr">name</span>=<span class="hljs-string">"personality"</span>
              <span class="hljs-attr">value</span>=<span class="hljs-string">"energetic"</span>
            /&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">label</span> <span class="hljs-attr">for</span>=<span class="hljs-string">"energetic"</span>&gt;</span>Energetic<span class="hljs-tag">&lt;/<span class="hljs-name">label</span>&gt;</span>
          <span class="hljs-tag">&lt;/<span class="hljs-name">fieldset</span>&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">input</span>
            <span class="hljs-attr">type</span>=<span class="hljs-string">"text"</span>
            <span class="hljs-attr">name</span>=<span class="hljs-string">"catphotourl"</span>
            <span class="hljs-attr">placeholder</span>=<span class="hljs-string">"cat photo URL"</span>
            <span class="hljs-attr">required</span>
          /&gt;</span>
          <span class="hljs-tag">&lt;<span class="hljs-name">button</span> <span class="hljs-attr">type</span>=<span class="hljs-string">"submit"</span>&gt;</span>Submit<span class="hljs-tag">&lt;/<span class="hljs-name">button</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">form</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">section</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">main</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">footer</span>&gt;</span>
      <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>
        No Copyright -
        <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.freecodecamp.org"</span>&gt;</span>freeCodeCamp.org<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
      <span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">footer</span>&gt;</span>
  <span class="hljs-tag">&lt;/<span class="hljs-name">body</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">html</span>&gt;</span>
</code></pre>
<p>This is much easier to read and now we can see all of the nested child elements inside their parent elements and understand what the code is doing.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>When writing HTML it is important to properly format your code using good indentation. You can indent elements by moving them two spaces to the right. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">main</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">h2</span>&gt;</span>Let's learn about indentation<span class="hljs-tag">&lt;/<span class="hljs-name">h2</span>&gt;</span>
  <span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>This is indentation<span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">main</span>&gt;</span>
</code></pre>
<p>This will make your code more readable by other developers and shows the relationship between the child and parent HTML elements. </p>
<p>I hope you enjoyed this article and best of luck on your developer journey. </p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Open a Link in a New Tab – HTML target blank Attribute Explained ]]>
                </title>
                <description>
                    <![CDATA[ There will be times where you will want your user to click on a website link and have it open in a new browser tab. But how do you do that in HTML? In this article, I will show you how to use the target="_blank" attribute through code examples. I ]]>
                </description>
                <link>https://www.freecodecamp.org/news/how-to-open-a-link-in-a-new-tab/</link>
                <guid isPermaLink="false">66b8d997d482a18d3e028269</guid>
                
                    <category>
                        <![CDATA[ freeCodeCamp Curriculum Guide ]]>
                    </category>
                
                    <category>
                        <![CDATA[ HTML ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Web Development ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Jessica Wilkins ]]>
                </dc:creator>
                <pubDate>Tue, 31 May 2022 14:53:07 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/news/content/images/2022/05/markus-spiske-4qbS830djfs-unsplash.jpg" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>There will be times where you will want your user to click on a website link and have it open in a new browser tab. But how do you do that in HTML?</p>
<p>In this article, I will show you how to use the <code>target="_blank"</code> attribute through code examples. I will also talk about when you should consider using this attribute. </p>
<h2 id="heading-how-to-open-up-a-new-browser-tab-using-targetblank">How to Open Up a New Browser Tab Using <code>target="_blank"</code></h2>
<p>The <code>target="_blank"</code> attribute is used inside the opening anchor tag like this:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"website-link-goes-here"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>
</code></pre>
<p>When the user clicks on the link, a new browser tab will automatically open to that page. </p>
<p>In this example, I have nested a link inside a set of paragraph tags to direct people to freeCodeCamp. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">p</span>&gt;</span>To learn how to code for free, please visit <span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://www.freecodecamp.org/learn"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>freeCodeCamp.org<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">p</span>&gt;</span>
</code></pre>
<p>When you click on the freeCodeCamp link, then it will open up a new browser tab for you.</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/jessica-wilkins/embed/zYRRdmQ?editors=1000" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<p>If I were to omit the <code>target="_blank"</code> attribute, then the default behavior would be to leave the current web page and go directly to the link without opening a new browser tab. </p>
<h2 id="heading-what-is-the-noopener-keyword">What is the <code>noopener</code> Keyword?</h2>
<p>The <code>noopener</code> keyword in the <code>rel</code> attribute is used primarily for security reasons to prevent malicious users from messing with the original web page through the <code>[Window.opener](https://developer.mozilla.org/en-US/docs/Web/API/Window/opener)</code> property. If the malicious user gained access to your window object then they could redirect your page to a malicious URL.</p>
<p>You can use the <code>noopener</code> keyword as a way to help prevent that security issue from happening. Here is how the <code>noopener</code> keyword is used:</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"noopener"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"https://devdocs.io/html/element/heading_elements"</span>&gt;</span>DevDocs documentation<span class="hljs-tag">&lt;/<span class="hljs-name">a</span>&gt;</span>
</code></pre>
<p>If you want to learn more about the security concerns that <code>rel=noopener</code> helped solve, then please read through <a target="_blank" href="https://mathiasbynens.github.io/rel-noopener/">this helpful article</a>. </p>
<h3 id="heading-updates-to-the-noopener-keyword">Updates to the <code>noopener</code> keyword</h3>
<p>In 2021, there was an update made where modern browsers now set <code>rel=noopener</code> to any link using the <code>target=_blank</code> attribute. As you can see in this <a target="_blank" href="https://caniuse.com/rel-noopener">Can I use table</a>, the <code>noopener</code> keyword is supported by most browsers except for Internet Explorer 11. </p>
<p>Even with this update, a lot of developers will still use <code>rel=noopener</code> for links using the <code>target=_blank</code> attribute.</p>
<h2 id="heading-should-you-use-the-targetblank-attribute-all-the-time">Should You Use the <code>target="_blank"</code> Attribute All the Time?</h2>
<p>When users click on a link, the default behavior is to have that link open on the current page they are on without opening a new browser tab. In a lot of cases, you do not want to change this default behavior because users have grown to expect this. </p>
<p>You have to think carefully about when it would be a good time to use the <code>target="_blank"</code> attribute. One good example would be if a user is working on a page and they don't want to leave that page if they click on a link.</p>
<p>In this example, we are linking to the <a target="_blank" href="https://devdocs.io/">DevDocs</a> documentation, so the user can stay on their current page and look up a reference on a new tab.</p>
<div class="embed-wrapper">
        <iframe width="100%" height="350" src="https://codepen.io/jessica-wilkins/embed/qBxxPdb?editors=1000" style="aspect-ratio: 16 / 9; width: 100%; height: auto;" title="CodePen embed" scrolling="no" allowtransparency="true" allowfullscreen="true" loading="lazy"></iframe></div>
<h2 id="heading-conclusion">Conclusion</h2>
<p>You can use the <code>target="_blank"</code> attribute if you want your users to click on a link that opens up a new browser tab. </p>
<p>The <code>target="_blank"</code> attribute is used inside the opening anchor tag like this.</p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"website-link-goes-here"</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span>&gt;</span>
</code></pre>
<p>The <code>noopener</code> keyword in the <code>rel</code> attribute is added to prevent malicious users from messing with the original web page through the <code>[Window.opener](https://developer.mozilla.org/en-US/docs/Web/API/Window/opener)</code> property. </p>
<pre><code class="lang-html"><span class="hljs-tag">&lt;<span class="hljs-name">a</span> <span class="hljs-attr">target</span>=<span class="hljs-string">"_blank"</span> <span class="hljs-attr">rel</span>=<span class="hljs-string">"noopener"</span> <span class="hljs-attr">href</span>=<span class="hljs-string">"link-goes-here"</span>&gt;</span>
</code></pre>
<p>You have to think carefully about when it would be a good time to use the <code>target="_blank"</code> attribute because you don't want to always change the default behavior of links.</p>
<p>I hope you enjoyed this article and best of luck on your programming journey. </p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
