Modelos de conteúdo em html5

Há pequenas regras básicas que nós já conhecemos e que estão no HTML desde o início. Estas regras definem onde os elementos podem ou não estar. Se eles podem ser filhos ou pais de outros elementos e quais os seus comportamentos.

Dentre todas as categorias de modelos de conteúdo, existem dois tipos de elementos: elementos de linha e de bloco.
Os elementos de linha marcam, na sua maioria das vezes, texto. Alguns exemplos: a, strong, em, img, input, abbr, span.

Os elementos de blocos são como caixas, que dividem o conteúdo nas seções do layout.

Abaixo segue algumas premissas que você precisa relembrar e conhecer:

  •  Os elementos de linha podem conter outros elementos de linha, dependendo da categoria que ele se encontra. Por exemplo: o elemento a não pode conter o elemento label.
  •  Os elementos de linha nunca podem conter elementos de bloco.
  •  Elementos de bloco sempre podem conter elementos de linha.
  •  Elementos de bloco podem conter elementos de bloco, dependendo da categoria que ele se encontra. Por exemplo, um parágrafo não pode conter um DIV. Mas o contrário é possível.

Estes dois grandes grupos podem ser divididos em categorias. Estas categorias dizem qual modelo de conteúdo o elemento trabalha e como pode ser seu comportamento.

Categorias

Cada elemento no HTML pode ou não fazer parte de um grupo de elementos com características similares. As categorias estão a seguir. Manteremos os nomes das categorias em inglês para que haja um melhor entendimento:

  •  Metadata content
  •  Flow content
  •  Sectioning content
  •  Heading content
  •  Phrasing content
  •  Embedded content
  •  Interactive content

Abaixo segue como as categorias estão relacionadas de acordo com o WHATWG:

image

Metadata content

Os elementos que compõe a categoria Metadata são:

  •  base
  •  command
  •  link
  •  meta
  •  noscript
  •  script
  •  style
  •  title

Este conteúdo vem antes da apresentação, formando uma relação com o documento e seu conteúdo com outros documentos que distribuem informação por outros meios.

Flow content

A maioria dos elementos utilizados no body e aplicações são categorizados como Flow Content. São eles:

  •  a
  •  abbr
  •  address
  •  area (se for um decendente de um elemento de mapa)
  •  article
  •  aside
  •  audio
  •  b
  •  bdo
  •  blockquote
  •  br
  •  button
  •  canvas
  •  cite
  •  code
  •  command
  •  datalist
  •  del
  •  details
  •  dfn
  •  div
  •  dl
  •  em
  •  embed
  •  fieldset
  •  figure
  •  footer
  •  form
  •  h1
  •  h2
  •  h3
  •  h4
  •  h5
  •  h6
  •  header
  •  hgroup
  •  hr
  •  i
  •  iframe
  •  img
  •  input
  •  ins
  •  kbd
  •  keygen
  •  label
  •  link (Se o atributo itemprop for utilizado)
  •  map
  •  mark
  •  math
  •  menu
  •  meta (Se o atributo itemprop for utilizado)
  •  meter
  •  nav
  •  noscript
  •  object
  •  ol
  •  output
  •  p
  •  pre
  •  progress
  •  q
  •  ruby
  •  samp
  •  script
  •  section
  •  select
  •  small
  •  span
  •  strong
  •  style (Se o atributo scoped for utilizado)
  •  sub
  •  sup
  •  svg
  •  table
  •  textarea
  •  time
  •  ul
  •  var
  •  video
  •  wbr
  •  Text

Por via de regra, elementos que seu modelo de conteúdo permitem inserir qualquer elemento que se encaixa no Flow Content, devem ter pelo menos um descendente de texto ou um elemento descendente que faça parte da categoria embedded.

Sectioning content

Estes elementos definem um grupo de cabeçalhos e rodapés.

  •  article
  •  aside
  •  nav
  •  section

Basicamente são elementos que juntam grupos de textos no documento.

Heading content

Os elementos da categoria Heading definem uma seção de cabeçalhos, que podem estar contidos em um elemento na categoria Sectioning.

  •  h1
  •  h2
  •  h3
  •  h4
  •  h5
  •  h6
  •  hgroup

Phrasing content

Fazem parte desta categoria elementos que marcam o texto do documento, bem como os elementos que marcam este texto dentro do elemento de parágrafo.

  •  a
  •  abbr
  •  area (se ele for descendente de um elemento de mapa)
  •  audio
  •  b
  •  bdo
  •  br
  •  button
  •  canvas
  •  cite
  •  code
  •  command
  •  datalist
  •  del (se ele contiver um elemento da categoria de Phrasing)
  •  dfn
  •  em
  •  embed
  •  i
  •  iframe
  •  img
  •  input
  •  ins (se ele contiver um elemento da categoria de Phrasing)
  •  kbd
  •  keygen
  •  label
  •  link (se o atributo itemprop for utilizado)
  •  map (se apenas ele contiver um elemento da categoria de Phrasing)
  •  mark
  •  math
  •  meta (se o atributo itemprop for utilizado)
  •  meter
  •  noscript
  •  object
  •  output
  •  progress
  •  q
  •  ruby
  •  samp
  •  script
  •  select
  •  small
  •  span
  •  strong
  •  sub
  •  sup
  •  svg
  •  textarea
  •  time
  •  var
  •  video
  •  wbr
  •  Text

Embedded content

Na categoria Embedded, há elementos que importam outra fonte de informação para o documento.

  •  audio
  •  canvas
  •  embed
  •  iframe
  •  img
  •  math
  •  object
  •  svg
  •  video

Interactive content

Interactive Content são elementos que fazem parte da interação de usuário.

  •  a
  •  audio (se o atributo control for utilizado)
  •  button
  •  details
  •  embed
  •  iframe
  •  img (se o atributo usemap for utilizado)
  •  input (se o atributo type não tiver o valor hidden)
  •  keygen
  •  label
  •  menu (se o atributo type tiver o valor toolbar)
  •  object (se o atributo usemap for utilizado)
  •  select
  •  textarea
  •  video (se o atributo control for utilizado)

Alguns elementos no HTML podem ser ativados por um comportamento. Isso significa que o usuário pode ativá-lo de alguma forma. O início da sequencia de eventos depende do mecanismo de ativação e normalmente culminam em um evento de click seguido pelo evento DOMActivate.

O user-agent permite que o usuário ative manualmente o elemento que tem este comportamento utilizando um teclado, mouse, comando de voz etc.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s