Guida Completa alla Creazione di un Sito Web Statico (HTML, CSS, JavaScript + GitHub Pages)
Introduzione
Un sito web statico è composto da file HTML, CSS e JavaScript che vengono caricati così come sono dal server al browser dell’utente. Non richiede database o backend complessi, ed è perfetto per portfolio, blog, pagine di presentazione e documentazione.
Questa guida ti accompagnerà passo passo nella creazione di un sito statico moderno, spiegando i concetti fondamentali, le tecniche di sviluppo, l’organizzazione dei file e la pubblicazione gratuita su GitHub Pages.
1. Cos’è un sito web statico?
Un sito statico è composto da contenuti fissi: ogni pagina è un file HTML che il browser mostra così com’è. Puoi aggiungere interattività con JavaScript e curare la grafica con CSS.
Quando scegliere un sito statico?
- Portfolio personale
- Blog semplice
- Presentazione di progetti
- Curriculum online
- Documentazione
Vantaggi:
- Velocità di caricamento
- Semplicità di gestione
- Sicurezza (meno rischi rispetto ai siti dinamici)
- Facilità di pubblicazione gratuita (es. GitHub Pages)
2. Strumenti necessari
- Editor di testo: VS Code, Sublime Text, Atom, Notepad++
- Browser web: Chrome, Firefox, Edge, Safari
- Account GitHub: per la pubblicazione su GitHub Pages
Installare questi strumenti ti permetterà di scrivere, testare e pubblicare il tuo sito.
3. Struttura dei file di un sito statico
Organizza il sito in una cartella principale, ad esempio miosito/, con questa struttura:
miosito/
│
├── index.html
├── about.html
├── contact.html
├── style/
│ └── main.css
├── script/
│ └── main.js
├── images/
│ └── logo.png
└── README.md
- index.html: La homepage
- style/main.css: File CSS principale
- script/main.js: File JavaScript principale
- images/: Cartella immagini
- README.md: Documentazione del progetto
4. HTML: la struttura del sito
HTML (HyperText Markup Language) è il linguaggio che struttura il contenuto delle pagine. Ogni file HTML contiene una “scheletro” di base:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Nome Sito</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<header>
<h1>Benvenuto nel mio sito!</h1>
<nav>
<a href="index.html">Home</a>
<a href="about.html">Chi sono</a>
<a href="contact.html">Contatti</a>
</nav>
</header>
<main>
<section>
<h2>Presentazione</h2>
<p>Questo è il mio sito web personale.</p>
</section>
</main>
<footer>
<p>© 2025 Nome Cognome</p>
</footer>
<script src="script/main.js"></script>
</body>
</html>
Spiegazione delle principali sezioni:
head: informazioni sulla pagina, collegamento a CSS, titolo.body: tutto ciò che viene visualizzato dall’utente.header: intestazione, logo, menu.main: contenuto principale.footer: informazioni e copyright.script: collegamento al file JavaScript per aggiungere funzionalità.
5. CSS: stile e layout
CSS (Cascading Style Sheets) serve per colorare, posizionare e rendere gradevole il sito. Esempio di file style/main.css:
body {
font-family: 'Segoe UI', Arial, sans-serif;
background: #f5f7fa;
margin: 0;
color: #333;
}
header {
background: #004080;
color: #fff;
padding: 20px 0;
}
nav a {
color: #fff;
margin: 0 10px;
text-decoration: none;
font-weight: bold;
}
main {
padding: 30px 5vw;
}
footer {
background: #eee;
color: #555;
text-align: center;
padding: 15px 0;
font-size: 0.9em;
border-top: 1px solid #ccc;
}
Buone pratiche:
- Usa una palette di colori coerente.
- Preferisci unità di misura flessibili (
em,rem,%,vw). - Cura la leggibilità: spaziatura, font, contrasto.
- Organizza il CSS in più file se il sito cresce.
6. JavaScript: interattività di base
JavaScript permette di aggiungere interattività e funzionalità al sito. Esempio di file script/main.js:
// Esempio: mostra un messaggio di benvenuto quando si carica la pagina
window.onload = function() {
console.log("Benvenuto nel sito!");
};
// Esempio: cambia il testo di un elemento al click
document.addEventListener('DOMContentLoaded', () => {
const titolo = document.querySelector('h1');
titolo.addEventListener('click', () => {
titolo.textContent = "Hai cliccato sul titolo!";
});
});
Suggerimenti utili:
- Scrivi codice semplice e commentato.
- Verifica la compatibilità con i principali browser.
- Se il sito cresce, separa le funzioni in più file JS.
7. Ottimizzazione delle immagini e delle risorse
- Comprimi le immagini per velocizzare il caricamento (usa TinyPNG, ImageOptim).
- Usa formati moderni come WebP per performance migliori.
- Dai nomi chiari e significativi ai file.
8. Responsive Design: rendi il sito adatto a tutti i dispositivi
Il “responsive design” permette al sito di adattarsi a schermi di ogni dimensione (PC, tablet, smartphone). Usa le media query nel CSS:
@media (max-width: 600px) {
nav {
display: block;
text-align: center;
}
main {
padding: 10px 2vw;
}
header {
padding: 10px 0;
}
}
Suggerimenti:
- Testa il sito su dispositivi diversi.
- Usa strumenti come Firefox Responsive Design Mode o Chrome DevTools.
9. Accessibilità e buone pratiche
- Usa tag semantici (
<header>,<nav>,<main>,<footer>,<section>,<article>) per aiutare i lettori e i motori di ricerca. - Fornisci testi alternativi alle immagini (
alt). - Mantieni colori e contrasti leggibili.
- Usa font e dimensioni accessibili.
10. Versionamento e pubblicazione con GitHub Pages
1. Versiona il sito con Git
- Crea una repository su GitHub (es.
miosito). - Inizializza la cartella locale:
- Aggiorna il sito facendo nuovi commit e push.
git init
git add .
git commit -m "Prima versione del sito"
git remote add origin https://github.com/TUOUSERNAME/miosito.git
git push -u origin main
2. Pubblica il sito con GitHub Pages
- Vai su Settings del repository GitHub.
- Scorri fino alla sezione Pages.
- Seleziona il branch principale (
main) e la cartella root (/), poi salva. - Dopo pochi minuti, il sito sarà visibile all’indirizzo:
https://TUOUSERNAME.github.io/miosito/
Suggerimenti:
- Aggiorna il sito semplicemente facendo push delle modifiche.
- Puoi usare un dominio personalizzato dalle impostazioni di Pages.
11. Esempio completo di homepage
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Portfolio di Mario Rossi</title>
<link rel="stylesheet" href="style/main.css">
</head>
<body>
<header>
<h1>Mario Rossi</h1>
<nav>
<a href="index.html">Home</a>
<a href="about.html">Chi sono</a>
<a href="contact.html">Contatti</a>
</nav>
</header>
<main>
<section>
<h2>Benvenuto!</h2>
<p>Scopri i miei progetti e le mie competenze.</p>
<img src="images/portfolio.png" alt="Immagine portfolio">
</section>
</main>
<footer>
<p>© 2025 Mario Rossi - <a href="mailto:[email protected]">Contattami</a></p>
</footer>
<script src="script/main.js"></script>
</body>
</html>
12. Risorse utili
- MDN Web Docs: HTML
- MDN Web Docs: CSS
- MDN Web Docs: JavaScript
- GitHub Pages Documentation
- freeCodeCamp: Responsive Web Design
- TinyPNG: Compressore immagini
- Color Hunt: Palette colori
13. Consigli pratici e buone abitudini
- Documenta il progetto: usa il file README.md per spiegare struttura e obiettivi del sito.
- Organizza le risorse: mantieni ordinata la struttura delle cartelle.
- Scrivi codice commentato: aiuta te stesso e chi collabora con te.
- Aggiorna spesso il sito: correggi errori e aggiungi contenuti.
- Studia siti di esempio: ispirati a portfolio, blog, landing page.
- Sperimenta: prova nuove tecniche, animazioni, layout.
14. Conclusione
Creare un sito web statico è il modo migliore per imparare come funziona il web, mettere in mostra le tue competenze o presentare progetti personali. Con HTML, CSS e JavaScript puoi realizzare pagine moderne, belle e funzionali. Grazie a GitHub Pages, puoi pubblicare il tuo lavoro online in pochi minuti, gratuitamente.
Sperimenta, migliora e condividi il tuo sito con il mondo! 🚀