Acorda pra Web!

Tecnologia que vai mudar nossas vidas, depois do café.

Semântica no HTML – Blocos de Código

Essa semana no Tableless o post foi sobre semântica no HTML, falando sobre listas de ações.

Dos problemas com semântica, sem dúvida, listas é um dos menos preocupantes! Algumas brechinhas no HTML deixam a desejar em alguns aspectos e confundem quem está formatando o texto.

Um excelente exemplo dessa confusão é a tag <code>. Ela foi criada para exibir pequenos trechos de código, como esse no qual acabei de colocar a tag. Como podemos ver na especificação do HTML4 (e no XHTML também) ela é um elemento inline por natureza.

A dor de cabeça começa quando precisamos exibir blocos de código. Coloca em um só <code>? Coloca cada linha do bloco em um <code>? Se é um por linha o que coloco pra definir o bloco?

A alternativa mais simples é utilizar somente um <code> e quebrar as linhas de código com <br />. Isso mantém o código em uma linha só, como prometido na especificação, e quebra essa linha em várias para nos dar ilusão de múltiplas. Não é uma aberração semântica, mas também não é o correto:

HTML
<code>
SELECT nome, email, telefone<br />
FROM tabela<br />
WHERE nome = "João"<br />
</code>

A alternativa mais próxima do correto seria algo assim:

HTML
<code>SELECT nome, email, telefone</code>
<code>FROM tabela</code>
<code>WHERE nome = "João"</code>

Adicionalmente, você pode cobrir todas as linhas de código com um elemento só, usando um elemento<blockquote>, porque de fato exibir um bloco de código é citar alguém, ou apenas usando um <p class="code">.

No XHTML2 já pensaram nisso e criaram o <blockcode>, no Web Applications 1.0 (um tipo de HTML5) ainda não mostraram solução para esse problema.

E vocês? como exibem blocos de código em uma página?

4 Respostas para “Semântica no HTML – Blocos de Código”

  1. Pedro Rogério diz:

    Acho que a maneira mais correta é você utilizar um pre depois um code, e o seu CSS dar um display:block, com isso as linhas de código vão ficando uma embaixo da outra!!!

  2. Rafagd diz:

    display: block; e aquela regra que substitui o para ficar formatado e identado sem precisar de 213123213

  3. Fill diz:

    Eu sinceramente nunca usei isso. mas se fosse usar acho que o p fica mais semantico, pois um bloco de código não deixa de ser um paragrafo ;)

  4. Acorda pra Web! » Semântica no HTML - Preformatação diz:

    [...] Web Semântica (1) « Semântica no HTML – Blocos de Código [...]

Deixar um Comentário

XHTML: Você pode usar essas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>