<?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: Daniel Nogueira</title>
    <description>The latest articles on Forem by Daniel Nogueira (@udanielnogueira).</description>
    <link>https://forem.com/udanielnogueira</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%2F938989%2Fea05107e-0b98-4be2-b64c-fe39a6c60bcf.jpeg</url>
      <title>Forem: Daniel Nogueira</title>
      <link>https://forem.com/udanielnogueira</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/udanielnogueira"/>
    <language>en</language>
    <item>
      <title>How to Insert Video in HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Thu, 25 Sep 2025 17:08:00 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/how-to-insert-videos-in-html-3de3</link>
      <guid>https://forem.com/udanielnogueira/how-to-insert-videos-in-html-3de3</guid>
      <description>&lt;p&gt;In this article, we'll learn which tag we use to create a video element in HTML, as well as the attributes that define how the video will behave.&lt;/p&gt;

&lt;p&gt;Now, revealing the secret, to add videos to an HTML document, you need to use the &lt;code&gt;video&lt;/code&gt; tag. First, we create the &lt;code&gt;video&lt;/code&gt; tag and then add the &lt;code&gt;controls&lt;/code&gt; attribute to display a playback control.&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;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Next, we add the &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tag with the path to the video file.&lt;/p&gt;

&lt;p&gt;An interesting detail: we can also add more than one file with a different extension as a security measure, HTML will consider the first supported file.&lt;/p&gt;

&lt;p&gt;In this case, we'll add a file with the &lt;code&gt;.mp4&lt;/code&gt; extension. If the file isn't supported or has a problem, HTML will consider the next supported file.&lt;/p&gt;

&lt;p&gt;Finally, if none of the files are supported in the browser, we can display a text message informing the user of the error.&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;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.mp4"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.webm"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/webm"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
Your browser does not support the video tag
&lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The video files supported by the browser are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MP4&lt;/li&gt;
&lt;li&gt;OGG&lt;/li&gt;
&lt;li&gt;WebM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also use the &lt;code&gt;type&lt;/code&gt; attribute in the &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tag to inform the browser of the file type being used, it's a good way to maintain semantic HTML.&lt;/p&gt;

&lt;p&gt;This will be the result:&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%2F6hlh8jonjk071r21hhmy.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%2F6hlh8jonjk071r21hhmy.png" alt="HTML document with embedded video" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Video Tag Attributes
&lt;/h2&gt;

&lt;p&gt;In addition to the &lt;code&gt;controls&lt;/code&gt; attribute, we can include other attributes in the &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; tag:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;muted&lt;/code&gt; specifies that the video is muted&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loop&lt;/code&gt; specifies that the video plays in a loop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;autoplay&lt;/code&gt; specifies that the video plays automatically&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;poster&lt;/code&gt; displays an image while the video is loading or until the user presses play
&lt;/li&gt;
&lt;/ul&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;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt; &lt;span class="na"&gt;poster=&lt;/span&gt;&lt;span class="s"&gt;"./img/play.jpg"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.mp4"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.webm"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/webm"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
Your browser doesn't support the video tag
&lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the code above, we added the &lt;code&gt;poster&lt;/code&gt; attribute that displays an image until the user plays the video. This is the result:&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%2Ft1lsqwihp6krhr1pe15g.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%2Ft1lsqwihp6krhr1pe15g.png" alt="Add poster attribute to a video tag in HTML" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  This article covered
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; tag attributes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>How to Insert Sound in HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Thu, 25 Sep 2025 14:35:40 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/how-to-insert-sound-in-html-3edg</link>
      <guid>https://forem.com/udanielnogueira/how-to-insert-sound-in-html-3edg</guid>
      <description>&lt;p&gt;In this article, we'll learn which tag we use to create a sound element in HTML, as well as the attributes that define how the audio will behave.&lt;/p&gt;

&lt;p&gt;Getting straight to the point, to add sounds to an HTML document, you need to use the &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; tag. First, we create the &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; tag and then add the controls attribute to display a playback control.&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;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Next, we add the &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tag with the path to the audio file.&lt;/p&gt;

&lt;p&gt;An interesting detail: we can also add more than one file with a different extension as a safety measure, HTML will consider the first supported file.&lt;/p&gt;

&lt;p&gt;In this case, we'll add a file with the &lt;code&gt;.wav&lt;/code&gt; extension. If the file isn't supported or has a problem, HTML will consider the next supported file.&lt;/p&gt;

&lt;p&gt;Finally, if none of the files are supported in the browser, we can display a text message informing the user of the error.&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;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.wav"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/wav"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.mp3"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/mp3"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
Your browser does not support the audio tag.
&lt;span class="nt"&gt;&amp;lt;/audio&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The audio files supported by the browser are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MP3&lt;/li&gt;
&lt;li&gt;WAV&lt;/li&gt;
&lt;li&gt;OGG&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We also use the &lt;code&gt;type&lt;/code&gt; attribute in the &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; tag to inform the browser of the file type being used, it's a good way to maintain semantic HTML.&lt;/p&gt;

&lt;p&gt;This will be the result:&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%2F538y4c7zgjtvtnaemrig.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%2F538y4c7zgjtvtnaemrig.png" alt="HTML document with embedded audio" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Audio Tag Attributes
&lt;/h2&gt;

&lt;p&gt;In addition to the &lt;code&gt;controls&lt;/code&gt; attribute, we can include other attributes in the &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; tag, most of which do not need to be assigned a value.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;muted&lt;/code&gt; specifies that the audio is muted&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loop&lt;/code&gt; specifies that the audio plays in a loop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;autoplay&lt;/code&gt; specifies that the audio plays automatically
&lt;/li&gt;
&lt;/ul&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;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt; &lt;span class="na"&gt;autoplay&lt;/span&gt; &lt;span class="na"&gt;loop&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.wav"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/wav"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.mp3"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/mp3"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
Your browser does not support the audio tag.
&lt;span class="nt"&gt;&amp;lt;/audio&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the case of the code above, as soon as the page loads, the audio will play automatically due to the &lt;code&gt;autoplay&lt;/code&gt; attribute and will continue playing due to the &lt;code&gt;loop&lt;/code&gt; attribute.&lt;/p&gt;

&lt;h2&gt;
  
  
  This article covered
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; Tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; Tag&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; Tag Attributes&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Author
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Como Inserir uma Imagem Semântica em HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Mon, 23 Dec 2024 14:48:48 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/como-criar-uma-imagem-semantica-em-html-5h6o</link>
      <guid>https://forem.com/udanielnogueira/como-criar-uma-imagem-semantica-em-html-5h6o</guid>
      <description>&lt;p&gt;É comum conhecer a tag &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; para adicionar imagens em HTML, mas existe uma maneira mais semântica para isso, que é usando a tag &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Essa tag funciona como uma tag &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;, que engloba outros elementos. E no caso da tag &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt;, ela é própria para englobar conteúdo de imagem.&lt;/p&gt;

&lt;p&gt;Primeiro, crie a tag &lt;code&gt;&amp;lt;figure&amp;gt;&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;figure&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Agora, adicione a tag &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; para especificar o caminho do arquivo de imagem a ser usado:&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;figure&amp;gt;&lt;/span&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;"cristo-redentor.jpg"&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Cristo Redentor"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Cristo Redentor"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/figure&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por fim, a tag &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt; permite adicionar uma legenda na imagem. Para isso, usamos a tag &lt;code&gt;&amp;lt;figcaption&amp;gt;&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;figure&amp;gt;&lt;/span&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;"cristo-redentor.jpg"&lt;/span&gt; &lt;span class="na"&gt;title=&lt;/span&gt;&lt;span class="s"&gt;"Cristo Redentor"&lt;/span&gt; &lt;span class="na"&gt;alt=&lt;/span&gt;&lt;span class="s"&gt;"Cristo Redentor"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;figcaption&amp;gt;&lt;/span&gt;Fig.1 - Cristo Redentor no Rio de Janeiro&lt;span class="nt"&gt;&amp;lt;/figcaption&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/figure&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Resultado:&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%2F93vprw2xxjk4irw3loq3.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%2F93vprw2xxjk4irw3loq3.png" alt="Uso da tag figure" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Por que isso é importante?
&lt;/h2&gt;

&lt;p&gt;O uso de tags semânticas é fundamental para promover a inclusão e acessibilidade na web, além de melhorar o posicionamento da aplicação nos motores de busca (SEO).&lt;/p&gt;

&lt;h2&gt;
  
  
  Esse artigo abordou
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tag &lt;code&gt;&amp;lt;figure&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Tag &lt;code&gt;&amp;lt;figcaption&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Imagens semânticas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Autor
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/udanielnogueira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como Criar uma Estrutura Semântica em HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Sat, 21 Dec 2024 20:29:44 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/criando-uma-estrutura-de-html-semantico-n0l</link>
      <guid>https://forem.com/udanielnogueira/criando-uma-estrutura-de-html-semantico-n0l</guid>
      <description>&lt;p&gt;Nesse artigo, daremos um exemplo de uma estrutura de HTML semântico. Não é uma fórmula pronta e exata, mas é um bom caminho para aqueles que precisam de ajuda nessa tarefa.&lt;/p&gt;

&lt;p&gt;E a primeira tag que vamos criar dentro da tag &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; é a tag &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, a tag de cabeçalho. E nessa tag &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, é usualmente comum adicionar uma tag &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;, que é a tag para um menu de navegação.&lt;/p&gt;

&lt;p&gt;E nesse menu de navegação, listamos os links com o auxílio das tags &lt;code&gt;&amp;lt;ul&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;li&amp;gt;&lt;/code&gt; e &lt;code&gt;&amp;lt;a&amp;gt;&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Após a tag &lt;code&gt;&amp;lt;header&amp;gt;&lt;/code&gt;, vamos dar início ao conteúdo principal da página. Para isso, usaremos a tag &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, que é a tag semântica para englobar as seções do conteúdo principal.&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Dentro da tag &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;, a página pode conter diferentes seções. Semanticamente falando, cada seção deve desempenhar um papel único, por exemplo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Seção de postagens&lt;/li&gt;
&lt;li&gt;Seção de comentários&lt;/li&gt;
&lt;li&gt;Seção de patrocinadores&lt;/li&gt;
&lt;li&gt;Seção de galeria de imagens&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para essa estrutura, vamos pensar em uma seção de postagens de notícias. Logo, é viável englobar essa seção com uma tag chamada &lt;code&gt;&amp;lt;section&amp;gt;&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora, precisamos criar os posts de notícias que farão parte dessa seção. Para isso, existe a tag &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;, cada &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; irá representar uma postagem.&lt;/p&gt;

&lt;p&gt;Essa tag &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; é usada justamente para representar um componente que será utilizado mais de uma vez em uma página. Se teremos vários elementos de post, logo faz sentido cada postagem de notícia ser um &lt;code&gt;&amp;lt;article&amp;gt;&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 1&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 1&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 2&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 2&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A tag &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt; pode ter uma seção lateral em paralelo às outras seções mais importantes, nesse caso, usamos a tag &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;.&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%2Fncl6xjonx8aqb04z72kj.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%2Fncl6xjonx8aqb04z72kj.png" alt="Estrutura de HTML Semântico" width="800" height="543"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para o código que estamos desenvolvendo, a tag &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt; irá ser usada para representar uma seção de melhores postagens da página.&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 1&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 1&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 2&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 2&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Best posts&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&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;Best post 1&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&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;Best post 2&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&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;Best post 3&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Por fim, adicionaremos o popular &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;, que é o rodapé da página. Um detalhe importante para a semântica é usar a tag &lt;code&gt;&amp;lt;address&amp;gt;&lt;/code&gt;, indicada para conter informações de contato.&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;header&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 1&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 1&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 2&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 2&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

  &lt;span class="nt"&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Best posts&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&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;Best post 1&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&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;Best post 2&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;li&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;Best post 3&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;

&lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;2024 &lt;span class="err"&gt;&amp;amp;&lt;/span&gt;copy The Dev Journal&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;address&amp;gt;&lt;/span&gt;
    &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;"mailto:daniel@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;daniel@example.com&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; 
  &lt;span class="nt"&gt;&amp;lt;/address&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A estrutura do HTML completo fica assim:&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="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&lt;/span&gt; &lt;span class="na"&gt;lang=&lt;/span&gt;&lt;span class="s"&gt;"pt-br"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"viewport"&lt;/span&gt; &lt;span class="na"&gt;content=&lt;/span&gt;&lt;span class="s"&gt;"width=device-width, initial-scale=1.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;meta&lt;/span&gt; &lt;span class="na"&gt;charset=&lt;/span&gt;&lt;span class="s"&gt;"UTF-8"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;Dev Post&lt;span class="nt"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;header&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;nav&amp;gt;&lt;/span&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;"#home"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Home&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;"#posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Posts&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;span class="nt"&gt;&amp;lt;/nav&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/header&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;main&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"posts"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 1&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 1&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;article&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"post"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Post title 2&lt;span class="nt"&gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Post content 2&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/article&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;

      &lt;span class="nt"&gt;&amp;lt;aside&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;Best posts&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&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;Best post 1&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&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;Best post 2&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;li&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;Best post 3&lt;span class="nt"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/aside&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/main&amp;gt;&lt;/span&gt;

    &lt;span class="nt"&gt;&amp;lt;footer&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;2024 &lt;span class="err"&gt;&amp;amp;&lt;/span&gt;copy Dev Post&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;address&amp;gt;&lt;/span&gt;
        &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;"mailto:daniel@example.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;daniel@example.com&lt;span class="nt"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/address&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/footer&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Section com articles ou Articles com sections?
&lt;/h2&gt;

&lt;p&gt;Nessa nossa estrutura HTML, cada &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt; pode englobar um conjunto de tags &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;. Existem estilos de desenvolvimento que preferem pensar no oposto, cada &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt; englobando um conjunto de tags &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Independente da sua escolha, o importante é manter uma mesma convenção em todos os seus projetos. E caso estiver em uma empresa, seguir o padrão usado nela.&lt;/p&gt;

&lt;h2&gt;
  
  
  Esse artigo abordou
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;nav&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;main&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;aside&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;footer&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;section&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;article&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Uso da tag &lt;code&gt;&amp;lt;address&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Estrutura HTML Semântica&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Autor
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/udanielnogueira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como Criar um Campo de Texto Editável em HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Sat, 21 Dec 2024 13:50:24 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/criando-um-campo-de-texto-editavel-em-html-4l3h</link>
      <guid>https://forem.com/udanielnogueira/criando-um-campo-de-texto-editavel-em-html-4l3h</guid>
      <description>&lt;p&gt;Nesse artigo, vamos criar um campo de texto que pode ser editado pelo usuário no navegador. Além disso, iremos perceber um detalhe que pode ser resolvido usando uma outra tag em específico.&lt;/p&gt;

&lt;p&gt;E para tornar um campo de texto editável, usamos uma solução muito simples que é adicionar o atributo &lt;code&gt;contenteditable&lt;/code&gt;, esse atributo pode assumir dois valores: &lt;code&gt;true&lt;/code&gt; ou &lt;code&gt;false&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;p&lt;/span&gt; &lt;span class="na"&gt;contenteditable=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Conteúdo editável&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;No exemplo abaixo, usaremos o atributo &lt;code&gt;contenteditable&lt;/code&gt; em uma tag parágrafo. E logicamente, para atender ao que queremos, atribuímos ao atributo o valor &lt;code&gt;true&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/Daniel-Nogueira-the-sans/embed/yyBbKyM?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Perceba que, o elemento de parágrafo está ocupando toda a largura disponível. Existe uma maneira de contornar essa situação, que é usando a tag &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; ao invés da tag &lt;code&gt;&amp;lt;p&amp;gt;&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;span&lt;/span&gt; &lt;span class="na"&gt;contenteditable=&lt;/span&gt;&lt;span class="s"&gt;"true"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Conteúdo editável&lt;span class="nt"&gt;&amp;lt;/span&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Agora a largura do campo de texto editável não é mais uma largura fixa, mas está dependendo do tamanho do conteúdo em si.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/udanielnogueira/embed/qEWmoNJ?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Esse artigo abordou
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Atributo &lt;code&gt;contenteditable&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Atributo &lt;code&gt;contenteditable&lt;/code&gt; na tag &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Autor
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/udanielnogueira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Tue, 17 Dec 2024 19:56:05 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/-5eim</link>
      <guid>https://forem.com/udanielnogueira/-5eim</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/udanielnogueira" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F938989%2Fea05107e-0b98-4be2-b64c-fe39a6c60bcf.jpeg" alt="udanielnogueira"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/udanielnogueira/adicionando-videos-em-html-1gi" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Como Inserir Vídeo em HTML&lt;/h2&gt;
      &lt;h3&gt;Daniel Nogueira ・ Dec 17 '24&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#html&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#beginners&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#braziliandevs&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>html</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Como Inserir Vídeo em HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Tue, 17 Dec 2024 19:47:44 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/adicionando-videos-em-html-1gi</link>
      <guid>https://forem.com/udanielnogueira/adicionando-videos-em-html-1gi</guid>
      <description>&lt;p&gt;Nesse artigo, vamos aprender qual tag usamos para criar um elemento de vídeo em HTML, bem como conhecer os atributos que irão definir como o vídeo irá se comportar.&lt;/p&gt;

&lt;p&gt;Já revelando o segredo, para adicionar vídeos em um documento HTML é necessário usar a tag &lt;code&gt;video&lt;/code&gt;. Primeiro criamos a tag de &lt;code&gt;video&lt;/code&gt; e depois adicionamos o atributo controls para exibir um controle de reprodução.&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;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Em seguida, adicionamos a tag &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; com o caminho do arquivo de vídeo. &lt;/p&gt;

&lt;p&gt;Um detalhe interessante, também podemos adicionar mais de um arquivo com uma extensão diferente como medida de segurança, o HTML irá considerar o primeiro arquivo suportado.&lt;/p&gt;

&lt;p&gt;Nesse caso, iremos adicionar um arquivo de extensão &lt;code&gt;.mp4&lt;/code&gt;, caso o arquivo não seja suportado ou apresente algum problema, o HTML irá considerar o próximo arquivo &lt;code&gt;.webm&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Por fim, caso nenhum dos arquivos sejam suportados no navegador, podemos exibir uma mensagem de texto informado ao usuário o motivo do erro.&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;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.mp4"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.webm"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/webm"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  O seu navegador não suporta a tag de vídeo
&lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os arquivos de vídeo suportados pelo navegador são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MP4&lt;/li&gt;
&lt;li&gt;OGG&lt;/li&gt;
&lt;li&gt;WebM&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Também usamos o atributo &lt;code&gt;type&lt;/code&gt; na tag &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; para informar ao navegador o tipo de arquivo que está sendo usado, é uma boa forma de manter o HTML semântico.&lt;/p&gt;

&lt;p&gt;Esse será o resultado:&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%2F6hlh8jonjk071r21hhmy.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%2F6hlh8jonjk071r21hhmy.png" alt="Documento HTML com vídeo inserido" width="800" height="517"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Atributos da Tag de Vídeo
&lt;/h2&gt;

&lt;p&gt;Além do atributo &lt;code&gt;controls&lt;/code&gt;, podemos incluir outros atributos na tag &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;muted&lt;/code&gt; determina que o vídeo esteja mutado&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loop&lt;/code&gt; determina que o vídeo seja reproduzido em loop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;autoplay&lt;/code&gt; determina que o vídeo seja reproduzido automaticamente&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;poster&lt;/code&gt; exibe uma imagem enquanto o vídeo está carregando ou até que o usuário aperte o play
&lt;/li&gt;
&lt;/ul&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;video&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"640"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"360"&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt; &lt;span class="na"&gt;poster=&lt;/span&gt;&lt;span class="s"&gt;"./img/play.jpg"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.mp4"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./videos/landscape.webm"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"video/webm"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  O seu navegador não suporta a tag de vídeo
&lt;span class="nt"&gt;&amp;lt;/video&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No código acima, adicionamos o atributo &lt;code&gt;poster&lt;/code&gt; que exibe uma imagem até que o usuário reproduza o vídeo. O resultado será esse:&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%2Ft1lsqwihp6krhr1pe15g.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%2Ft1lsqwihp6krhr1pe15g.png" alt="Atributo poster adicionar em uma tag de vídeo em HTML" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Esse artigo abordou
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tag &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Tag &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Atributos da tag &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Autor
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/udanielnogueira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Como Inserir Som em HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Sun, 15 Dec 2024 22:54:07 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/como-adicionar-sons-em-html-56ga</link>
      <guid>https://forem.com/udanielnogueira/como-adicionar-sons-em-html-56ga</guid>
      <description>&lt;p&gt;Nesse artigo, vamos aprender qual tag usamos para criar um elemento de som em HTML, bem como conhecer os atributos que irão definir como o áudio irá se comportar.&lt;/p&gt;

&lt;p&gt;Indo direto ao ponto, para adicionar sons em um documento HTML é necessário usar a tag &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt;. Primeiro criamos a tag de &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt; e depois adicionamos o atributo &lt;code&gt;controls&lt;/code&gt; para exibir um controle de reprodução.&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;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;

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

&lt;/div&gt;



&lt;p&gt;Em seguida, adicionamos a tag &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; com o caminho do arquivo de áudio. &lt;/p&gt;

&lt;p&gt;Um detalhe interessante, também podemos adicionar mais de um arquivo com uma extensão diferente como medida de segurança, o HTML irá considerar o primeiro arquivo suportado.&lt;/p&gt;

&lt;p&gt;Nesse caso, iremos adicionar um arquivo de extensão &lt;code&gt;.wav&lt;/code&gt;, caso o arquivo não seja suportado ou apresente algum problema, o HTML irá considerar o próximo arquivo &lt;code&gt;.mp3&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Por fim, caso nenhum dos arquivos sejam suportados no navegador, podemos exibir uma mensagem de texto informado ao usuário o motivo do erro.&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;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.wav"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/wav"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.mp3"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/mp3"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  O seu navegador não suporta a tag de áudio.
&lt;span class="nt"&gt;&amp;lt;/audio&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os arquivos de áudio suportados pelo navegador são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MP3&lt;/li&gt;
&lt;li&gt;WAV&lt;/li&gt;
&lt;li&gt;OGG&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Também usamos o atributo &lt;code&gt;type&lt;/code&gt; na tag &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt; para informar ao navegador o tipo de arquivo que está sendo usado, é uma boa forma de manter o HTML semântico.&lt;/p&gt;

&lt;p&gt;Esse será o resultado:&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%2F538y4c7zgjtvtnaemrig.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%2F538y4c7zgjtvtnaemrig.png" alt="Documento HTML com áudio inserido" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Atributos da Tag de Áudio
&lt;/h2&gt;

&lt;p&gt;Além do atributo &lt;code&gt;controls&lt;/code&gt;, podemos incluir outros atributos na tag &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt;, a maioria deles são atributos que não precisam receber valor, inclusive.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;muted&lt;/code&gt; determina que o áudio esteja mutado&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;loop&lt;/code&gt; determina que o áudio seja reproduzido em loop&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;autoplay&lt;/code&gt; determina que o áudio seja reproduzido automaticamente
&lt;/li&gt;
&lt;/ul&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;audio&lt;/span&gt; &lt;span class="na"&gt;controls&lt;/span&gt; &lt;span class="na"&gt;autoplay&lt;/span&gt; &lt;span class="na"&gt;loop&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.wav"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/wav"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;source&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"./audio/sound-effect.mp3"&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"audio/mp3"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
  O seu navegador não suporta a tag de áudio.
&lt;span class="nt"&gt;&amp;lt;/audio&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No caso do código acima, assim que a página carregar, o áudio será reproduzido automaticamente por causa do atributo &lt;code&gt;autoplay&lt;/code&gt; e continuará sendo reproduzido por causa do atributo &lt;code&gt;loop&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Esse artigo abordou
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Tag &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Tag &lt;code&gt;&amp;lt;source&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Atributos da tag &lt;code&gt;&amp;lt;audio&amp;gt;&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Autor
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/udanielnogueira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Anatomia de um Elemento HTML</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Sat, 14 Dec 2024 14:58:06 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/anatomia-de-um-elemento-html-5207</link>
      <guid>https://forem.com/udanielnogueira/anatomia-de-um-elemento-html-5207</guid>
      <description>&lt;p&gt;Nesse artigo, vamos explorar a anatomia de um elemento HTML, conhecer os atributos e saber reconhecer quando um elemento é vazio ou não.&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%2F6eti03ldly1x1qyo0y1m.jpg" 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%2F6eti03ldly1x1qyo0y1m.jpg" alt="Anatomia de um elemento em HTML" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O elemento de parágrafo da imagem acima é divido em 3 partes:&lt;/p&gt;

&lt;h3&gt;
  
  
  Tag de abertura
&lt;/h3&gt;

&lt;p&gt;A tag de abertura é definida a partir do elemento que desejamos criar no HTML, se desejamos criar um elemento de parágrafo, então devemos usar uma tag de abertura &lt;code&gt;&amp;lt;p&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A tag de abertura foi criada a partir do sinal &lt;code&gt;&amp;lt;&lt;/code&gt;, seguido do nome da tag &lt;code&gt;p&lt;/code&gt; e do sinal &lt;code&gt;&amp;gt;&lt;/code&gt;.&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%2Fmtwgvzclgra60k23cp83.jpg" 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%2Fmtwgvzclgra60k23cp83.jpg" alt="Tag de abertura em HTML" width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Conteúdo
&lt;/h3&gt;

&lt;p&gt;O conteúdo do elemento depende da tag que está sendo criada, no caso de um elemento parágrafo, o conteúdo será texto. Basicamente, o conteúdo é tudo aquilo entre a tag de abertura e a tag de fechamento.&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%2Fw7vows3p2ub940ggoloi.jpg" 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%2Fw7vows3p2ub940ggoloi.jpg" alt="Conteúdo de tag em HTML" width="800" height="411"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tag de fechamento
&lt;/h3&gt;

&lt;p&gt;Usaremos o mesmo nome da tag em questão, a diferença é que devemos incluir uma barra após o sinal de menor, dessa forma: &lt;code&gt;&amp;lt;/p&amp;gt;&lt;/code&gt;. &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%2Fr53sdnprfd4q8nsqrlv9.jpg" 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%2Fr53sdnprfd4q8nsqrlv9.jpg" alt="Tag de fechamento em HTML" width="800" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Elementos com atributos
&lt;/h2&gt;

&lt;p&gt;Elementos também podem ter atributos que possuem informações extras para uma tag, importante ressaltar que os atributos devem ser inseridos na tag de abertura e não no conteúdo do elemento.&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%2Fk6febb1rhg6npbzofvfy.jpg" 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%2Fk6febb1rhg6npbzofvfy.jpg" alt=" " width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;O atributo &lt;code&gt;class&lt;/code&gt; é um atributo que deve receber um valor. Para isso, é necessário usar o sinal &lt;code&gt;=&lt;/code&gt; e atribuímos um valor para ele entre aspas. Mas também existem atributos que não recebem valor, como o atributo &lt;code&gt;required&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Elementos Vazios
&lt;/h2&gt;

&lt;p&gt;Até agora vimos elementos que precisam de conteúdo, mas no HTML também existem elementos que não possuem conteúdo, chamamos esses elementos de elementos vazios.&lt;/p&gt;

&lt;p&gt;Esses elementos não possuem uma tag de fechamento e nem precisam envolver qualquer tipo de conteúdo para cumprir seu objetivo, um exemplo de elemento vazio é a tag de imagem.&lt;/p&gt;

&lt;p&gt;Uma observação importante: os elementos vazios possuem uma barra antes do sinal de maior.&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%2Fzsyjqnakzdaha8ha81be.jpg" 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%2Fzsyjqnakzdaha8ha81be.jpg" alt="Elementos vazios em HTML" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Esse artigo abordou
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Anatomia de um elemento HTML&lt;/li&gt;
&lt;li&gt;Elementos com atributos&lt;/li&gt;
&lt;li&gt;Elementos vazios&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Autor
&lt;/h2&gt;

&lt;p&gt;Daniel Nogueira&lt;br&gt;
&lt;a href="https://www.linkedin.com/in/udanielnogueira/" rel="noopener noreferrer"&gt;https://www.linkedin.com/in/udanielnogueira/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>html</category>
      <category>beginners</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Creating Delays in Python Programs</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Wed, 04 Jan 2023 19:30:54 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/delays-in-python-137f</link>
      <guid>https://forem.com/udanielnogueira/delays-in-python-137f</guid>
      <description>&lt;p&gt;Short breaks can be fun and functional in some programs. Creating a waiting time before displaying a text, for example, can make the process of using that program more real.&lt;/p&gt;

&lt;p&gt;For that, let's import the &lt;code&gt;sleep()&lt;/code&gt; method from the &lt;code&gt;time&lt;/code&gt; module:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sleep&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And now just call the &lt;code&gt;sleep()&lt;/code&gt; method specifying the time in seconds:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# 3 second delay
&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# 1 minute delay
&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Example of how delays can make a program more real:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Jo&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ken&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Po&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Criando Pausas em Programas em Python</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Wed, 04 Jan 2023 19:23:37 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/criando-pausas-em-programas-em-python-3ajc</link>
      <guid>https://forem.com/udanielnogueira/criando-pausas-em-programas-em-python-3ajc</guid>
      <description>&lt;p&gt;Pausas curtas podem ser divertidas e funcionais em alguns programas. Criar um tempo de espera antes de apresentar um texto, por exemplo, pode tornar o processo de uso daquele programa mais real.&lt;/p&gt;

&lt;p&gt;Tecnicamente isso é um delay, e não uma pausa no sentido literal. Para tal coisa, vamos importar o método &lt;code&gt;sleep()&lt;/code&gt; do módulo &lt;code&gt;time&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;sleep&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E agora basta chamar o método &lt;code&gt;sleep()&lt;/code&gt; especificando o tempo em segundos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;# Pausa de 3 segundos
&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;# Pausa de 1 minuto
&lt;/span&gt;&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemplo de como as pausas podem tornar um programa mais real:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Jo&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Ken&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Pô!&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;sleep&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>braziliandevs</category>
    </item>
    <item>
      <title>Date and Time in Python</title>
      <dc:creator>Daniel Nogueira</dc:creator>
      <pubDate>Wed, 04 Jan 2023 18:19:56 +0000</pubDate>
      <link>https://forem.com/udanielnogueira/date-and-time-in-python-1ebb</link>
      <guid>https://forem.com/udanielnogueira/date-and-time-in-python-1ebb</guid>
      <description>&lt;p&gt;We can get data and time information in Python using the &lt;code&gt;datetime&lt;/code&gt; module. Let's import it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Date
&lt;/h2&gt;

&lt;p&gt;In the &lt;code&gt;datetime&lt;/code&gt; module we can use the &lt;code&gt;date&lt;/code&gt; class, which has &lt;code&gt;today()&lt;/code&gt; to load the current day's data:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;date&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;today&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2023-01-04
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can also get each date information separately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;day&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;today&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;
&lt;span class="n"&gt;month&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;today&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;month&lt;/span&gt;
&lt;span class="n"&gt;year&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;date&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;today&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;day&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;month&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;year&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;4
1
2023
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Time
&lt;/h2&gt;

&lt;p&gt;To get the time, we'll use the &lt;code&gt;datetime&lt;/code&gt; class and its &lt;code&gt;now()&lt;/code&gt; method:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;now&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;2023-01-04 14:28:19.041413
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that the time schedule is organized into:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;hour:minute:second.microsecond&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Time formatting
&lt;/h2&gt;

&lt;p&gt;We can change the way the time is being displayed through the &lt;code&gt;strftime()&lt;/code&gt; method. By default, we have &lt;code&gt;%d&lt;/code&gt; for day, &lt;code&gt;%m&lt;/code&gt; for month, &lt;code&gt;%y&lt;/code&gt; for year, &lt;code&gt;%H&lt;/code&gt; for hour, &lt;code&gt;%M&lt;/code&gt; for minute and &lt;code&gt;%S&lt;/code&gt; for seconds. Let's use new variables to save these formatted values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;format1&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%d/%m/%y&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;format1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;format2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;now&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;strftime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;%d.%m.%Y %H:%M:%S&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;format2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Result example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;01/04/23
04.01.2023 14:28:19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note that using &lt;code&gt;%Y&lt;/code&gt;, we have the year displayed with 4 characters.&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
