Neste artigo, vou apresentar as tags de bloco HTML5 e discutir o conceito da web semântica juntamente com as tags semânticas.
Tags de Bloco
Imagine que você precise organizar um parágrafo e uma imagem do mesmo contexto ou duas frases dentro de um parágrafo com formatação diferente. Como você pode estruturá-los de forma eficaz?
Para esse fim, temos as tags de bloco. Existem duas tags de bloco genéricas: span
e div
. Essas tags são usadas para:
- Definir uma divisão ou seção.
- Definir contêineres, principalmente a tag
div
. - Separar partes do código para estilização com CSS.
Exemplo de div
:
<div>
<div>bloco 1</div>
<div>bloco 2</div>
</div>
Exemplo de span
:
<p>O que é <span>HTML</span> e <span>CSS</span> ?</p>
A Diferença entre as Tags div
e span
A tag div
cria um contêiner com display: block
, causando uma quebra de linha após ela. Por outro lado, a tag span
cria um contêiner com display: inline
, o que significa que nenhuma quebra de linha ocorre após o span
.
Normalmente, usamos div
para criar contêineres de layout, e span
é usado para estilizar partes de textos.
Web Semântica e HTML5
Por muitos anos, os desenvolvedores front-end usaram o div
como contêiner de layout. No entanto, um div
por si só não tem significado para várias entidades, como navegadores, desenvolvedores, mecanismos de busca e leitores de tela.
Para resolver isso, o Consórcio World Wide Web (W3C) introduziu a web semântica no HTML5, resultando em tags semânticas. A Figura 1 ilustra a diferença entre HTML4 e HTML5 em termos de semântica.
Figura 1. HTML4 vs HTML5 em visualização semântica. Fonte: Alejandro-ao.com.
No HTML4, dependíamos do div
para estruturar várias seções de uma página da web. No entanto, o HTML5 introduziu uma mudança significativa, criando tags semânticas específicas para seções comuns, conferindo significado ao conteúdo.
Tags semânticas estão relacionadas ao significado do conteúdo.
Hoje em dia, usamos comumente:
-
header
para o cabeçalho da página, que pode incluir elementos como logotipos, formulários de pesquisa e nomes de autores. Geralmente, há um por seção, artigo ou corpo. -
main
para o conteúdo principal da página, com apenas um por documento. -
nav
para menus de navegação, especialmente a navegação importante ou primária. -
article
para artigos no documento. Um artigo pode ter um cabeçalho, rodapé ou seções. Ele representa conteúdo independente na página. -
section
para agrupar conteúdo relacionado no documento. -
aside
para conteúdo lateral relacionado ao conteúdo principal. -
footer
para o rodapé do documento, artigo ou seção, incluindo informações como autoria, direitos autorais e links relacionados.
A Figura 2 fornece um exemplo mais detalhado.
Figura 2. HTML5 semântico em exemplo.
Seção vs. Artigo no HTML5
Consulte esta discussão: Seção vs. Artigo HTML5.
Código Inicial Completo
Seguindo essa explicação, abaixo você encontrará um código HTML5 inicial completo. Por enquanto, ignore os atributos class
e id
.
<!DOCTYPE html>
<html>
<head>
<!-- Arquivos externos (CSS, JS) e metadados -->
</head>
<body>
<!-- Prefira usar classes para estilização; IDs são principalmente para JavaScript -->
<header class="header" id="header">
Cabeçalho da página
</header>
<nav class="nav">
Menu
</nav>
<main class="content">
<!-- Apenas um por página/documento -->
Conteúdo principal
<article>
Artigo interno
<header>Cabeçalho deste artigo</header>
<section id="introduction">
</section>
<section id="content">
</section>
<section id="summary">
</section>
<!-- É possível ter artigos dentro de seções ou vice-versa; consulte o link do stackoverflow -->
</article>
</main>
<section id="comments">
</section>
<footer class="footer">
</footer>
</body>
</html>
Explicação de cada linha do código HTML fornecido:
-
<!DOCTYPE html>
: Esta é a declaração do tipo de documento, especificando que o documento é um documento HTML5. -
<html>
: Este é o início da tag<html>
, indicando o início do documento HTML. -
<head>
: O elemento<head>
contém metainformações sobre o documento, como links para arquivos externos (CSS e JavaScript) e metadados (como o título do documento). -
<!-- Arquivos externos (CSS, JS) e metadados -->
: Este é um comentário HTML, fornecendo uma nota para quem lê o código, mas não afeta a renderização da página. Ele sugere que a seção<head>
é normalmente onde você inclui links para arquivos CSS e JavaScript externos e especifica metadados. -
<body>
: O elemento<body>
é onde o conteúdo visível da página da web é colocado. -
<!-- Prefira usar classes para estilização; IDs são principalmente para JavaScript -->
: Outro comentário HTML, dando orientações sobre o uso de classes para estilizar elementos e reservar IDs principalmente para interações com JavaScript. -
<header class="header" id="header">
: Esta linha define um elemento<header>
(<header>
) com um atributoclass
e um atributoid
. O atributoclass
está definido como "header", que pode ser usado para estilização com CSS. O atributoid
também está definido como "header", identificando exclusivamente este elemento na página. -
Cabeçalho da página
: Dentro do elemento<header>
, "Cabeçalho da página" é o conteúdo visível que será exibido como o cabeçalho da página. -
<nav class="nav">
: Esta linha define um elemento de navegação (<nav>
) com um atributoclass
definido como "nav", indicando que é um menu de navegação. -
Menu
: Dentro do elemento<nav>
, "Menu" é o conteúdo visível para o menu de navegação. -
<main class="content">
: Aqui, um elemento<main>
é definido com um atributoclass
definido como "content". O elemento<main>
geralmente contém o conteúdo principal da página. -
Conteúdo principal
: Dentro do elemento<main>
, "Conteúdo principal" é o conteúdo visível que indica o conteúdo principal da página. -
<article>
: O elemento<article>
é usado para representar um conteúdo independente, como uma postagem de blog, artigo ou notícia. -
Artigo interno
: Dentro do elemento<article>
, "Artigo interno" representa o título ou cabeçalho do artigo. -
<header>Cabeçalho deste artigo</header>
: Esta linha define outro elemento<header>
dentro do<article>
, contendo o cabeçalho ou título do artigo. -
<section id="introduction">
: Esta linha define um elemento<section>
com um atributoid
definido como "introduction", que pode ser usado para direcionar e estilizar esta seção especificamente. -
<section id="content">
: Semelhante à linha anterior, esta define outro elemento<section>
com um atributoid
definido como "content". -
<section id="summary">
: Mais um elemento<section>
é definido com um atributoid
definido como "summary". -
<!-- É possível ter artigos dentro de seções ou vice-versa; consulte o link do stackoverflow -->
: Este é outro comentário HTML, fornecendo uma nota sobre a possibilidade de aninhar artigos dentro de seções ou vice-versa. Ele também faz referência a um link do Stack Overflow para mais informações. -
</article>
: Isso marca o final do elemento<article>
, fechando-o. -
<section id="comments">
: Esta linha define um elemento<section>
com um atributoid
definido como "comments", provavelmente indicando uma seção onde os comentários ou discussões seriam inseridos. -
</section>
: Isso fecha o elemento<section>
para comentários. -
<footer class="footer">
: Aqui, um elemento<footer>
é definido com um atributoclass
definido como "footer", sugerindo que é a seção de rodapé da página. -
</footer>
: Isso fecha o elemento<footer>
. -
</body>
: Isso marca o final do elemento<body>
. -
</html>
: Esta é a tag de fechamento</html>
, indicando o fim do documento HTML.
Cada linha deste código HTML contribui para a estrutura e conteúdo de uma página da web. Os comentários fornecem informações adicionais e orientações para entender o código.
O Que Está Por Vir
Nos próximos artigos, você aprenderá como identificar uma tag.
Fique ligado!
Top comments (0)