giovedì 5 marzo 2026

Corso di HTML: 6 Introduzione a JavaScript

6 – Introduzione a JavaScript

In questo modulo ci concentreremo su JavaScript, il linguaggio di programmazione che permette di rendere le pagine web interattive. Con JavaScript non ci limitiamo più a contenuti statici: possiamo rispondere alle azioni dell’utente, modificare testi, immagini e stili direttamente nel browser, e creare funzionalità dinamiche come menu interattivi, slideshow, calcoli automatici e molto altro.

Inserire Script in una Pagina HTML

Il primo passo per usare JavaScript è imparare a inserire il codice nella pagina HTML. Ci sono tre metodi principali:

  1. Inline: il codice JavaScript è scritto direttamente negli attributi HTML. Ad esempio:

<button onclick="alert('Ciao!')">Clicca</button>

In questo caso, quando l’utente clicca sul bottone, viene mostrato un alert con il messaggio “Ciao!”. Questo metodo è utile per piccole azioni veloci, ma non è consigliato per progetti complessi perché mescola codice e contenuto.

  1. Internal: il codice JavaScript viene inserito all’interno di un tag <script> nella pagina HTML, di solito prima della chiusura del <body>:

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Esempio JavaScript</title>
</head>
<body>
<h1 id="titolo">Benvenuti</h1>
<button onclick="cambiaTesto()">Cambia Testo</button>
<script>
function cambiaTesto() {
document.getElementById('titolo').innerText = 'Testo Modificato!';
}
</script>
</body>
</html>

Qui, il codice JavaScript è organizzato all’interno del documento e può gestire più elementi senza creare confusione.

  1. Esterno: il codice viene messo in un file separato, ad esempio script.js, e collegato con:

<script src="script.js"></script>

Questo metodo è il più consigliato per siti complessi, perché permette di separare contenuto e comportamento, facilitando manutenzione e aggiornamenti.

Variabili e Funzioni

Variabili

Le variabili sono contenitori che memorizzano dati. In JavaScript possiamo dichiararle con:

let nome = 'Mario'; // variabile modificabile
const PI = 3.1416; // costante, non modificabile
var eta = 25; // vecchio metodo, sconsigliato

Le variabili permettono di memorizzare numeri, testi, valori booleani e molto altro, per poi usarli nei calcoli o nelle funzioni.

Funzioni

Le funzioni sono blocchi di codice riutilizzabili:

function saluta(nome) {
alert('Ciao, ' + nome + '!');
}
saluta('Mario');

In questo esempio, la funzione saluta prende un parametro (nome) e mostra un alert personalizzato. Possiamo richiamarla tutte le volte che vogliamo.

Interazioni con l’Utente

JavaScript permette di interagire direttamente con l’utente tramite finestre di dialogo:

  • alert(): mostra un messaggio

  • prompt(): riceve un input dall’utente

  • confirm(): chiede conferma (OK/Annulla)

Esempio pratico:

let nome = prompt('Inserisci il tuo nome:');
alert('Benvenuto, ' + nome + '!');

In questo modo possiamo raccogliere informazioni dall’utente e usarle immediatamente per personalizzare la pagina.

Manipolazione del DOM

Il DOM (Document Object Model) è una rappresentazione della struttura HTML della pagina. Con JavaScript possiamo modificare testi, immagini, stili e contenuti dinamicamente.

Esempio: Mostrare o nascondere contenuti

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Interattività</title>
</head>
<body>
<h2 id="titolo">Contenuto Segreto</h2>
<p id="testo">Questo testo può essere nascosto o mostrato.</p>
<button onclick="toggleTesto()">Mostra/Nascondi</button>
<script>
function toggleTesto() {
let p = document.getElementById('testo');
if(p.style.display === 'none') {
p.style.display = 'block';
} else {
p.style.display = 'none';
}
}
</script>
</body>
</html>

Spiegazione

  • document.getElementById('testo') seleziona l’elemento HTML con id testo.

  • p.style.display controlla se l’elemento è visibile o nascosto.

  • La funzione toggleTesto() cambia lo stato ogni volta che l’utente clicca il bottone.

Perfetto! Possiamo sviluppare in maniera approfondita e narrativa gli esercizi operativi di JavaScript, con spiegazioni dettagliate, esempi di codice pronti da copiare e consigli pratici su cosa avviene in ogni passaggio. Suddividiamoli in paragrafi chiari.

Mini-Esercizi Operativi di JavaScript

1 – Modifica del Testo

In questo esercizio creeremo un pulsante che, quando cliccato, cambia il contenuto di un paragrafo. Questo permette di comprendere come manipolare il DOM e rispondere a eventi dell’utente.

<p id="paragrafo">Questo testo può cambiare.</p>
<button onclick="cambiaParagrafo()">Clicca qui</button>
<script>
function cambiaParagrafo() {
document.getElementById('paragrafo').innerText = "Il testo è stato modificato!";
}
</script>

Spiegazione:

  • document.getElementById('paragrafo') seleziona il paragrafo.

  • innerText modifica il contenuto testuale.

  • La funzione cambiaParagrafo() viene eseguita al click del bottone.

2 – Input dell’Utente

Chiederemo all’utente di inserire il suo colore preferito e cambieremo lo sfondo della pagina di conseguenza.

<button onclick="cambiaColore()">Scegli il tuo colore</button>
<script>
function cambiaColore() {
let colore = prompt("Inserisci il tuo colore preferito (nome o codice esadecimale):");
document.body.style.backgroundColor = colore;
}
</script>

Spiegazione:

  • prompt() mostra una finestra per inserire dati.

  • document.body.style.backgroundColor cambia il colore dello sfondo del body.

  • Questo esercizio aiuta a collegare input dell’utente e modifiche dinamiche della pagina.

3 – Funzione con Parametro: calcolaArea

Creiamo una funzione calcolaArea che riceve base e altezza come parametri e mostra l’area di un rettangolo.

<button onclick="mostraArea()">Calcola Area</button>
<script>
function calcolaArea(base, altezza) {
return base * altezza;
}
function mostraArea() {
let base = parseFloat(prompt("Inserisci la base del rettangolo:"));
let altezza = parseFloat(prompt("Inserisci l'altezza del rettangolo:"));
alert("L'area del rettangolo è: " + calcolaArea(base, altezza));
}
</script>

Spiegazione:

  • parseFloat() converte il testo inserito in numero.

  • calcolaArea() prende due parametri e restituisce il risultato.

  • mostraArea() gestisce l’interazione con l’utente.

4 – Mostra/Nascondi Multiplo

Creiamo due paragrafi con due bottoni indipendenti per mostrarli o nasconderli.

<p id="par1">Primo paragrafo</p>
<button onclick="toggle('par1')">Mostra/Nascondi 1</button>
<p id="par2">Secondo paragrafo</p>
<button onclick="toggle('par2')">Mostra/Nascondi 2</button>
<script>
function toggle(id) {
let elemento = document.getElementById(id);
if(elemento.style.display === "none") {
elemento.style.display = "block";
} else {
elemento.style.display = "none";
}
}
</script>

Spiegazione:

  • La funzione toggle(id) è riutilizzabile per qualsiasi elemento passando il suo id.

  • style.display controlla la visibilità dell’elemento.

5 – Alert Personalizzati

Combiniamo prompt() e alert() per salutare l’utente con un messaggio personalizzato.

<button onclick="salutaUtente()">Saluta</button>
<script>
function salutaUtente() {
let nome = prompt("Come ti chiami?");
alert("Ciao " + nome + ", benvenuto nel sito!");
}
</script>

Spiegazione:

  • L’input dell’utente viene memorizzato in nome.

  • L’alert mostra un messaggio concatenando il testo con il valore inserito.

6 – Modifica del Testo e dei Colori di Contenuti Nascosti

Possiamo estendere gli esercizi combinando toggle del testo e cambio colore:

<p id="testoSegreto">Contenuto segreto</p>
<button onclick="mostraNascondiColore()">Mostra/Nascondi e Colora</button>
<script>
function mostraNascondiColore() {
let elemento = document.getElementById('testoSegreto');
if(elemento.style.display === 'none') {
elemento.style.display = 'block';
elemento.style.color = 'blue';
} else {
elemento.style.display = 'none';
}
}
</script>

Spiegazione:

  • Qui si modifica sia la visibilità che il colore del testo al click.

7 – Cambiare Immagine della Pagina

<img id="foto" src="immagine1.jpg" alt="Immagine iniziale" width="200">
<button onclick="cambiaImmagine()">Cambia Immagine</button>
<script>
function cambiaImmagine() {
document.getElementById('foto').src = "immagine2.jpg";
}
</script>

Spiegazione:

  • Modifica dinamica dell’attributo src dell’immagine.

  • Utile per slider o gallerie interattive.

8 – Calcolo Somma di Due Numeri

<button onclick="sommaNumeri()">Calcola Somma</button>
<script>
function sommaNumeri() {
let num1 = parseFloat(prompt("Inserisci il primo numero:"));
let num2 = parseFloat(prompt("Inserisci il secondo numero:"));
alert("La somma è: " + (num1 + num2));
}
</script>

Spiegazione:

  • Gestione numeri tramite prompt() e parseFloat().

  • Calcolo semplice con + e risultato mostrato tramite alert.

9 – Piccolo Quiz

<button onclick="quiz()">Quiz</button>
<script>
function quiz() {
let risposta = prompt("Qual è la capitale d'Italia?");
if(risposta.toLowerCase() === "roma") {
alert("Corretto!");
} else {
alert("Sbagliato, la risposta corretta è Roma.");
}
}
</script>

Spiegazione:

  • Confronto case-insensitive tramite toLowerCase().

  • Possibilità di creare quiz interattivi con più domande.

10 – Eventi Multipli: onclick, onmouseover, onmouseout

<p id="par">Passa il mouse qui!</p>
<script>
let p = document.getElementById('par');
p.onclick = function() { alert("Hai cliccato sul paragrafo!"); };
p.onmouseover = function() { p.style.color = "red"; };
p.onmouseout = function() { p.style.color = "black"; };
</script>

Spiegazione:

  • onclick reagisce al click.

  • onmouseover cambia colore al passaggio del mouse.

  • onmouseout ripristina lo stile.

  • Mostra come combinare diversi eventi per rendere la pagina più interattiva.

✅ Risultati Attesi

Al termine di questo modulo, sarai in grado di inserire script JavaScript nelle pagine HTML, creare variabili e funzioni, interagire con l’utente e manipolare dinamicamente il DOM, rendendo le pagine web veramente interattive e operative.

mercoledì 4 marzo 2026

Corso di HTML: 5 Layout e grafica

5 – Layout e Grafica

In questo modulo ci concentreremo sulla gestione dei layout e sull’organizzazione grafica di una pagina web. Capiremo come gli elementi HTML occupano spazio, come disporli in modo armonico e come creare componenti visivamente coerenti. Impareremo a utilizzare il box model, a gestire i vari tipi di display (inline, block, flex, grid) e a realizzare un menu di navigazione funzionale. L’obiettivo finale sarà la creazione di una homepage responsive, capace di adattarsi automaticamente a diverse dimensioni di schermo.

📌 Il Box Model

Il box model è il concetto fondamentale per comprendere come gli elementi HTML occupano spazio nella pagina. Ogni elemento è rappresentato come una scatola rettangolare composta da quattro parti principali:

  1. Content: il contenuto dell’elemento, come testo o immagini.

  2. Padding: lo spazio interno che separa il contenuto dal bordo.

  3. Border: il bordo che circonda il contenuto e il padding.

  4. Margin: lo spazio esterno che separa l’elemento dagli altri elementi vicini.

Esempio Pratico

Immaginiamo di avere un <div> che contiene del testo e vogliamo definirne dimensioni, spazi interni ed esterni:

div {
width: 300px; /* Larghezza del contenuto */
padding: 20px; /* Spazio interno tra contenuto e bordo */
border: 2px solid #333; /* Bordo nero */
margin: 15px; /* Spazio esterno */
background-color: #e0e0e0; /* Colore di sfondo della scatola */
}

Spiegazione: questo esempio mostra chiaramente come padding, border e margin si sommano alla larghezza complessiva di un elemento. Comprendere il box model è essenziale per creare layout puliti e bilanciati.

📌 Display: Inline, Block, Flex e Grid

La proprietà CSS display determina come gli elementi vengono visualizzati nella pagina.

  • Inline: l’elemento occupa solo lo spazio necessario al contenuto e non interrompe la riga. Tipici esempi: <span>, <a>.

  • Block: l’elemento occupa tutta la larghezza disponibile e va a capo. Tipici esempi: <div>, <p>, <h1>-<h6>.

Flex

display: flex consente di organizzare gli elementi in righe o colonne, con allineamenti e distribuzione dello spazio automatici. È particolarmente utile per creare layout flessibili.

.container {
display: flex;
justify-content: space-around; /* Distribuisce uniformemente lo spazio tra gli elementi */
align-items: center; /* Allinea verticalmente gli elementi al centro */
}

Spiegazione: con Flexbox possiamo facilmente allineare pulsanti, colonne o box senza usare float o calcoli manuali.

Grid

display: grid permette di creare layout complessi su righe e colonne, definendo aree precise della pagina:

.grid-container {
display: grid;
grid-template-columns: 1fr 2fr 1fr; /* Tre colonne con larghezze proporzionali */
grid-gap: 10px; /* Spazio tra le celle */
}

Spiegazione: Grid è ideale per layout complessi come home page, portfolio o dashboard, perché permette di posizionare ogni elemento con precisione e di adattare automaticamente la struttura a diversi schermi.

📌 Creazione di un Menu di Navigazione

Un menu di navigazione ben progettato è fondamentale per guidare l’utente nella pagina. Possiamo crearlo usando una lista non ordinata <ul> e stilizzarla con CSS.

HTML del Menu

<nav>
<ul class="menu">
<li><a href="#">Home</a></li>
<li><a href="#">Chi siamo</a></li>
<li><a href="#">Servizi</a></li>
<li><a href="#">Contatti</a></li>
</ul>
</nav>

CSS del Menu

.menu {
list-style-type: none; /* Rimuove i pallini della lista */
margin: 0;
padding: 0;
display: flex; /* Dispone i link in orizzontale */
justify-content: space-around; /* Spazio uniforme tra i link */
background-color: #333; /* Sfondo scuro */
}
.menu li a {
color: white; /* Testo bianco */
text-decoration: none; /* Rimuove la sottolineatura */
padding: 10px 15px; /* Spazio interno cliccabile */
}
.menu li a:hover {
background-color: #4CAF50; /* Colore di sfondo al passaggio del mouse */
}

Spiegazione: il menu è realizzato in modo che i link siano chiaramente visibili, cliccabili e reattivi al passaggio del mouse. La combinazione di Flexbox e pseudo-classi CSS rende la navigazione intuitiva e gradevole visivamente.

📝 Esercizio: Creare una Homepage Responsive

  1. Crea una struttura HTML con header, nav, section principali e footer.

  2. Applica il box model per impostare margini e padding coerenti tra i blocchi.

  3. Organizza il layout della pagina con Flexbox per header e footer, e Grid per le sezioni principali.

  4. Stilizza il menu di navigazione seguendo l’esempio, aggiungendo almeno un effetto hover personalizzato.

  5. Testa la pagina su desktop e smartphone, modificando eventualmente le dimensioni e il layout per renderla responsive.

Ecco una versione narrativa e dettagliata dell’esempio pratico “Homepage Responsive”, completa di spiegazioni passo passo, motivazioni delle scelte e indicazioni per gli esercizi operativi. Il testo è sviluppato per essere didattico, leggibile e utilizzabile dagli studenti direttamente come guida.

⚡ Esempio Pratico: Homepage Responsive

In questo esempio realizzeremo una homepage responsive, ovvero una pagina web capace di adattarsi automaticamente a schermi di diverse dimensioni, dai telefoni cellulari ai desktop. Useremo Flexbox per gestire la disposizione degli elementi e le media queries per modificare il layout a seconda della larghezza dello schermo.

Struttura HTML

Per prima cosa creiamo la struttura HTML della pagina. La scelta degli elementi è guidata da buone pratiche semantiche: <header> per l’intestazione, <nav> per la navigazione, <main> per il contenuto principale e <section> per sezioni specifiche.

<!DOCTYPE html>
<html lang="it">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Homepage Responsive</title>
  <link rel="stylesheet" href="stile.css">
</head>
<body>
  <header>
    <h1>Benvenuti</h1>
    <nav>
      <ul class="menu">
        <li><a href="#">Home</a></li>
        <li><a href="#">Servizi</a></li>
        <li><a href="#">Contatti</a></li>
        <li><a href="#">Chi siamo</a></li>
      </ul>
    </nav>
  </header>
  <main class="container">
    <section>
      <p>Benvenuti nella nostra homepage responsive. Il layout si adatta a qualsiasi dispositivo.</p>
    </section>
  </main>
</body>
</html>

Spiegazione delle scelte:

  • <meta name="viewport" content="width=device-width, initial-scale=1.0"> è fondamentale per il responsive design, perché permette al browser di scalare correttamente la pagina sui dispositivi mobili.

  • La <ul> con classe menu rende più semplice gestire il menu con CSS, distribuendo i link orizzontalmente o verticalmente secondo le necessità.

  • La classe container nel <main> ci permette di applicare Flexbox in modo coerente a tutti i contenuti principali.

CSS di Base

Per lo styling della pagina utilizziamo Flexbox e media queries per adattare il layout alle diverse dimensioni dello schermo.

body {
  font-family: Arial, sans-serif;
  margin: 0;
}

.container {
  display: flex;
  flex-direction: column;
  padding: 20px;
}

.menu {
  list-style: none;
  display: flex;
  justify-content: space-around;
  padding: 0;
  background-color: #333;
}

.menu li a {
  color: white;
  text-decoration: none;
  padding: 10px 15px;
}

.menu li a:hover {
  background-color: #4CAF50;
}

@media (min-width: 768px) {
  .container {
    flex-direction: row;
    justify-content: space-between;
  }
}

Spiegazione delle scelte:

  • flex-direction: column è usato come default per gli schermi piccoli, così il contenuto viene disposto verticalmente e leggibile su smartphone.

  • La media query @media (min-width: 768px) cambia il layout per tablet e desktop, disponendo gli elementi orizzontalmente (flex-direction: row) e distribuendo lo spazio tra loro (justify-content: space-between).

  • La personalizzazione del menu con hover migliora l’esperienza dell’utente rendendo i link più interattivi.

  • L’uso della classe .container consente di applicare Flexbox a qualsiasi blocco principale senza modificare l’HTML, rendendo il CSS modulare e riutilizzabile.

📝 Esercizi Operativi

  1. Convertire il layout in Grid: Prova a sostituire Flexbox con Grid per gestire le colonne e osserva le differenze nel comportamento del layout.

  2. Menu adattivo per schermi piccoli: Modifica le media queries in modo che il menu diventi verticale o a scomparsa su dispositivi mobili.

  3. Nuove sezioni: Aggiungi ulteriori <section> nella homepage e prova a allinearle correttamente usando Flexbox.

  4. Personalizzazione grafica: Cambia colori, margini, padding e font per creare un tema coerente e gradevole.

  5. Layout ibrido: Combina Flexbox e Grid nello stesso progetto per creare un layout complesso e completamente responsive.

Perfetto! Possiamo sviluppare in maniera dettagliata tutti gli esercizi operativi del modulo “Homepage Responsive”, spiegando come eseguirli passo passo, quali codici inserire e perché le scelte fatte sono importanti. Ti fornisco una guida narrativa completa.

1. Convertire il layout in Grid

Il primo esercizio consiste nel sostituire Flexbox con CSS Grid, una tecnica di layout che consente di gestire righe e colonne in modo più preciso.

Procedura:

  1. Modifica la classe .container nel CSS così:

.container {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr; /* tre colonne di uguale larghezza */
  grid-gap: 20px; /* spazio tra le colonne e righe */
  padding: 20px;
}
  1. Rimuovi flex-direction e justify-content perché Grid gestisce automaticamente la disposizione.

Spiegazione:

  • display: grid attiva il sistema a griglia.

  • grid-template-columns: 1fr 1fr 1fr crea tre colonne di uguale larghezza. “fr” indica una frazione dello spazio disponibile.

  • grid-gap mantiene lo spazio tra le celle della griglia senza dover usare margini manuali.

Risultato: Gli elementi all’interno di .container ora si dispongono in una griglia a tre colonne su desktop, ma si adattano verticalmente su schermi più piccoli se aggiungiamo media queries.

2. Menu adattivo per schermi piccoli

Per rendere il menu navigabile su smartphone, possiamo modificare le media queries in modo che i link si dispongano verticalmente e occupino tutta la larghezza.

Procedura:

@media (max-width: 767px) {
  .menu {
    flex-direction: column; /* menu verticale */
    align-items: stretch; /* i link occupano tutta la larghezza */
  }
  .menu li a {
    text-align: center; /* testo centrato */
    padding: 15px;
  }
}

Spiegazione:

  • Con flex-direction: column il menu passa da orizzontale a verticale.

  • align-items: stretch fa sì che ogni link riempia tutta la larghezza disponibile.

  • L’utente può navigare facilmente anche su dispositivi piccoli.

3. Aggiungere nuove sezioni

Per esercitarsi con la disposizione di contenuti, aggiungiamo altre <section> alla homepage e le allineiamo con Flexbox.

Esempio HTML:

<main class="container">
  <section>
    <p>Benvenuti nella nostra homepage responsive.</p>
  </section>
  <section>
    <h2>Servizi</h2>
    <p>Scopri cosa possiamo fare per te.</p>
  </section>
  <section>
    <h2>Portfolio</h2>
    <p>Ecco alcuni nostri progetti recenti.</p>
  </section>
</main>

Esempio CSS (Flexbox):

.container {
  display: flex;
  flex-direction: column; /* verticale su mobile */
  gap: 20px;
  padding: 20px;
}

@media (min-width: 768px) {
  .container {
    flex-direction: row; /* disposizione orizzontale su desktop */
  }
}

Spiegazione:

  • gap: 20px sostituisce i margini tra le sezioni e mantiene uniformità.

  • flex-direction verticale per mobile e orizzontale per desktop migliora la leggibilità e l’estetica.

4. Personalizzazione grafica

Per rendere il sito più gradevole, possiamo cambiare colori, margini, padding e font.

Esempio CSS:

body {
  font-family: "Verdana", sans-serif;
  background-color: #f0f8ff; /* colore di sfondo chiaro */
  color: #333;
}

header {
  background-color: #1e90ff;
  color: white;
  padding: 30px;
  text-align: center;
}

.menu li a:hover {
  background-color: #ff6347; /* colore hover */
  border-radius: 5px;
}

Spiegazione:

  • Scegliere un font leggibile come Verdana aumenta la leggibilità.

  • Il contrasto tra testo e sfondo migliora l’accessibilità.

  • border-radius aggiunge morbidezza ai link del menu.

5. Layout ibrido (Flexbox + Grid)

In questo esercizio combiniamo Flexbox e Grid nello stesso progetto per creare un layout più complesso ma responsive.

Procedura:

  • Il <header> e <nav> rimangono gestiti da Flexbox per la facilità di allineamento dei link.

  • Le sezioni principali all’interno di <main> vengono disposte con Grid.

main.container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-gap: 20px;
  padding: 20px;
}

Spiegazione:

  • repeat(auto-fit, minmax(250px, 1fr)) crea un layout flessibile: le sezioni occupano almeno 250px ma si adattano allo spazio disponibile.

  • Grid gestisce la griglia delle sezioni, Flexbox continua a gestire il menu e l’header.

  • Risultato: layout responsive, estetico e modulare, facile da aggiornare.


✅ Risultati Attesi

Al termine di questo modulo, sarai in grado di gestire il layout di una pagina web con il box model, utilizzare proprietà di display, creare menu di navigazione e realizzare homepage responsive, pronte per qualsiasi dispositivo.

martedì 3 marzo 2026

Corso di HTML: 4 Introduzione al CSS

4 – Introduzione al CSS

In questo modulo ci concentreremo sullo styling delle pagine web utilizzando i CSS (Cascading Style Sheets). Il CSS permette di separare il contenuto dalla presentazione, rendendo i siti più ordinati e facili da aggiornare. Mentre HTML definisce cosa viene mostrato, CSS definisce come viene mostrato.

Durante la lezione, gli studenti impareranno a gestire colori, font, dimensioni, spaziature, allineamenti e layout base. Verranno inoltre esplorati i tre metodi principali di applicazione del CSS: inline, internal ed external, con esempi pratici per comprendere vantaggi e limiti di ciascun approccio.

📌 Concetti Base: Selettori, Proprietà e Valori

Il CSS si basa su tre elementi fondamentali:

  1. Selettori – identificano quali elementi HTML devono essere stilizzati.

  2. Proprietà – definiscono l’aspetto da modificare (colore, font, margini, ecc.).

  3. Valori – specificano il comportamento della proprietà scelta.

La sintassi di base del CSS è:

selettore {
proprietà: valore;
}

Esempio pratico: vogliamo modificare i paragrafi (<p>) della pagina, impostando il colore del testo su blu e un font specifico:

p {
color: blue;
font-family: "Times New Roman", serif;
}

Spiegazione dettagliata:

  • p è il selettore che prende tutti i paragrafi della pagina.

  • color: blue; definisce il colore del testo.

  • font-family: "Times New Roman", serif; imposta il tipo di carattere, con fallback serif nel caso in cui il font principale non sia disponibile.

Questo esempio mostra come CSS renda uniforme e coerente l’aspetto di più elementi senza dover ripetere codice HTML inline.

📌 Colori, Font, Dimensioni e Spaziature

Il CSS permette di gestire molti aspetti visivi:

Colori

I colori possono essere definiti in diversi modi:

  • Nome colore: red, blue, green.

  • Esadecimale: #FF0000 per il rosso.

  • RGB: rgb(255,0,0).

Esempio:

h1 {
color: #1E90FF;
}

Font

Possiamo definire il tipo, la dimensione e lo stile del carattere:

body {
font-family: Arial, sans-serif;
font-size: 16px;
font-style: italic;
}

Spiegazione:

  • font-family sceglie il tipo di carattere principale e i fallback.

  • font-size imposta la dimensione del testo in pixel o altre unità (em, rem).

  • font-style può essere normale, italic o oblique.

Dimensioni e Spaziature

  • Margini (margin): spazio esterno all’elemento.

  • Padding (padding): spazio interno all’elemento.

  • Larghezza e altezza (width, height): dimensioni dei blocchi o immagini.

Esempio pratico:

div.card {
width: 300px;
height: 200px;
margin: 20px;
padding: 10px;
border: 1px solid #ccc;
}

Spiegazione:

  • La classe .card definisce un blocco di contenuto con dimensioni e spaziature controllate.

  • border aggiunge un bordo visibile.

Allineamenti

  • text-align gestisce l’allineamento orizzontale del testo (left, center, right).

  • vertical-align regola la posizione verticale di elementi inline.

  • La proprietà display permette di trasformare elementi inline in blocchi o viceversa.

Esempio:

h2 {
text-align: center;
}

📌 Differenza tra Inline, Internal ed External CSS

1. Inline CSS

Lo stile viene applicato direttamente a un singolo elemento HTML tramite l’attributo style:

<p style="color:red; font-weight:bold;">Testo rosso e in grassetto</p>

Vantaggi: veloce per modifiche puntuali.
Svantaggi: difficile da mantenere su siti complessi, poco riutilizzabile.

2. Internal CSS

Gli stili sono inseriti in un blocco <style> all’interno dell’<head> della pagina:

<head>
<style>
p { color: green; font-size: 16px; }
h1 { text-align: center; }
</style>
</head>

Vantaggi: utile per stilizzare una singola pagina senza file esterni.
Svantaggi: non riutilizzabile su altre pagine.

3. External CSS

Il CSS è contenuto in un file separato (ad esempio stile.css) e collegato tramite <link>:

<head>
<link rel="stylesheet" href="stile.css">
</head>

Vantaggi: separazione completa tra struttura e stile, facilità di manutenzione e riutilizzo su più pagine.
Consiglio: è il metodo consigliato per progetti complessi o siti multipagina.

📝 Esercizi Operativi

Per consolidare le conoscenze:

  1. Colori e Font
    Modifica tutti i paragrafi del tuo sito aggiungendo colore, font e dimensione.

    p {
    color: #333333;
    font-family: Verdana, sans-serif;
    font-size: 14px;
    }
  2. Box Model e Spaziature
    Crea un <div> con margini e padding visibili.

    <div class="card">Contenuto del box</div>
    
    .card {
    width: 250px;
    height: 150px;
    margin: 20px;
    padding: 15px;
    border: 1px solid black;
    }
  3. Allineamenti
    Centra il testo del titolo principale e i bottoni della pagina:

    h1, button {
    text-align: center;
    }
  4. Applicazione di Stile Inline e Internal
    Prova ad aggiungere uno stile inline a un singolo paragrafo e confrontalo con quello definito internamente nel <style>.

  5. Creazione di un File External CSS
    Salva un file stile.css con tutte le regole viste e collegalo alla tua pagina HTML. Modifica le proprietà e osserva l’impatto su tutta la pagina.

⚡ Esempio: Pagina Colorata con CSS Esterno

In questo esercizio mettiamo in pratica quanto appreso sui CSS. Creeremo una semplice pagina HTML e un file CSS esterno che definirà colori, font, spaziature e layout di base. L’obiettivo è comprendere come separare contenuto e presentazione e come applicare uno stile coerente su tutta la pagina.

1. Struttura della Pagina HTML

Iniziamo con la pagina HTML principale:

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>Pagina Colorata</title>
<link rel="stylesheet" href="stile.css">
</head>
<body>
<header>
<h1>Benvenuto nella mia Pagina</h1>
</header>
<section>
<p>Questo è un paragrafo stilizzato con CSS esterno.</p>
<p>Possiamo usare colori, font personalizzati e margini.</p>
</section>
<footer>
<p>© 2025 Mario Rossi</p>
</footer>
</body>
</html>

Spiegazione delle scelte

  1. Dichiarazione <!DOCTYPE html>: indica al browser che si tratta di HTML5, garantendo compatibilità con tutti i browser moderni.

  2. <html lang="it">: specifica la lingua della pagina, utile per accessibilità e SEO.

  3. <head>: contiene informazioni sulla pagina, inclusa la codifica dei caratteri (UTF-8) e il collegamento al file CSS esterno con <link rel="stylesheet" href="stile.css">.

  4. <body>: racchiude i contenuti visibili, suddivisi in header, section e footer.

  5. Header e Footer: separano visivamente e semanticamente le informazioni principali e di chiusura.

  6. Section con paragrafi: permette di organizzare il contenuto in blocchi tematici chiari e leggibili.

2. Il File CSS Esterno

Creiamo un file separato chiamato stile.css con le seguenti regole:

body {
background-color: #f9f9f9;
font-family: Arial, sans-serif;
color: #333333;
margin: 20px;
}
header {
background-color: #4CAF50;
color: white;
padding: 20px;
text-align: center;
}
p {
font-size: 16px;
line-height: 1.5;
margin-bottom: 15px;
}
footer {
background-color: #ddd;
color: #333;
padding: 10px;
text-align: center;
}

Spiegazione delle scelte CSS

  • body: impostiamo uno sfondo chiaro, un font leggibile e un margine globale per separare il contenuto dai bordi del browser.

  • header: colore di sfondo verde (#4CAF50) per evidenziare il titolo della pagina, testo bianco per contrasto e padding per creare spazio interno.

  • p: dimensione del font adeguata (16px) e line-height per migliorare la leggibilità, margine inferiore per separare i paragrafi.

  • footer: colore grigio chiaro, padding e centratura del testo, per distinguere chiaramente la chiusura della pagina.

Motivazione: separare gli stili in un file esterno consente di modificare rapidamente l’aspetto dell’intero sito senza intervenire su ogni pagina HTML. Inoltre, migliora la manutenzione e la leggibilità del codice.

3. Esercizi Operativi

Questi esercizi permettono di sperimentare direttamente il CSS:

  1. Tema personale: modifica i colori di sfondo (background-color) e dei testi (color) per creare un tema grafico coerente con il tuo progetto personale.

    body {
    background-color: #e0f7fa;
    color: #1a237e;
    }
  2. Font multipli: cambia il font dei titoli (h1) e dei paragrafi (p) usando almeno due font diversi per distinguere gerarchicamente il contenuto.

    h1 {
    font-family: "Georgia", serif;
    }
    p {
    font-family: "Verdana", sans-serif;
    }
  3. Margini e Padding: modifica gli spazi tra sezioni e paragrafi per creare un layout più arioso e leggibile.

    section {
    margin: 30px 0;
    padding: 15px;
    }
  4. Nuova Section: aggiungi un nuovo blocco di contenuto e stilizzalo con classi personalizzate.

    <section class="news">
    <h2>Novità</h2>
    <p>Benvenuto nella sezione Novità, dove condivido aggiornamenti e contenuti interessanti.</p>
    </section>
    .news {
    background-color: #fff3e0;
    padding: 20px;
    border: 1px solid #ffb74d;
    }
  5. Esperimento con CSS Inline e Internal: prova a stilizzare un singolo paragrafo inline e confrontalo con il CSS interno in <style> e quello esterno, osservando come cambia la manutenzione e la consistenza dello stile.

4. Consigli per la pratica

  • Salva sempre i file CSS nello stesso percorso del file HTML o usa un percorso relativo corretto.

  • Usa nomi di classi descrittivi (.news, .card) per facilitare la lettura e la gestione degli stili.

  • Testa le modifiche in diversi browser per assicurarti della compatibilità.

  • Ricorda che il CSS è cumulativo e gerarchico: le regole più specifiche o più vicine all’elemento prevalgono su quelle generali.


✅ Risultati Attesi

Al termine di questo modulo, sarai in grado di applicare stili CSS ai tuoi contenuti HTML, gestire colori, font, dimensioni e spaziature, e utilizzare i tre metodi principali di integrazione del CSS. Sarai pronto per creare pagine web esteticamente curate, coerenti e facilmente manutenibili.

lunedì 2 marzo 2026

Corso di HTML: 3 Strutturare i contenuti

3 – Strutturare i Contenuti di una Pagina Web
 

In questo modulo ci concentreremo su come organizzare in maniera chiara, coerente e semantica i contenuti di una pagina web. La struttura di una pagina HTML non riguarda solo l’aspetto visivo, ma anche la logica con cui i contenuti vengono organizzati. Una struttura coerente e semantica migliora la fruizione da parte degli utenti e rende la pagina più facilmente interpretabile dai motori di ricerca, aumentando l’accessibilità e l’usabilità del sito.

Impareremo ad utilizzare elementi semantici come <header>, <footer>, <section>, <article>, <aside> e <nav>, oltre a costruire tabelle e form di input per rendere la pagina interattiva e funzionale.

📌 Elementi Semantici

Gli elementi semantici forniscono significato al contenuto, aiutando sia i browser sia gli utenti a comprendere la struttura della pagina.

  • <header> contiene solitamente il titolo del sito o della pagina e i menu principali. È la sezione introduttiva che compare nella parte superiore della pagina.

  • <footer> racchiude informazioni di chiusura, come copyright, contatti o link utili. Si trova alla fine della pagina.

  • <section> definisce una sezione tematica del contenuto, ad esempio “Chi siamo” o “Servizi offerti”.

  • <article> è dedicato a contenuti indipendenti, come articoli di blog, news o post. Può essere condiviso autonomamente.

  • <aside> è utilizzato per contenuti laterali o correlati, come box informativi, link utili o citazioni.

  • <nav> raccoglie i link di navigazione principali, ad esempio il menu di un sito.

Esempio pratico di struttura semantica di pagina:

<body>
<header>
<h1>Il mio sito personale</h1>
<nav>
<a href="#home">Home</a>
<a href="#portfolio">Portfolio</a>
<a href="#contatti">Contatti</a>
</nav>
</header>
<section id="home">
<article>
<h2>Benvenuto nel mio sito</h2>
<p>Qui puoi trovare informazioni sul mio lavoro e i miei progetti.</p>
</article>
<aside>
<p>Notizie recenti: nuove pubblicazioni e aggiornamenti!</p>
</aside>
</section>
<footer>
<p>&copy; 2025 Nome Cognome - Tutti i diritti riservati</p>
</footer>
</body>

Spiegazione delle scelte:

  • La struttura separa chiaramente intestazione, contenuto principale e footer.

  • <article> contiene contenuti autonomi, mentre <aside> aggiunge informazioni correlate senza interrompere il flusso principale.

  • <nav> permette agli utenti di spostarsi facilmente tra le sezioni della pagina.

📌 Tabelle HTML

Le tabelle servono per organizzare dati tabulari in righe e colonne. Una tabella HTML è composta da:

  • <table> → elemento principale della tabella.

  • <tr> → definisce una riga.

  • <th> → definisce l’intestazione della colonna (grassetto e centrato di default).

  • <td> → definisce una cella con il contenuto dei dati.

Esempio di tabella:

<table border="1">
<tr>
<th>Nome</th>
<th>Email</th>
<th>Ruolo</th>
</tr>
<tr>
<td>Mario Rossi</td>
<td>mario.rossi@email.com</td>
<td>Web Designer</td>
</tr>
<tr>
<td>Luisa Bianchi</td>
<td>luisa.bianchi@email.com</td>
<td>Content Creator</td>
</tr>
</table>

Spiegazione:

  • <th> è utilizzato per intestazioni di colonne, migliorando la leggibilità.

  • <tr> separa logicamente ogni riga, mentre <td> contiene i dati effettivi.

  • L’attributo border="1" aggiunge un bordo visibile, utile per esercitazioni e prototipi.

📌 Form di Input

I form permettono di raccogliere dati dagli utenti e sono essenziali per newsletter, contatti o registrazioni. Un form HTML si costruisce con <form> e contiene elementi di input come <input> e <textarea>.

Esempio pratico di form di contatto:

<form action="/invia-dati" method="post">
<label for="nome">Nome:</label>
<input type="text" id="nome" name="nome" placeholder="Inserisci il tuo nome" required>
<label for="email">Email:</label>
<input type="email" id="email" name="email" placeholder="Inserisci la tua email" required>
<label for="messaggio">Messaggio:</label>
<textarea id="messaggio" name="messaggio" rows="4" placeholder="Scrivi qui il tuo messaggio" required></textarea>
<button type="submit">Invia</button>
</form>

Spiegazione dettagliata:

  • <form action="/invia-dati" method="post"> specifica dove inviare i dati e con quale metodo.

  • Gli attributi id e name permettono di collegare label e input e di identificare i dati lato server.

  • placeholder fornisce un suggerimento visivo per l’utente.

  • required obbliga l’utente a compilare il campo prima di inviare il form.

  • <textarea> serve per messaggi più lunghi.

  • <button type="submit"> invia i dati al server.

📌 Consigli Operativi per la Lezione

Durante le tre ore di lezione, gli studenti dovranno:

  1. Creare una pagina con header, footer e almeno due section, inserendo un article e un aside in ciascuna sezione.

  2. Costruire una tabella con dati inventati (ad esempio elenco di contatti o prodotti).

  3. Creare un form di contatto completo di input per nome, email e messaggio.

  4. Verificare la coerenza semantica: ogni elemento deve avere senso nel contesto e migliorare la leggibilità.

📌 Obiettivi di Apprendimento

Al termine del modulo, gli studenti saranno in grado di:

  • Comprendere l’importanza della struttura semantica di una pagina web.

  • Utilizzare correttamente header, footer, section, article, aside e nav.

  • Costruire tabelle ben strutturate e accessibili.

  • Creare form di input con attributi utili all’usabilità e all’accessibilità.

  • Applicare le regole apprese per costruire pagine coerenti, leggibili e pronte per essere stilizzate con CSS o rese interattive con JavaScript.

Ecco una versione narrativa, approfondita e completa del Modulo 3 con l’esempio pratico del CV personale, comprensiva di spiegazioni dettagliate, motivazioni delle scelte, e guida passo passo agli esercizi. Il testo è pensato per essere didattico, narrativo e pronto per la lettura in aula o online.

🔹 Esempio: Creare un CV Personale Online

In questo esercizio praticheremo tutte le conoscenze acquisite sul Modulo 3, combinando elementi semantici, tabelle e form per creare un curriculum vitae online. L’obiettivo è realizzare una pagina chiara, leggibile e funzionale, che contenga informazioni personali, esperienze lavorative, istruzione, competenze e contatti.

📌 Struttura della Pagina

Ogni pagina HTML deve iniziare con la dichiarazione <!DOCTYPE html>, seguita dall’elemento <html> che racchiude tutto il contenuto. All’interno di <html>, <head> contiene informazioni come charset e titolo, mentre <body> ospita tutti gli elementi visibili.

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>CV Personale</title>
</head>
<body>
<!-- Contenuti visibili andranno qui -->
</body>
</html>

Spiegazione:

  • <meta charset="UTF-8"> assicura che il testo venga interpretato correttamente con caratteri speciali.

  • <title> appare nella scheda del browser.

  • Il corpo della pagina <body> conterrà header, sezioni, articoli, aside, form e footer.

📌 Header e Navigazione

L’header contiene il nome del candidato e il menu di navigazione interno, facilitando lo spostamento tra le sezioni.

<header>
<h1>Mario Rossi</h1>
<nav>
<a href="#esperienza">Esperienza</a> |
<a href="#istruzione">Istruzione</a> |
<a href="#contatti">Contatti</a>
</nav>
</header>

Spiegazione:

  • <h1> è il titolo principale del CV.

  • <nav> raccoglie i link interni tramite attributi href="#id" per una navigazione fluida.

  • Il simbolo | serve solo da separatore visivo tra i link.

📌 Sezioni e Articoli

Le sezioni principali sono create con <section>, mentre <article> racchiude contenuti autonomi come esperienze o progetti.

<section id="esperienza">
<h2>Esperienza Lavorativa</h2>
<article>
<h3>Web Developer - Azienda XYZ</h3>
<p>Dal 2020 ad oggi, sviluppo siti web e applicazioni online.</p>
</article>
</section>

Spiegazione:

  • <section> delimita una sezione tematica.

  • <article> indica un contenuto indipendente, utile se vogliamo condividere questa sezione singolarmente.

  • Gli ID permettono ai link del nav di scorrere direttamente alla sezione corrispondente.

📌 Tabelle per l’Istruzione

Le tabelle organizzano dati in modo chiaro e leggibile.

<section id="istruzione">
<h2>Istruzione</h2>
<table border="1">
<tr><th>Anno</th><th>Corso</th></tr>
<tr><td>2018</td><td>Laurea in Informatica</td></tr>
<tr><td>2016</td><td>Diploma Liceo Scientifico</td></tr>
</table>
</section>

Spiegazione:

  • <th> definisce le intestazioni delle colonne.

  • <td> contiene i dati.

  • L’attributo border="1" è utile per esercitazioni e prototipi, facilitando la leggibilità.

📌 Contenuti Laterali con Aside

L’elemento <aside> serve per informazioni aggiuntive correlate.

<aside>
<h3>Competenze Tecniche</h3>
<p>HTML, CSS, JavaScript, Python, SQL</p>
</aside>

Spiegazione:

  • <aside> non interrompe il flusso principale.

  • Utile per competenze, link a portfolio o informazioni laterali.

📌 Form di Contatto

Il form permette agli utenti di contattare il candidato.

<section id="contatti">
<h2>Contatti</h2>
<form>
<label for="email">Email:</label>
<input type="email" id="email" name="email" placeholder="Inserisci la tua email" required><br>
<label for="messaggio">Messaggio:</label><br>
<textarea id="messaggio" name="messaggio" placeholder="Scrivi qui il tuo messaggio" required></textarea><br>
<input type="submit" value="Invia">
</form>
</section>

Spiegazione:

  • <form> contiene tutti i campi di input.

  • Gli attributi id e name collegano le label ai campi.

  • required obbliga l’utente a compilare i campi.

  • <textarea> permette di scrivere messaggi più lunghi.

📌 Footer

Il footer chiude la pagina con informazioni generali.

<footer>
<p>© 2025 Mario Rossi</p>
</footer>

Spiegazione:

  • <footer> contiene informazioni di chiusura e copyright.

  • Può includere anche link a privacy, termini o contatti.

📝 Esercizi Operativi

  1. Sezione Progetti:
    Aggiungi una sezione “Progetti” con almeno 2 articoli descrittivi.

    <section id="progetti">
    <h2>Progetti</h2>
    <article>
    <h3>Sito Portfolio</h3>
    <p>Progettazione e sviluppo di un portfolio personale online.</p>
    </article>
    <article>
    <h3>App Gestione Task</h3>
    <p>Applicazione web per gestire attività quotidiane con JavaScript.</p>
    </article>
    </section>
  2. Link nel Aside:
    Inserisci collegamenti a siti esterni che mostrano il portfolio.

    <aside>
    <h3>Portfolio Online</h3>
    <a href="https://portfolio1.example.com" target="_blank">Portfolio 1</a><br>
    <a href="https://portfolio2.example.com" target="_blank">Portfolio 2</a>
    </aside>
  3. Tabella dell’Istruzione:
    Aggiungi righe per corsi extra o certificazioni.

    <tr><td>2019</td><td>Corso avanzato di JavaScript</td></tr>
    
  4. Form Personalizzato:
    Aggiungi campo telefono o checkbox per newsletter.

    <label for="telefono">Telefono:</label>
    <input type="tel" id="telefono" name="telefono" placeholder="Inserisci il tuo numero"><br>
    <label><input type="checkbox" name="newsletter"> Iscriviti alla newsletter</label>
  5. Riorganizzazione Nav:
    Aggiungi link interni logici e prova il menu.

    <nav>
    <a href="#esperienza">Esperienza</a> |
    <a href="#istruzione">Istruzione</a> |
    <a href="#progetti">Progetti</a> |
    <a href="#contatti">Contatti</a>
    </nav>


✅ Risultati Attesi

Al termine di questo modulo, sarai in grado di strutturare contenuti complessi in pagine HTML usando correttamente elementi semantici, tabelle e form. Saprai creare un curriculum vitae online completamente funzionale e accessibile, pronto per essere arricchito con CSS e interattività tramite JavaScript nei moduli successivi.

domenica 1 marzo 2026

Corso di HTML: 2 Fondamenti di HTM

 2 – Fondamenti di HTML

In questo modulo ci concentreremo sulla costruzione di pagine web utilizzando HTML, il linguaggio di markup che fornisce la struttura ai contenuti del Web. HTML permette di definire titoli, paragrafi, liste, link e immagini, nonché di aggiungere attributi che ne modificano il comportamento o l’aspetto. Lo scopo principale è comprendere come creare una pagina funzionante da zero e prepararsi per l’integrazione di CSS e JavaScript nei moduli successivi.

📌 Struttura base di una pagina HTML

Ogni pagina HTML ha una struttura fondamentale che deve essere rispettata affinché il browser interpreti correttamente il contenuto e lo mostri all’utente in modo coerente. La struttura di base si compone di quattro elementi principali:

  1. <!DOCTYPE html>

  2. <html>

  3. <head>

  4. <body>

1. Questa dichiarazione va sempre all’inizio del documento HTML e indica al browser che il documento è scritto in HTML5, la versione più recente e standardizzata di HTML.

  • Senza <!DOCTYPE html>, i browser potrebbero interpretare la pagina in “modalità quirks”, cioè comportarsi come se fosse HTML vecchio, causando problemi di visualizzazione o compatibilità.

  • Pensalo come un istruzione di compatibilità: “Browser, interpreta questo documento come HTML5”.

2. Il tag <html> racchiude tutti gli elementi della pagina, sia quelli visibili all’utente che quelli non visibili ma utili per i browser e i motori di ricerca.

  • Spesso si specifica l’attributo lang per indicare la lingua del documento, ad esempio lang="it" per l’italiano.

  • Questo aiuta i motori di ricerca e gli screen reader a interpretare correttamente i contenuti, migliorando accessibilità e SEO.

Esempio concettuale:

<html lang="it">
<!-- contenuti della pagina -->
</html>

3. La sezione <head> contiene tutte le informazioni non visibili direttamente all’utente ma fondamentali per il funzionamento della pagina.

  • Alcuni dei principali elementi contenuti in <head>:

    • <title> → definisce il titolo della pagina, visibile nella scheda del browser e nei risultati dei motori di ricerca.

    • <meta> → definisce metadati, come la codifica dei caratteri (charset="UTF-8") e le informazioni per SEO.

    • <link> → permette di collegare fogli di stile esterni (CSS) o icone.

    • <script> → eventuali script JavaScript da caricare nella pagina.

Perché è importante il head:

  • Senza un head correttamente strutturato, i browser potrebbero mostrare caratteri strani, non applicare correttamente i CSS o penalizzare la pagina nei risultati di ricerca.

4. Il tag <body> contiene tutti i contenuti visibili all’utente, come testi, immagini, link, video e moduli.

  • Ogni elemento che l’utente vede deve essere all’interno del body: se metti contenuti fuori dal body, il browser potrebbe ignorarli o mostrarli in modo irregolare.

  • Possiamo pensare al body come il “palco” della nostra pagina: tutto ciò che l’utente può vedere e interagire deve trovarsi qui.

📌 Elementi di testo

Per strutturare correttamente i contenuti testuali, HTML mette a disposizione tag semantici che aiutano sia l’utente che i motori di ricerca a comprendere il significato delle informazioni.

Titoli

  • <h1> → titolo principale della pagina (unico per pagina).

  • <h2> → sottotitolo, di secondo livello.

  • <h3><h6> → titoli di importanza decrescente.
    Consiglio: Utilizzare i titoli in ordine logico, senza saltare livelli, per migliorare leggibilità e SEO.

Paragrafi

  • <p> serve a creare paragrafi di testo separati.

  • Consente di organizzare il contenuto in blocchi leggibili e stilizzabili tramite CSS.

Elenchi

  • Elenchi puntati → <ul> + <li>

  • Elenchi numerati → <ol> + <li>

  • Gli elenchi permettono di presentare informazioni in modo chiaro e ordinato, facilitando la lettura.

Link

  • <a href="URL">Testo del link</a>

  • L’attributo href indica la destinazione del collegamento.

  • Altri attributi utili:

    • title → testo informativo che appare al passaggio del mouse.

    • target="_blank" → apre il link in una nuova scheda.

📌 Attributi più comuni

Gli attributi sono proprietà che modificano il comportamento di un elemento HTML.

Ecco i più frequenti:

  1. src → definisce la sorgente di immagini o media.

    <img src="foto.jpg" alt="Descrizione della foto">
    
  2. alt → testo alternativo per immagini; utile per accessibilità e SEO.

  3. title → informazioni aggiuntive visibili al passaggio del mouse.

  4. href → URL di destinazione dei link.

Nota importante: L’uso corretto degli attributi aumenta:

  • L’accessibilità per utenti con disabilità.

  • La comprensibilità dei contenuti da parte dei motori di ricerca.

  • La professionalità e chiarezza della pagina.

Consigli pratici per principianti

  1. Sempre chiudere i tag: <p>Testo</p>.

  2. Organizzare il contenuto: titolo → sottotitoli → paragrafi → elenchi.

  3. Usare attributi significativi: nomi di immagini chiari, link descrittivi.

  4. Validare il codice: strumenti come W3C Validator aiutano a verificare errori HTML.

  5. Testare su più browser: Chrome, Firefox, Edge, Safari.


Esempio: Creare la propria prima pagina “Hello World”

Per mettere in pratica quanto appreso, creeremo una pagina HTML minimale. Apri il tuo editor di testo (come VS Code) e crea un file chiamato index.html. Inserisci il seguente codice:

<!DOCTYPE html>
<html lang="it">
<head>
  <meta charset="UTF-8">
  <title>Hello World</title>
</head>
<body>
  <h1>Hello World!</h1>
  <p>Questa è la mia prima pagina web in HTML.</p>
  <a href="https://www.google.com" title="Vai a Google" target="_blank">Visita Google</a>
</body>
</html>

In questo esempio, il titolo della pagina viene visualizzato nella scheda del browser grazie a <title>, mentre il contenuto visibile include un titolo principale, un paragrafo descrittivo e un link cliccabile. L’attributo target="_blank" fa sì che il link si apra in una nuova scheda del browser.

📝 Esercizi Operativi

1. Modifica il titolo della pagina in “La mia prima pagina HTML”.
2. Cambia il testo del paragrafo con una breve descrizione di te stesso o del tuo progetto.
3. Aggiungi un secondo paragrafo e inserisci un elenco numerato dei tuoi hobby utilizzando <ol>.
4. Aggiungi un link a un sito a tua scelta, impostando il titolo con l’attributo title.
5. Inserisci una seconda intestazione <h2> e prova a scrivere un testo di sottotitolo.


Esercizi Svolti: La mia prima pagina HTML

Abbiamo gli esercizi operativi:

  1. Modifica il titolo della pagina in “La mia prima pagina HTML”.

  2. Cambia il testo del paragrafo con una breve descrizione di te stesso o del tuo progetto.

  3. Aggiungi un secondo paragrafo e inserisci un elenco numerato dei tuoi hobby utilizzando <ol>.

  4. Aggiungi un link a un sito a tua scelta, impostando il titolo con l’attributo title.

  5. Inserisci una seconda intestazione <h2> e scrivi un testo.

Soluzione completa

Apri il tuo editor di testo (ad esempio VS Code) e crea un file chiamato index.html. Inserisci il seguente contenuto:

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<title>La mia prima pagina HTML</title>
</head>
<body>
<!-- Intestazione principale -->
<h1>Ciao! Benvenuto nel mio sito</h1>
<!-- Paragrafo con descrizione personale --> <p>Mi chiamo Alessandra Bianchi e sono appassionata di scrittura, lettura e tecnologia. In questo sito condivido alcune informazioni su di me e sui miei interessi.</p> <!-- Secondo paragrafo con elenco numerato dei miei hobby --> <p>I miei hobby principali sono:</p> <ol> <li>Scrivere racconti e poesie</li> <li>Leggere libri di fantascienza</li> <li>Programmare piccole pagine web</li> <li>Suonare la chitarra</li> </ol> <!-- Link a un sito a scelta --> <p>Un sito che consiglio per aggiornamenti tecnologici è: <a href="https://www.techcrunch.com" title="Vai a TechCrunch" target="_blank">TechCrunch</a> </p> <!-- Seconda intestazione con testo --> <h2>Il mio percorso di apprendimento</h2> <p>Sto imparando a costruire pagine web passo dopo passo, iniziando dalle basi dell'HTML e proseguendo con CSS e JavaScript. L’obiettivo è creare siti completi e funzionali.</p> </body>
</html>

Spiegazione dettagliata di ogni esercizio e soluzione

1. Modifica del titolo

<title>La mia prima pagina HTML</title>
  • Il titolo appare nella scheda del browser.

  • Abbiamo sostituito “Hello World” con un titolo più personale e descrittivo.

2. Paragrafo con descrizione personale

<p>Mi chiamo Alessandra Bianchi e sono appassionata di scrittura, lettura e tecnologia...</p>
  • Abbiamo inserito una breve presentazione personale.

  • <p> serve a delimitare un paragrafo di testo.

3. Secondo paragrafo con elenco numerato

<p>I miei hobby principali sono:</p>
<ol>
<li>Scrivere racconti e poesie</li>
<li>Leggere libri di fantascienza</li>
<li>Programmare piccole pagine web</li>
<li>Suonare la chitarra</li>
</ol>
  • <ol> crea un elenco numerato.

  • <li> definisce ciascun elemento della lista.

  • Abbiamo aggiunto un secondo paragrafo introduttivo prima dell’elenco per chiarezza.

4. Aggiunta di un link

<a href="https://www.techcrunch.com" title="Vai a TechCrunch" target="_blank">TechCrunch</a>
  • href indica l’URL del sito.

  • title è il testo che appare al passaggio del mouse.

  • target="_blank" apre il link in una nuova scheda.

  • L’utente può sostituire l’URL e il testo a suo piacimento.

5. Seconda intestazione con testo

<h2>Il mio percorso di apprendimento</h2>
<p>Sto imparando a costruire pagine web passo dopo passo...</p>
  • <h2> serve come sottotitolo, crea una gerarchia logica nella pagina.

  • Il testo spiega il proprio percorso di apprendimento, ma può essere personalizzato.

Risultato visivo nel browser

  1. Titolo della pagina: “La mia prima pagina HTML”.

  2. Intestazione principale <h1>: “Ciao! Benvenuto nel mio sito”.

  3. Paragrafo descrittivo con informazioni personali.

  4. Secondo paragrafo con elenco numerato dei hobby.

  5. Link a un sito esterno cliccabile che si apre in una nuova scheda.

  6. Sottotitolo <h2> con testo descrittivo del proprio percorso.

Questo esempio mostra come strutturare una prima pagina HTML completa rispettando le richieste degli esercizi. Gli studenti possono copiare il codice e vedere subito i risultati nel browser, imparando il significato di ogni tag e attributo.

✅ Risultati Attesi

Al termine di questo modulo, sarai in grado di creare pagine HTML strutturate, utilizzare correttamente titoli, paragrafi, elenchi e link, applicare gli attributi principali e comprendere come la struttura base di HTML costituisca la spina dorsale di ogni sito web. Queste competenze ti renderanno pronto a procedere con CSS e JavaScript nei moduli successivi, aggiungendo stile e interattività alle tue pagine.



Corso di HTML: 6 Introduzione a JavaScript

6 – Introduzione a JavaScript In questo modulo ci concentreremo su JavaScript , il linguaggio di programmazione che permette di rendere le...