Elementos

  1. Estrutura básica
  2. Aninhamento

Estrutura básica

Todo elemento tem pelo menos uma tag. A estrutura de uma tag depende do tipo dela. Se for uma tag de abertura, também chamada de tag inicial, que serve para indicar que estamos começando a marcar um elemento, ela tem a seguinte estrutura:

<tag atributos>

Se for uma tag de fechamento, também conhecida como tag final, que serve para terminar a marcação de um elemento, a sintaxe é a seguinte:

</tag>

Elementos podem ter conteúdo ou não. Elementos sem conteúdo são chamados de elementos vazios. Elementos com conteúdo tem duas tags. Elementos vazios tem apenas uma tag. Essa é a sintaxe da marcação de um elemento com conteúdo:

<tag atributos>conteúdo</tag>

Já a sintaxe da marcação de um elemento vazio é a seguinte:

<tag atributos>

Uma sintaxe alternativa para um elemento vazio contém uma / antes do >, separada dos atributos por um espaço:

<tag atributos />

O mais recomendado pelos guias de estilo é usar a primeira opção.

Um exemplo de elemento com conteúdo é um parágrafo:

<p>Lorem ipsum dolor sit</p>

Veja que esse elemento possui duas tags, que são as tags inicial e final. Já o elemento <br> é um elemento vazio, e por isso possui apenas uma tag.

Como você pode ter notado, eu citei atributos nas sintaxes dos elementos. Atributos fornecem dados sobre um elemento. Atributos são especificados assim: atributo="valor". As aspas podem ser duplas ou simples e são opcionais, exceto quando o valor contém espaços. O mais recomendado pelos guias de estilo é usar aspas duplas sempre, mesmo quando elas podem ser omitidas.

Considere o elemento abaixo:

<a href="/contato" id="cta-contato">Contato</a>

Esse elemento marca um link e tem os atributos href, que especifica a URL do link e id, que define um identificador único para o elemento. Note que os atributos são colocados na tag inicial. Agora, veja um exemplo de elemento vazio com atributos:

<img src="/foo.png">

Há elementos que não tem atributos. Quando o elemento tem mais de um atributo, os atributos são separados uns dos outros por espaços.

Também há atributos booleanos. No caso deles, o que importa é se eles estão presentes ou não no elemento. Se o atributo for definido, seu valor deve ser vazio ou o próprio nome do atributo. O atributo checked é um dos atributos booleanos mais conhecidos. Exemplo de uso dele:

<input type="checkbox" checked="checked">

Vale lembrar que as tags e atributos são case-insensitive (mas não os valores dos atributos). Por isso, os elementos abaixo são válidos e equivalentes:

<img src="foo.png">
<Img Src="foo.png">
<IMG SRC="foo.png">

É uma boa prática escrever as tags e atributos sempre em letras minúsculas e isso é o mais recomendado pelos guias de estilo.

Aninhamento

O conteúdo de um elemento também pode conter outros elementos. A prática de colocar elementos dentro de outros é chamada de aninhamento. Veja um exemplo onde ocorre o aninhamento:

<section>
  <h2>Título da seção</h2>
  <p>
    Parágrafo com <a href="">link</a>.
  </p>
</section>

Note que o parágrafo (marcado pelo elemento <p>) e o título (marcado pelo elemento <h2>) estão dentro da seção (marcada pelo elemento <section>), pois fazem parte do conteúdo dela. Por sua vez, o link (marcado pelo elemento <a>) está dentro do parágrafo. Assim, podemos dizer que o elemento <section> está no primeiro nível de aninhamento, o elemento <p> está no segundo nível, e o link está no terceiro nível.

É possível aninhar múltiplos elementos dentro dos outros (assim, eu poderia colocar mais links dentro do parágrafo, assim como outros elementos também), e usar quantos níveis de aninhamento forem necessários.

Quando elementos são aninhados, você precisa sempre fechar (ou seja, colocar a tag final) todos os elementos internos de um elemento antes de fechar o elemento externo. Por isso, no exemplo que foi usado, o link foi fechado antes do parágrafo, e o parágrafo foi fechado antes da seção.