Um elemento HTML é uma parte de uma página da internet. Um elemento é qualquer objeto identificável dentro de um documento, por exemplo, um caractere, palavra, imagem, parágrafo ou célula de planilha. Em HTML, um elemento refere-se a um par de tags e seu conteúdo, ou a uma tag "vazia", que não requer tag de fechamento ou conteúdo. Um elemento típico pode conter um pedaço de texto ou uma imagem, ou talvez nada. Visão geral Elementos HTML são todos os tags que estão em arquivos HTML e que se transformam em elementos da árvore DOM. Cada elemento pode ter determinados atributos. Os elementos podem ter ainda conteúdo, incluindo outros elementos e textos. Elementos HTML representam semântica ou significado. Por exemplo, o elemento title representa o título de um documento.

Na sintaxe HTML, a maioria dos elementos são escritos com marcadores (ainda chamados de etiquetas ou tags) de abertura e um marcador de fechamento, com o conteúdo entre os dois. As etiquetas são compostas do nome do elemento, fechadas por parênteses angulares. Uma marcação de fechamento possui ainda uma barra após o parêntese inicial, para distingui-lo da marcação de abertura. Por exemplo, um parágrafo que é representado pelo elemento p seria escrito como <p>Na sintaxe HTML, a maioria dos elementos são escritas...</p> No entanto, nem todos esses elementos exigem a etiqueta de fechamento, ou mesmo a de abertura, para estar presente. Alguns elementos , os chamados elementos vazios, não possuem uma tag de fechamento. Um exemplo típico é o elemento br que representa uma quebra de linha significante, tais como em um poema ou em um endereço. Por exemplo, o endereço do dentista em Finding Nemo seria escrito como P. Sherman<br />42 Wallaby Way<br />Sydney

Atributos são especificados na etiqueta de abertura. A exemplo, o elemento abbr, que representa uma abreviatura, espera um atributo title em sua expressão. Isto seria escrito como <abbr title="Hyper Text Markup Language">HTML</abbr>

Sintaxe frame|Partes de um elementos contêineres: Etiqueta de abertura: <p ... > Atributo: nome: class valor: foo

Conteúdo: Isto é um parágrafo. Etiqueta de fechamento: </p>

completo: <p class="foo">Isto é um parágrafo</p>

Há múltiplos tipos de elementos HTML: elementos vazios, elementos de texto, e elementos normais.

Elementos vazios possuem apenas uma tag de abertura, que possui os seus respectivos atributos. Para exemplificação, o elemento link, para o qual a sintaxe é <link rel=stylesheet href=fancy.css type="text/css"> Este elemento link aponta para o navegador uma folha de estilo para ser utilizada no documento HTML. Note que na sintaxe HTML, atributos não precisam levar aspas. Ao utilizar a sintaxe XML (XHTML), por outro lado, todos os atributos devem ter aspas, e uma barra é necessária antes do último parêntese angular da etiqueta: <link rel="stylesheet" href="fancy.css" type="text/css" />

Elementos de texto são construídos com: uma etiqueta de abertura (<tag>) marcando o início do elemento, que pode ser incorporar alguns diversos atributos; uma quantidade de conteúdo textual, mas sem elementos (todas as etiquetas, a menos da etiqueta em questão, serão interpretadas como conteúdo); uma etiqueta de fechamento, na qual o nome do elemento é precedido por uma barra: </tag>. Em algumas versões do HTML, a etiqueta de fechamento é opcional para alguns elementos. A etiqueta de fechamento é obrigatória no XHTML.

Elementos normais geralmente possuem ambas marcações de abertura e fechamento / fecho, apesar de que para alguns elementos a marcação de fechamento / fecho, ou ambas marcações, podem ser omitidas. Eles são construídos de maneira semelhante: uma etiqueta de abertura (<tag>) marcando o início do elemento, que pode ser incorporar alguns diversos atributos; uma quantidade de conteúdo, incluindo textos e outros elementos; uma etiqueta de fechamento / fecho, no qual o nome do elemento é precedido por uma barra: </tag>.

Atributos definem um comportamento desejado ou indicam propriedades adicionais do elementos. A maioria dos atributos exigem um valor. No HTML, o valor pode ser adicionado sem aspas, caso não possua espaços (name=valor), ou pode ser adicionado com aspas simples ou duplas (name='valor' or name="valor"). No XML, essas aspas são compulsórias. Atributos booleanos, por outro lado, não exigem um valor a ser especificado. Um exemplo é o checked para checkboxes: <input type=checkbox checked> Na sintaxe XML, entretanto, o nome deve ser repetido no valor: <input type="checkbox" checked="checked" />

Elementos versus tags

Elementos e tags não são as mesmas coisas. As tags iniciam ou terminam um elemento no código-fonte, enquanto os elementos fazem parte do DOM, o modelo do documento para exibir a página no navegador.

Informalmente, os elementos HTML são referenciados às vezes como "tags" (um exemplo de sinédoque), apesar de que muitos prefiram restringir o termo tag estritamente a marcação delimitando o início e o fim dos elementos.

O nome de elementos (e atributos) podem ser escritos em qualquer combinação de letras maiúsculas e minúsculas no HTML, mas devem estar em minúsculas no caso do XHTML.XHTML 1.0 §4.2 A forma canônica era maiúsculas até o HTML 4, sendo usada inclusive nas especificações HTML, mas recentemente, a forma minúscula tornou-se mais comum.

Padrões de elementos

Os elementos HTML são definidos em uma série de padrões abertos de acesso livre emitidos desde 1995, inicialmente pela IETF e subsequentemente pela W3C.

Desde o começo da década de 1990, fabricantes de agentes do usuário (e.g. navegadores web) desenvolviam seus próprios elementos, alguns dos quais vieram a se tornam padrão posteriormente. Outros agentes de usuários podem não reconhecer elementos não-padrão, de modo que eles podem ser ignorados ou serem apresentados de forma inadequada.

Em 1998, XML (uma forma simplificada de SGML) introduziu um mecanismo para permitir que qualquer pessoa desenvolva seus próprios elementos e incorpore-os nos elementos XHTML, para o uso com softwares XML.XML 1.0 (A habilidade de produzir elementos adicionais é parte da eXtensibilidade no acrônimo.)

Subsequentemente, HTML 4.01 foi reescrito em uma forma compatível com XML, XHTML 1.0 (eXtensible HTML). Os elementos em cada um eram idênticos, e a maioria dos casos, documentos XHTML 1.0 válidos seriam válidos ou quase válidos em documentos HTML 4.01.

Estado dos elementos Desde a primeira versão do HTML, diversos elementos saíram de moda, e tornaram-se obsoletos em padrões posteriores, ou não aparecem neles, no caso de serem inválidos.

No momento, o estado dos elementos é complicada pela existência de três tipos de HTML 4.01 / XHTML 1.0 DTD:

Transitional, que contém elementos obsoletos, mas que ainda pretende promover um período de transição durante o qual o autor poderá atualizar suas práticas; Frameset, que são versões do Transitional DTDs que ainda permite os autores a escrever documentos com frameset; Strict, que é uma forma atualizada (em 2010) do HTML.

O primeiro padrão (HTML 2.0) continha quatro elementos obsoletos, um dos quais era inválido no HTML 3.2. Todos os quatro são inválidos no HTML 4.01 Transitional, que também deprecia cerca de dez elementos. Todos esses, junto a outros dois, são inválidos no HTML 4.01 Strict. Enquanto os elementos frame ainda estão em uso no sentido de estarem presente na versão Transitional e Frameset DTDs, não há planos de preservá-los nos padrões futuros, e suas funções podem ser vastamente substituídas, por serem muito problemáticas para acessibilidade de usuários.

Elementos de estrutura de documentos <html>...</html> O elemento raiz de um documento HTML; todos os outros elementos estão contidos neste. O elemento HTML delimita o início e o fim de um documento HTML. padronizado no HTML 2.0; ainda em uso. <head>...</head> Container for processing information and metadata for an HTML document. padronizado no HTML 2.0; ainda em uso. (Veja Elementos do cabeçalho do documento para elementos filhos.) <body>...</body> Contêiner para um conteúdo visualizável de um documento HTML. padronizado no HTML 2.0; ainda em uso. (Veja Elementos do corpo do documento para os elementos filhos.)

Elementos do cabeçalho do documento <base> Especifica um URL base para todos os href relativos e outros links no documento. Deve aparecer antes de qualquer elemento que refere-se a um recurso externo. HTML permite apenas um elemento base para cada documento. O elemento base possui atributos mas nenhum conteúdo. Um versão desenvolvida de BASE é mencionada em HTML Tags; padronizado no HTML 2.0; ainda em uso. <basefont> (obsoleto) Especifica um tamanho, tipo e cor de fonte base para o documento. Utilizada juntamente com elementos font. Depreciada em favor das folhas de estilo. Padronizado no HTML 3.2; tornado obsoleto no HTML 4.0 Transitional; invalidado no HTML 4.0 Strict. <isindex> (obsoleto) isindex pode tanto aparecer no cabeçalho do documento quanto no corpo, mas apenas uma vez no documento. Requer um motor de busca no servidor. No cabeçalho, indicaque o documento é um índice pesquisável. Visualmente apresenta uma entrada de texto de uma linha para a palavra-chave. Quando submetido, o query string é adicionado ao URL em uso e o documento é apresentando com essas palavras chaves destacadas. Geralmente se o servidor suporta essa funcionalidade, o mesmo adicionará os elementos isindex aos documentos sem a intervenção do autor. ISINDEX existia no HTML Tags; padronizado no HTML 2.0; tornado obsoleto no HTML 4.0 Transitional; invalidado no HTML 4.0 Strict. <link> Especifica links para outros documentos, tais como links anterior e posterior, ou versões alternativa.HTML 4.01 §12.3 Um uso comum é a um link para folhas de estilo externas, usando a forma: <link rel="stylesheet" type="text/css" href="url" title="description_of_style">HTML 4.01 §14.3.2 Um uso menos comum, mas importante, é para fornecer hints de navegação consistentemente através de microformatos. Várias relações comuns são definidas, que podem ser expostos para os usuários através da interface do navegador ao invés de diretamente na página web. <link rel="next" href="url"> Um elemento ’s head do documento pode conter vários elementos link. O elemento link possui atributos, mas nenhum conteúdo. LINK existia no HTML Internet Draft 1.2, e foi padronizado no HTML 2.0; ainda em uso. <meta> Pode ser usado para especificar metadados especiais sobre o documento, tais como autor, data de publicação, data de expiração, descrição da página ou outra informação não fornecida pelos outros elementos e atributos de cabeçalho. Devido a sua natureza genérica, elementos meta especificam pares de chave-valor associativos. Em um formulário, elementos meta podem especificar cabeçalhos HTTP que seriam enviados para um servidor web antes do conteúdo em si, por exemplo: <meta http-equiv="foo" content="bar"> — this specifies that the page should be served with an HTTP header called foo that has a value bar. Na forma geral, um elemento meta especifica os atributos name e content associado descrevendo aspectos da página HTML. Para prevenir uma possível ambiguidade, um terceiro atributo opcional, scheme, pode ser fornecido para para especificar um framework semântico que define o significado das chaves e seus valores; por exemplo: <meta name="foo" content="bar" scheme="DC">

padronizado no HTML 2.0; ainda em uso. <object>…</object> Usado para incluir objetos genéricos no cabeçalho do documento. Apesar de ser raramente usado dentro do elemento head, ele pode potencialmente ser usado para extrair dados externos e associá-los ao documento em uso. padronizado no HTML 4.0; ainda em uso. <script>…</script> Pode atuar como um contêiner para instruções de script ou um link para um script externo com o atributo opcional src.HTML 4.01 §18 Ainda utilizável no corpo do documento para gerar dinamicamente tanto blocos quanto conteúdo em linha. padronizado no HTML 3.2; ainda em uso. <style>…</style>