Cos'è HTML?
HTML sta per HyperText Markup Language. Non è un linguaggio di programmazione — è un linguaggio di markup: dice al browser cosa sono le cose nella pagina.
Pensa a un giornale: ha titoli, paragrafi, foto, didascalie. HTML fa lo stesso per il web. Ogni pezzo di contenuto viene "avvolto" in un tag che dice al browser: "questo è un titolo", "questo è un paragrafo", "questa è un'immagine".
HTML descrive la struttura, non l'aspetto. Per i colori, i font, le animazioni c'è il CSS (prossimo modulo). Per la logica c'è JavaScript. HTML è sempre il punto di partenza.
I tag: come funzionano
Un tag HTML ha questa forma:
<!-- Tag di apertura Contenuto Tag di chiusura --> <p>Questo è un paragrafo.</p> <!-- Tag con attributo --> <a href="https://google.com">Vai a Google</a> <!-- Tag "vuoto" (senza contenuto, non ha chiusura) --> <br> <img src="foto.jpg" alt="Una foto">
Regole base:
- La maggior parte dei tag si apre e si chiude:
<p>...</p> - I tag si annidano (uno dentro l'altro) ma non si incrociano
- Gli attributi danno informazioni extra al tag:
href,src,class - HTML non è case-sensitive, ma si scrive tutto minuscolo per convenzione
Struttura di una pagina HTML
Ogni pagina HTML ha la stessa ossatura. Sempre. Imparala a memoria:
<!DOCTYPE html> <!-- Dice: "questo è HTML5" --> <html lang="it"> <!-- Inizio documento, lingua --> <head> <!-- Metadati (non visibili) --> <meta charset="UTF-8"> <!-- Supporto caratteri speciali --> <title>La mia pagina</title> <!-- Titolo nella tab del browser --> </head> <body> <!-- Contenuto visibile --> <h1>Ciao mondo!</h1> <p>Il mio primo sito.</p> </body> </html>
Cosa fa ogni pezzo:
<!DOCTYPE html>— Dice al browser di usare HTML5 (la versione moderna)<html>— L'elemento radice, contiene tutto<head>— Roba per il browser, non visibile nella pagina (titolo, charset, CSS, ecc.)<body>— Tutto quello che l'utente VEDE nella pagina
🔬 Prova tu — Editor Live
Modifica il codice a sinistra e guarda il risultato a destra in tempo reale:
I tag che userai di più
Titoli: h1 → h6
Ci sono 6 livelli di titolo. <h1> è il più importante (usalo una sola volta per pagina), <h6> il meno.
<h1>Titolo principale</h1> <h2>Sottotitolo</h2> <h3>Sotto-sottotitolo</h3> <!-- ...fino a h6 -->
Testo: paragrafi, grassetto, corsivo
<p>Un paragrafo di testo. Il browser ignora gli a capo nel codice — devi usare i tag.</p> <p>Testo <strong>in grassetto</strong> e <em>in corsivo</em>.</p> <br> <!-- A capo forzato (usalo poco!) --> <hr> <!-- Linea orizzontale di separazione -->
Link
<!-- Link esterno --> <a href="https://google.com">Vai a Google</a> <!-- Link che apre in nuova tab --> <a href="https://google.com" target="_blank">Google (nuova tab)</a>
Immagini
<!-- img è un tag vuoto — non ha chiusura --> <img src="foto.jpg" alt="Descrizione della foto"> <!-- Con dimensioni --> <img src="logo.png" alt="Logo" width="200">
L'attributo alt è obbligatorio nelle immagini. Serve per l'accessibilità (screen reader per persone non vedenti) e per la SEO. Non lasciarlo mai vuoto.
Liste
<!-- Lista NON ordinata (punti) --> <ul> <li>Pizza</li> <li>Pasta</li> <li>Couscous</li> </ul> <!-- Lista ORDINATA (numeri) --> <ol> <li>Primo passo</li> <li>Secondo passo</li> <li>Terzo passo</li> </ol>
🔬 Prova tu — Metti tutto insieme
Crea una mini-pagina che abbia: un titolo, un paragrafo, un link e una lista. Usa l'editor:
Organizzare la pagina: div e tag semantici
Finora abbiamo visto tag per il contenuto. Ma come organizzi le sezioni della pagina?
Il tag div
<div> è una "scatola" generica. Non ha significato proprio — serve per raggruppare elementi e poi stilizzarli con CSS.
<div> <h2>Sezione contatti</h2> <p>Email: naser@example.com</p> <p>Tel: 333 1234567</p> </div>
Tag semantici (HTML5)
HTML5 ha introdotto tag che significano qualcosa. Funzionano come div, ma dicono al browser (e a Google) cosa contengono:
<header> <!-- Intestazione del sito (logo, menu) --> <nav> <!-- Menu di navigazione --> <a href="/">Home</a> <a href="/chi-sono">Chi sono</a> </nav> </header> <main> <!-- Contenuto principale --> <article> <!-- Un articolo/post --> <h1>Il mio primo post</h1> <p>Contenuto...</p> </article> <section> <!-- Una sezione della pagina --> <h2>Servizi</h2> </section> </main> <footer> <!-- Piede pagina --> <p>© 2026 Naser</p> </footer>
Usa i tag semantici quando puoi (header, nav, main, footer, article, section). Usa div solo quando nessun tag semantico ha senso. Google e gli screen reader ti ringrazieranno.
🏋️ Esercizio: La tua pagina personale
Metti in pratica tutto quello che hai imparato. Crea una pagina personale con:
La tua pagina deve avere:
- Struttura completa (DOCTYPE, html, head, body)
- Un
<title>nel head - Un
<header>con il tuo nome come<h1> - Un
<main>con:- Un paragrafo che ti descrive (usa
<strong>e<em>) - Una lista delle tue competenze o interessi
- Un link al tuo sito preferito
- Un paragrafo che ti descrive (usa
- Un
<footer>con il copyright
Inizia dalla struttura base (DOCTYPE, html, head, body), poi aggiungi i tag semantici uno alla volta. Non serve che sia bello — quello arriva con il CSS nel prossimo modulo!
📝 Test di verifica
Vediamo se hai capito le basi. Rispondi a tutte le domande:
1. Cosa significa HTML?
2. Quale tag contiene il contenuto visibile della pagina?
3. Come si crea un link che apre in una nuova tab?
4. Quale di questi NON è un tag semantico HTML5?
5. Quale attributo è obbligatorio nel tag <img>?
6. Qual è la differenza tra <ul> e <ol>?
🎓 BONUS — Per la lode (queste vanno oltre il modulo)
7. 🎓 Cosa succede se metti un <div> dentro un <p>?
8. 🎓 A cosa serve l'attributo charset="UTF-8" nel <meta>?
9. 🎓 Se devi scegliere tra <b> e <strong>, quale è "più corretto" e perché?