# Projeto Terrário Parte 1: Introdução ao HTML ![Introdução ao HTML](../../../../translated_images/webdev101-html.4389c2067af68e98280c1bde52b6c6269f399eaae3659b7c846018d8a7b0bbd9.pt.png) > Sketchnote por [Tomomi Imura](https://twitter.com/girlie_mac) ## Questionário Pré-Aula [Questionário pré-aula](https://ff-quizzes.netlify.app/web/quiz/15) > Veja o vídeo > > [![Vídeo sobre Git e GitHub](https://img.youtube.com/vi/1TvxJKBzhyQ/0.jpg)](https://www.youtube.com/watch?v=1TvxJKBzhyQ) ### Introdução HTML, ou HyperText Markup Language, é o 'esqueleto' da web. Se o CSS 'veste' o seu HTML e o JavaScript lhe dá vida, o HTML é o corpo da sua aplicação web. A sintaxe do HTML reflete essa ideia, pois inclui tags como "head", "body" e "footer". Nesta lição, vamos usar HTML para estruturar o 'esqueleto' da interface do nosso terrário virtual. Ele terá um título e três colunas: uma coluna à direita e outra à esquerda onde ficarão as plantas arrastáveis, e uma área central que será o terrário com aparência de vidro. Ao final desta lição, você será capaz de ver as plantas nas colunas, mas a interface parecerá um pouco estranha; não se preocupe, na próxima seção você adicionará estilos CSS para melhorar a aparência da interface. ### Tarefa No seu computador, crie uma pasta chamada 'terrarium' e, dentro dela, um ficheiro chamado 'index.html'. Pode fazer isso no Visual Studio Code após criar a pasta do terrário, abrindo uma nova janela do VS Code, clicando em 'abrir pasta' e navegando até à nova pasta. Clique no pequeno botão 'ficheiro' no painel do Explorador e crie o novo ficheiro: ![explorador no VS Code](../../../../translated_images/vs-code-index.e2986cf919471eb984a0afef231380c8b132b000635105f2397bd2754d1b689c.pt.png) Ou Use estes comandos no seu git bash: * `mkdir terrarium` * `cd terrarium` * `touch index.html` * `code index.html` ou `nano index.html` > Ficheiros index.html indicam a um navegador que este é o ficheiro padrão numa pasta; URLs como `https://anysite.com/test` podem ser construídos usando uma estrutura de pastas que inclui uma pasta chamada `test` com `index.html` dentro dela; `index.html` não precisa aparecer no URL. --- ## O DocType e as tags html A primeira linha de um ficheiro HTML é o seu doctype. É um pouco surpreendente que seja necessário ter esta linha no topo do ficheiro, mas ela informa navegadores mais antigos que a página deve ser renderizada em modo padrão, seguindo a especificação atual do HTML. > Dica: no VS Code, pode passar o cursor sobre uma tag para obter informações sobre o seu uso nos guias de referência do MDN. A segunda linha deve ser a tag de abertura ``, seguida pela sua tag de encerramento ``. Estas tags são os elementos raiz da sua interface. ### Tarefa Adicione estas linhas no topo do seu ficheiro `index.html`: ```HTML ``` ✅ Existem alguns modos diferentes que podem ser determinados ao definir o DocType com uma string de consulta: [Modo Quirks e Modo Padrão](https://developer.mozilla.org/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Estes modos eram usados para suportar navegadores muito antigos que não são normalmente utilizados hoje em dia (Netscape Navigator 4 e Internet Explorer 5). Pode manter-se à declaração padrão do doctype. --- ## O 'head' do documento A área 'head' do documento HTML inclui informações cruciais sobre a sua página web, também conhecidas como [metadados](https://developer.mozilla.org/docs/Web/HTML/Element/meta). No nosso caso, informamos ao servidor web, para o qual esta página será enviada para renderização, estas quatro coisas: - o título da página - metadados da página, incluindo: - o 'conjunto de caracteres', que informa sobre a codificação de caracteres usada na página - informações do navegador, incluindo `x-ua-compatible`, que indica que o navegador IE=edge é suportado - informações sobre como o viewport deve comportar-se ao ser carregado. Definir o viewport com uma escala inicial de 1 controla o nível de zoom quando a página é carregada pela primeira vez. ### Tarefa Adicione um bloco 'head' ao seu documento entre as tags de abertura e encerramento ``. ```html Welcome to my Virtual Terrarium ``` ✅ O que aconteceria se definisse uma tag meta de viewport assim: ``? Leia mais sobre o [viewport](https://developer.mozilla.org/docs/Web/HTML/Viewport_meta_tag). --- ## O `body` do documento ### Tags HTML No HTML, adiciona-se tags ao ficheiro .html para criar elementos de uma página web. Cada tag geralmente tem uma tag de abertura e uma de encerramento, como esta: `

olá

` para indicar um parágrafo. Crie o corpo da sua interface adicionando um conjunto de tags `` dentro do par de tags ``; o seu código agora ficará assim: ### Tarefa ```html Welcome to my Virtual Terrarium ``` Agora, pode começar a construir a sua página. Normalmente, usa-se tags `
` para criar os elementos separados numa página. Vamos criar uma série de elementos `
` que conterão imagens. ### Imagens Uma tag html que não precisa de uma tag de encerramento é a ``, porque ela tem um elemento `src` que contém todas as informações necessárias para renderizar o item na página. Crie uma pasta na sua aplicação chamada `images` e, dentro dela, adicione todas as imagens da [pasta de código fonte](../../../../3-terrarium/solution/images); (são 14 imagens de plantas). ### Tarefa Adicione essas imagens de plantas em duas colunas entre as tags ``: ```html
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
plant
``` > Nota: Spans vs. Divs. Divs são considerados elementos 'block', e Spans são 'inline'. O que aconteceria se transformasse esses divs em spans? Com este código, as plantas agora aparecem no ecrã. Parece muito feio, porque ainda não foram estilizadas com CSS, e faremos isso na próxima lição. Cada imagem tem um texto alternativo (alt) que aparecerá mesmo que não consiga ver ou renderizar uma imagem. Este é um atributo importante para incluir por questões de acessibilidade. Aprenda mais sobre acessibilidade em lições futuras; por agora, lembre-se de que o atributo alt fornece informações alternativas para uma imagem caso um utilizador, por algum motivo, não consiga visualizá-la (devido a uma conexão lenta, um erro no atributo src ou se o utilizador usar um leitor de ecrã). ✅ Reparou que cada imagem tem o mesmo texto alternativo? Isso é uma boa prática? Porquê? Consegue melhorar este código? --- ## Marcação semântica Em geral, é preferível usar 'semântica' significativa ao escrever HTML. O que isso significa? Significa usar tags HTML para representar o tipo de dados ou interação para os quais foram projetadas. Por exemplo, o texto principal de um título numa página deve usar uma tag `

`. Adicione a seguinte linha logo abaixo da sua tag de abertura ``: ```html

My Terrarium

``` Usar marcação semântica, como ter cabeçalhos como `

` e listas não ordenadas renderizadas como `
    `, ajuda leitores de ecrã a navegar por uma página. Em geral, botões devem ser escritos como `

`: ```html
``` ✅ Apesar de ter adicionado esta marcação ao ecrã, não vê absolutamente nada renderizado. Porquê? --- ## 🚀Desafio Existem algumas tags 'antigas' no HTML que ainda são divertidas de usar, embora não deva usar tags obsoletas como [estas tags](https://developer.mozilla.org/docs/Web/HTML/Element#Obsolete_and_deprecated_elements) na sua marcação. Ainda assim, consegue usar a antiga tag `` para fazer o título h1 rolar horizontalmente? (se o fizer, não se esqueça de removê-la depois) ## Questionário Pós-Aula [Questionário pós-aula](https://ff-quizzes.netlify.app/web/quiz/16) ## Revisão & Autoestudo HTML é o sistema de construção 'testado e comprovado' que ajudou a construir a web como a conhecemos hoje. Aprenda um pouco sobre a sua história estudando algumas tags antigas e novas. Consegue descobrir por que algumas tags foram descontinuadas e outras adicionadas? Que tags podem ser introduzidas no futuro? Saiba mais sobre como construir sites para a web e dispositivos móveis em [Microsoft Learn](https://docs.microsoft.com/learn/modules/build-simple-website/?WT.mc_id=academic-77807-sagibbon). ## Tarefa [Pratique o seu HTML: Crie um modelo de blog](assignment.md) --- **Aviso Legal**: Este documento foi traduzido utilizando o serviço de tradução por IA [Co-op Translator](https://github.com/Azure/co-op-translator). Embora nos esforcemos para garantir a precisão, é importante notar que traduções automáticas podem conter erros ou imprecisões. O documento original na sua língua nativa deve ser considerado a fonte autoritária. Para informações críticas, recomenda-se a tradução profissional realizada por humanos. Não nos responsabilizamos por quaisquer mal-entendidos ou interpretações incorretas decorrentes do uso desta tradução.