View on GitHub

aulas-programacao-web

Materiais de Aula - Programação de Computadores com tecnologias Web

Marcação HTML

📽 Veja esta vídeo-aula no Youtube

Escrevemos páginas utilizando arquivos de texto com a extensão .html (ou .htm) onde é escrito código de marcação em linguagem HTML. Na web, tudo é hipertexto: texto aumentado com imagens, sons, vídeos e outras mídias, todos conectados através de [hyper]links.

HTML é uma sigla para HyperText Markup Language, linguagem de marcação de hipertexto. Com ela definimos as páginas e seus conteúdos, bem como os links entre elas.

Como funciona o HTML

Marcações são feitas em partes do documento utilizando tags. Uma tag é um bloco escrito entre colchetes angulares < e >, em um estilo herdado da mais abrangente linguagem XML.

Por exemplo, no texto abaixo vemos uma marcação de parágrafo, contendo um texto:

<p>Não existem métodos fáceis para resolver problemas difíceis.</p>

Dizemos que:

Elementos de texto são exibidos pelos navegadores de maneira a simplificar a leitura. Não são considerados espaços além do primeiro, nem quebras de linha. Podemos adicionar uma quebra de linha usando a tag br:

<p>
    Não existem métodos fáceis para resolver problemas difíceis.
    <br />
    René Descartes
</p>

Podemos escrever tags aninhadas (dentro) de outras tags. Veja um exemplo usando a tag strong, que denota que um trecho é importante:

<p>
    <strong>Não existem métodos fáceis para resolver problemas difíceis.</strong>
    <br />
    René Descartes
</p>

Agora a primeira frase foi marcada como importante, e o navegador vai destacá-la em negrito. Futuramente poderemos estilizar como quisermos.

Devemos sempre fechar as tags na ordem que abrimos, mantendo a árvore coesa. O seguinte exemplo não deve ser seguido:

<p>Texto <strong>inicial, que continua...</p>
<p>... em outro</strong> parágrafo.</p>

Tags não são case-sensitive, porém devemos utilizá-las sempre em letras minúsculas.

Sempre feche as tags!

Algumas tags podem ter seu conteúdo modificado utilizando atributos. No exemplo abaixo:

    <img src="logo.png" alt="Logotipo do Dev Web" />

Outro exemplo de atributo, é border da tag table. Ele indica que a tabela deve ser renderizada com bordas, com a sua presença indicando um valor booleano verdadeiro e sua ausência, falso.

<table border>
    ...
</table>

Sempre escrevemos os valores de um atributo entre aspas duplas, mesmo que seja um valor numérico.

Comentários

São escritos entre <!-- e -->, e podem se estender por várias linhas.

    <!-- Comentário de uma linha -->
    
    <!-- Comentário de
    várias linhas -->

Documento mínimo

Existem vários templates de documento mínimo para uma página, e esses padrões mudam conforme a linguagem e os navegadores evoluem. Para este curso, utilizaremos o template padrão do Emmet:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

As tags mais comuns do cabeçalho são:

Elementos do corpo do documento - body

Os elementos citados a seguir só devem ser utilizados dentro de body.

Texto

Use h1h6 para definir títulos em 6 níveis/sub-níveis. Exemplo:

    <h1>História</h1>
    <p>...</p>
    <h2>História do Brasil</h2>
    <p>...</p>
    <h3>Guerra de Canudos</h3>
    <p>...</p>
    <h3>Diretas Já</h3>
    <p>...</p>
    <h2>História do Japão</h2>
    <p>...</p>

Esse código gerará uma árvore de subtítulos estruturalmente semelhante a:

Use p para definir parágrafos. Parágrafos subsequentes são espaçados por uma linha por padrão. Não há tabulação, como em português.

Use br para quebrar uma linha forçadamente dentro de um parágrafo. hr faz o mesmo, e ainda traça uma linha horizontal.

💡 Use Lorem Ipsum para preencher espaços de parágrafo enquanto não possui o texto final. Isso ajuda a visualizar o seu design. No VsCode, digite lorem e pressione Tab ou Enter para inserir.

Elementos semânticos de texto

Há muitos outros, mas sempre tome cuidado para não utilizá-los como formatação, e sim como indicação do seu significado.

Imagens

Usamos a tag img.

Exemplo (com imagem hospedada externamente):

<img src="http://eteab.com.br/cms/wp-content/uploads/2014/07/banner_logo2.png" alt="Banner da Etec" />

Usamos a tag a, com o atributo href.

Todo o conteúdo entre <a ...> e </a> será clicável e remeterá ao URL indicado. Pode ser texto, imagem ou qualquer outra tag.

Se for uma URL completa, o usuário para lá será redirecionado. Se for um nome de arquivo, ele será procurado na mesma pasta (ou no caminho relativo). Use essa característica para criar várias páginas no seu site!

Exemplo de link com imagem de um gato, que abre outra aba com site externo (página do autor da foto):

    <a href="https://www.pexels.com/pt-br/@kerber" target="_blank">
        <img src="pexels-marko-blazevic-774731.jpg" alt="Imagem de um gato">
    </a>

Listas

Uma lista pode ser ordenada ol ou não ordenada ul, e pode conter itens e/ou outras listas.

Exemplo 1:

    <ol>
        <li>Senna</li>
        <li>Schumacher</li>
        <li>Prost</li>
    </ol>

Indica algo como:

  1. Senna
  2. Schumacher
  3. Prost

Exemplo 2:

    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
    </ul>

Indica algo como:

Exemplo 3:

    <ol>
        <li>Item numerado</li>
        <li>Item numerado</li>
        <ul>
            <li>Sub-item não numerado</li>
            <li>Sub-item não numerado</li>
            <li>Sub-item não numerado</li>
        </ul>
        <li>Item numerado</li>
    </ol>

Indica algo como:

  1. Item numerado
  2. Item numerado
    • Sub-item não numerado
    • Sub-item não numerado
    • Sub-item não numerado
  3. Item numerado

Tabelas

Veja o exemplo:

    <table border>
        <thead>
            <tr>
                <th>Coluna 1</th>
                <th>Coluna 2</th>
                <th>Coluna 3</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>C1 x L1</td>
                <td>C2 x L1</td>
                <td>C3 x L1</td>
            </tr>
            <tr>
                <td>C1 x L2</td>
                <td>C2 x L2</td>
                <td>C3 x L2</td>
            </tr>
            <tr>
                <td>C1 x L3</td>
                <td>C2 x L3</td>
                <td>C3 x L3</td>
            </tr>
        </tbody>
    </table>

A tabela acima indica algo como:

Coluna 1 Coluna 2 Coluna 3
C1 x L1 C2 x L1 C3 x L1
C1 x L2 C2 x L2 C3 x L2
C1 x L3 C2 x L3 C3 x L3

Células podem conter qualquer tipo de conteúdo, inclusive outras tabelas. Porém, não use isso para definir um leiaute para seu site. Há ferramentas muito melhores para isso!

Incorporando conteúdo externo

Alguns serviços permitem que seus conteúdos sejam incorporados em sites externos. Para fazê-lo, copie o código disponibilizado e cole em sua página (geralmente em opções como compartilhar ou publicar).

Veja alguns exemplos:

YouTube

<iframe width="560" height="315" src="https://www.youtube.com/embed/_o0C4-YX4qI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
<iframe width="560" height="315" src="https://www.youtube.com/embed/_o0C4-YX4qI" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

Google Apresentações

<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSENJRXRzwdxu0iXMhUr0qbM5IoxHjXNklT8BvSn6X05FO1YDPmlTvvt1dfuehqIvwsRJZCDu1a_x5H/embed?start=false&loop=false&delayms=3000" frameborder="0" width="640" height="389" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vSENJRXRzwdxu0iXMhUr0qbM5IoxHjXNklT8BvSn6X05FO1YDPmlTvvt1dfuehqIvwsRJZCDu1a_x5H/embed?start=false&loop=false&delayms=3000" frameborder="0" width="640" height="389" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>

Google Maps e Google Street View

<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d7314.907980993128!2d-46.637349877712474!3d-23.55213298874953!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94ce59aa220b74bd%3A0x6412aad263604c19!2zU8OpLCBTw6NvIFBhdWxvIC0gU1A!5e0!3m2!1spt-BR!2sbr!4v1614302451657!5m2!1spt-BR!2sbr" width="400" height="300" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d7314.907980993128!2d-46.637349877712474!3d-23.55213298874953!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x94ce59aa220b74bd%3A0x6412aad263604c19!2zU8OpLCBTw6NvIFBhdWxvIC0gU1A!5e0!3m2!1spt-BR!2sbr!4v1614302451657!5m2!1spt-BR!2sbr" width="400" height="300" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
<iframe src="https://www.google.com/maps/embed?pb=!4v1614302514278!6m8!1m7!1svwVI0Dv6PjaCvFxizwjteg!2m2!1d-23.55077105018473!2d-46.63294713074472!3f258.5954364186578!4f13.56251446358371!5f0.7820865974627469" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy"></iframe>
<iframe src="https://www.google.com/maps/embed?pb=!4v1614302514278!6m8!1m7!1svwVI0Dv6PjaCvFxizwjteg!2m2!1d-23.55077105018473!2d-46.63294713074472!3f258.5954364186578!4f13.56251446358371!5f0.7820865974627469" width="600" height="450" style="border:0;" allowfullscreen="" loading="lazy"></iframe>