HTML CSS JAVASCRIPT SQL MYSQL PYTHON JAVA PHP C C++ C# PACKET TRACER CYBERSECURITY REACT TYPESCRIPT NODE.JS GIT & GITHUB DATA SCIENCE BOOTSTRAP GO KOTLIN JQUERY DJANGO VUE ANGULAR MONGODB POSTGRESQL SASS NUMPY PANDAS SCIPY DSA RUST SWIFT BASH XML W3.CSS WORD POWERPOINT
Corso gratuito

Corso W3.CSS in italiano

Il framework CSS piΓΉ leggero al mondo: nessuna dipendenza, nessun JavaScript obbligatorio. Impara a costruire layout responsive, navigazioni, modal, accordion, animazioni e dark mode con poche classi. Con esempi pratici e interattivi.

Introduzione a W3.CSS

W3.CSS Γ¨ un framework CSS creato da W3Schools che permette di costruire siti web moderni e responsive senza JavaScript e senza dipendenze esterne. Il file pesa meno di 30 KB e include centinaia di classi pronte all'uso.

CaratteristicaDescrizione
Leggero~28 KB, un singolo file CSS
No dipendenzeNon richiede jQuery o altri framework
ResponsiveLayout mobile-first integrato
Cross-browserFunziona su tutti i browser moderni
Dark modeTema scuro incluso

Rispetto a Bootstrap, W3.CSS è più snello e non richiede JavaScript per la maggior parte dei componenti. È ideale per siti statici, portfolio e landing page.

πŸ’‘ Nota: W3.CSS non sostituisce la conoscenza di CSS puro β€” Γ¨ uno strumento per velocizzare il lavoro. Imparare prima il CSS di base rimane fondamentale.

Setup e inclusione

Per usare W3.CSS basta includere il file CSS nel <head> della pagina. Puoi usare il CDN di W3Schools o scaricare il file.

Via CDN (consigliato)

HTML β€” inclusione CDN
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
  <title>Il mio sito con W3.CSS</title>
</head>
<body>

<div class="w3-container w3-blue">
  <h1>Benvenuto in W3.CSS!</h1>
</div>

<div class="w3-container">
  <p>Il framework CSS piΓΉ leggero del mondo.</p>
</div>

</body>
</html>

Struttura base della pagina

Tutte le classi W3.CSS iniziano con il prefisso w3-. La classe fondamentale Γ¨ w3-container che aggiunge padding orizzontale.

ClasseEffetto
w3-containerPadding left/right 16px
w3-contentContainer centrato max-width 980px
w3-panelPadding top/bottom 0.01em e 16px
w3-mainMargine automatico per sidebar layout
πŸ’‘ Tip: Usa sempre il tag <meta name="viewport"> per garantire il comportamento responsive su mobile.

Colori

W3.CSS include un sistema di colori molto ricco: ogni colore ha una classe background e una text. I nomi seguono una convenzione semplice e intuitiva.

Classi di colore background

HTML β€” colori di sfondo
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-container w3-blue">
  <p>w3-blue β€” sfondo blu</p>
</div>
<div class="w3-container w3-green">
  <p>w3-green β€” sfondo verde</p>
</div>
<div class="w3-container w3-red">
  <p>w3-red β€” sfondo rosso</p>
</div>
<div class="w3-container w3-orange">
  <p>w3-orange β€” sfondo arancio</p>
</div>
<div class="w3-container w3-purple">
  <p>w3-purple β€” sfondo viola</p>
</div>
<div class="w3-container w3-grey">
  <p>w3-grey β€” sfondo grigio</p>
</div>
<div class="w3-container w3-black w3-text-white">
  <p>w3-black β€” sfondo nero</p>
</div>

Varianti chiaro e scuro

Ogni colore ha varianti aggiungendo -light o -dark: w3-light-blue, w3-dark-grey, ecc.

Colori del testo

HTML β€” colori del testo
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<p class="w3-text-blue">Testo blu con w3-text-blue</p>
<p class="w3-text-green">Testo verde con w3-text-green</p>
<p class="w3-text-red">Testo rosso con w3-text-red</p>
<p class="w3-text-orange">Testo arancio con w3-text-orange</p>

<!-- Combinare sfondo e testo -->
<div class="w3-container w3-yellow w3-text-black">
  <p>Sfondo giallo, testo nero</p>
</div>
πŸ“‹ Colori disponibili: red, pink, purple, deep-purple, indigo, blue, light-blue, cyan, aqua, teal, green, light-green, lime, sand, khaki, yellow, amber, orange, deep-orange, blue-grey, brown, grey, dark-grey, black, white, e molti altri.

Containers

I container in W3.CSS gestiscono la struttura del layout. Permettono di centrare il contenuto e controllare la larghezza massima della pagina.

HTML β€” containers e layout base
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Header a tutta larghezza -->
<div class="w3-container w3-teal w3-padding-64">
  <h1>Il mio sito</h1>
  <p>Header a tutta larghezza</p>
</div>

<!-- Contenuto centrato con larghezza massima -->
<div class="w3-content w3-padding" style="max-width:800px">
  <h2>Titolo della sezione</h2>
  <p>Questo testo Γ¨ centrato e limitato a 800px di larghezza.</p>
</div>

<!-- Panel con sfondo -->
<div class="w3-panel w3-light-grey">
  <p>Un panel con sfondo grigio chiaro e padding verticale.</p>
</div>
Classe paddingDescrizione
w3-paddingPadding 8px top/bottom, 16px left/right
w3-padding-smallPadding 4px top/bottom, 8px left/right
w3-padding-largePadding 12px top/bottom, 24px left/right
w3-padding-16Padding 16px su tutti i lati
w3-padding-32Padding 32px su tutti i lati
w3-padding-64Padding 64px su tutti i lati

Testo e Font

W3.CSS include classi per controllare dimensioni, allineamento e stile del testo senza scrivere CSS personalizzato.

HTML β€” stili testo
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Dimensioni -->
<p class="w3-tiny">Testo tiny (10px)</p>
<p class="w3-small">Testo small (12px)</p>
<p>Testo normale (15px, default)</p>
<p class="w3-large">Testo large (18px)</p>
<p class="w3-xlarge">Testo xlarge (24px)</p>
<p class="w3-xxlarge">Testo xxlarge (36px)</p>
<p class="w3-xxxlarge">Testo xxxlarge (48px)</p>
<p class="w3-jumbo">Testo jumbo (64px)</p>

<hr>

<!-- Allineamento -->
<p class="w3-left-align">Allineato a sinistra</p>
<p class="w3-center">Centrato</p>
<p class="w3-right-align">Allineato a destra</p>

<!-- Font monospace per codice -->
<p class="w3-code">Testo in stile codice monospace</p>

Font di Google

W3.CSS si integra facilmente con Google Fonts includendo il link nel <head> e usando la classe w3-font-*.

HTML β€” Google Font
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">

<style>
  body { font-family: 'Roboto', sans-serif; }
</style>

<div class="w3-container">
  <h2>Titolo con Roboto</h2>
  <p>Paragrafo con il font Roboto da Google Fonts.</p>
</div>

Padding e Margin

W3.CSS offre classi pronte per gestire spacing senza scrivere CSS. Le classi seguono uno schema numerico da 0 a 64.

Classe marginValore
w3-margin16px tutti i lati
w3-margin-top16px solo sopra
w3-margin-bottom16px solo sotto
w3-margin-left16px solo sinistra
w3-margin-right16px solo destra
HTML β€” spacing con classi W3.CSS
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-container w3-blue w3-margin w3-padding-32">
  <p>Questo div ha margin 16px e padding 32px</p>
</div>

<div class="w3-container w3-green w3-margin-top w3-padding-16">
  <p>Questo div ha margin solo in alto e padding 16px</p>
</div>

<!-- Centrare un elemento -->
<div class="w3-container w3-orange w3-padding" style="width:50%; margin:auto">
  <p class="w3-center">Elemento centrato al 50%</p>
</div>

Bordi e Arrotondamento

W3.CSS semplifica l'aggiunta di bordi e angoli arrotondati con classi dedicate.

HTML β€” bordi e round
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-container w3-border w3-padding-16 w3-margin">
  <p>w3-border β€” bordo grigio standard</p>
</div>

<div class="w3-container w3-border w3-border-blue w3-padding-16 w3-margin">
  <p>w3-border-blue β€” bordo colorato</p>
</div>

<div class="w3-container w3-border w3-round-large w3-light-blue w3-padding-16 w3-margin">
  <p>w3-round-large β€” angoli molto arrotondati</p>
</div>

<div class="w3-container w3-border w3-round-xxlarge w3-teal w3-text-white w3-padding-16 w3-margin">
  <p>w3-round-xxlarge β€” quasi circolare</p>
</div>

<!-- Ombra -->
<div class="w3-container w3-card w3-padding-16 w3-margin">
  <p>w3-card β€” aggiunge ombra box-shadow</p>
</div>
Classeborder-radius
w3-round4px
w3-round-large8px
w3-round-xlarge16px
w3-round-xxlarge32px
w3-circle50% (cerchio)

Card e Panel

Le card sono uno dei componenti piΓΉ usati nel web design moderno. W3.CSS le gestisce con pochissime classi.

HTML β€” card base
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-card-4 w3-margin" style="width:300px">
  <img src="https://picsum.photos/300/200" alt="immagine" style="width:100%">
  <div class="w3-container w3-padding-16">
    <h3>Titolo Card</h3>
    <p>Descrizione della card con w3-card-4 che aggiunge ombra piΓΉ marcata.</p>
    <button class="w3-button w3-blue w3-margin-top">Leggi di piΓΉ</button>
  </div>
</div>

Grid di card

HTML β€” tre card affiancate
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-row-padding w3-margin-top">

  <div class="w3-third">
    <div class="w3-card w3-padding-16">
      <h4>🎨 Design</h4>
      <p>Crea interfacce moderne con W3.CSS.</p>
    </div>
  </div>

  <div class="w3-third">
    <div class="w3-card w3-padding-16">
      <h4>⚑ Veloce</h4>
      <p>Nessuna dipendenza, carica istantaneamente.</p>
    </div>
  </div>

  <div class="w3-third">
    <div class="w3-card w3-padding-16">
      <h4>πŸ“± Responsive</h4>
      <p>Ottimizzato per mobile giΓ  di default.</p>
    </div>
  </div>

</div>
πŸ’‘ Tip: w3-card aggiunge box-shadow leggera, w3-card-4 aggiunge ombra piΓΉ marcata su 4 lati. Usa w3-hover-shadow per l'effetto on hover.

Pulsanti

W3.CSS include stili completi per pulsanti: colori, dimensioni, effetti hover e varianti outline.

HTML β€” pulsanti
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Pulsanti colorati -->
<button class="w3-button w3-blue">Blu</button>
<button class="w3-button w3-green">Verde</button>
<button class="w3-button w3-red">Rosso</button>
<button class="w3-button w3-orange">Arancio</button>
<button class="w3-button w3-purple">Viola</button>

<br><br>

<!-- Dimensioni -->
<button class="w3-button w3-teal w3-tiny">Tiny</button>
<button class="w3-button w3-teal w3-small">Small</button>
<button class="w3-button w3-teal">Normale</button>
<button class="w3-button w3-teal w3-large">Large</button>

<br><br>

<!-- Bordo (outline) -->
<button class="w3-button w3-border w3-border-blue w3-text-blue">Outline Blu</button>
<button class="w3-button w3-border w3-border-red w3-text-red">Outline Rosso</button>

<br><br>

<!-- Disabilitato -->
<button class="w3-button w3-grey" disabled>Disabilitato</button>

<!-- Larghezza piena -->
<br><br>
<button class="w3-button w3-block w3-green w3-margin-top">Pulsante a piena larghezza</button>

Badge e Tag

Badge e tag sono elementi inline utili per etichette, contatori di notifiche e categorie.

HTML β€” badge e tag
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Badge (cerchio con numero) -->
<h4>
  Messaggi
  <span class="w3-badge w3-red">5</span>
</h4>

<button class="w3-button w3-blue">
  Notifiche <span class="w3-badge w3-red w3-right">3</span>
</button>

<br><br>

<!-- Tag (etichette rettangolari) -->
<span class="w3-tag w3-blue">W3.CSS</span>
<span class="w3-tag w3-green">Framework</span>
<span class="w3-tag w3-red">Responsive</span>
<span class="w3-tag w3-orange">CSS</span>
<span class="w3-tag w3-purple w3-round-large">Tag arrotondato</span>

<br><br>

<!-- Tag come prezzo -->
<span class="w3-tag w3-teal w3-xxlarge">€29</span>

Alert e Note

W3.CSS non ha una classe w3-alert dedicata, ma Γ¨ facilissimo creare alert colorati combinando le classi di base. I panel con bordi laterali funzionano come note contestuali.

HTML β€” alert e messaggi
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Alert successo -->
<div class="w3-panel w3-green w3-display-container">
  <span onclick="this.parentElement.style.display='none'"
        class="w3-button w3-large w3-display-topright">&times;</span>
  <h3>βœ… Successo!</h3>
  <p>L'operazione Γ¨ stata completata con successo.</p>
</div>

<!-- Alert errore -->
<div class="w3-panel w3-red">
  <h3>❌ Errore</h3>
  <p>Si Γ¨ verificato un errore. Riprova piΓΉ tardi.</p>
</div>

<!-- Alert attenzione -->
<div class="w3-panel w3-yellow">
  <h3>⚠️ Attenzione</h3>
  <p>Controlla i dati inseriti prima di continuare.</p>
</div>

<!-- Nota informativa -->
<div class="w3-panel w3-blue">
  <h3>ℹ️ Info</h3>
  <p>Puoi personalizzare questo componente con qualsiasi colore W3.CSS.</p>
</div>

Tabelle

Le tabelle W3.CSS sono giΓ  stilizzate con la classe w3-table. Classi aggiuntive gestiscono striping, hover e bordi.

HTML β€” tabella completa
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<table class="w3-table-all w3-hoverable">
  <thead>
    <tr class="w3-blue">
      <th>Nome</th>
      <th>Cognome</th>
      <th>Ruolo</th>
      <th>Stipendio</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Marco</td><td>Rossi</td><td>Developer</td><td>€3.200</td>
    </tr>
    <tr class="w3-light-grey">
      <td>Laura</td><td>Bianchi</td><td>Designer</td><td>€2.900</td>
    </tr>
    <tr>
      <td>Antonio</td><td>Verdi</td><td>Manager</td><td>€4.500</td>
    </tr>
    <tr class="w3-light-grey">
      <td>Sofia</td><td>Ferrari</td><td>Tester</td><td>€2.600</td>
    </tr>
  </tbody>
</table>
ClasseEffetto
w3-tableTabella base senza bordi
w3-table-allTabella con tutti i bordi
w3-stripedRighe alternate chiaro/scuro automatico
w3-hoverableRiga evidenziata su hover
w3-borderedSolo bordi orizzontali
w3-centeredTesto centrato nelle celle

Immagini

W3.CSS fornisce classi per rendere le immagini responsive, circolari e con effetti hover.

HTML β€” immagini e effetti
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Immagine responsive (larghezza 100%) -->
<img src="https://picsum.photos/400/200" class="w3-image" alt="responsive">

<br><br>

<!-- Immagine circolare (avatar) -->
<img src="https://picsum.photos/150/150" class="w3-circle" alt="avatar" style="width:150px">

<br><br>

<!-- Immagine con bordo -->
<img src="https://picsum.photos/200/150" class="w3-border w3-border-blue w3-padding" alt="bordo">

<br><br>

<!-- Immagine con caption -->
<figure class="w3-card">
  <img src="https://picsum.photos/300/180" class="w3-image" alt="foto">
  <figcaption class="w3-container w3-padding-8 w3-center w3-grey">
    Didascalia dell'immagine
  </figcaption>
</figure>

Accordion

Un accordion mostra e nasconde sezioni di contenuto. Con W3.CSS si realizza con pochissimo JavaScript.

HTML β€” accordion
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<button onclick="toggle('sezione1')" class="w3-button w3-block w3-teal w3-left-align">
  β–Ά Cos'Γ¨ W3.CSS?
</button>
<div id="sezione1" class="w3-hide w3-container w3-border">
  <p>W3.CSS Γ¨ un framework CSS moderno e gratuito sviluppato da W3Schools.
  È leggero, responsive e non richiede dipendenze esterne.</p>
</div>

<button onclick="toggle('sezione2')" class="w3-button w3-block w3-teal w3-left-align">
  β–Ά Come si installa?
</button>
<div id="sezione2" class="w3-hide w3-container w3-border">
  <p>Basta aggiungere questa riga nel <code>&lt;head&gt;</code>:<br>
  <code>&lt;link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css"&gt;</code></p>
</div>

<button onclick="toggle('sezione3')" class="w3-button w3-block w3-teal w3-left-align">
  β–Ά È gratuito?
</button>
<div id="sezione3" class="w3-hide w3-container w3-border">
  <p>Sì, W3.CSS è completamente gratuito e open source, senza licenze commerciali.</p>
</div>

<script>
function toggle(id) {
  var el = document.getElementById(id);
  el.classList.toggle('w3-hide');
  el.classList.toggle('w3-show');
}
</script>

Tabs

Le tab permettono di organizzare contenuti in pannelli selezionabili. W3.CSS le gestisce con w3-bar e JavaScript leggero.

HTML β€” tabs
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Barra tab -->
<div class="w3-bar w3-teal">
  <button class="w3-bar-item w3-button tablink w3-dark-grey" onclick="apriTab('HTML')">HTML</button>
  <button class="w3-bar-item w3-button tablink" onclick="apriTab('CSS')">CSS</button>
  <button class="w3-bar-item w3-button tablink" onclick="apriTab('JS')">JavaScript</button>
</div>

<!-- Pannelli -->
<div id="HTML" class="w3-container w3-border w3-padding">
  <h2>HTML</h2>
  <p>HTML Γ¨ il linguaggio di marcatura per le pagine web.</p>
</div>
<div id="CSS" class="w3-container w3-border w3-padding" style="display:none">
  <h2>CSS</h2>
  <p>CSS gestisce lo stile e il layout delle pagine HTML.</p>
</div>
<div id="JS" class="w3-container w3-border w3-padding" style="display:none">
  <h2>JavaScript</h2>
  <p>JavaScript rende le pagine web dinamiche e interattive.</p>
</div>

<script>
function apriTab(nome) {
  document.querySelectorAll('.w3-container').forEach(p => p.style.display = 'none');
  document.querySelectorAll('.tablink').forEach(b => b.classList.remove('w3-dark-grey'));
  document.getElementById(nome).style.display = 'block';
  event.currentTarget.classList.add('w3-dark-grey');
}
</script>

Grid e Responsive

W3.CSS ha un sistema di griglia basato su frazioni: w3-half, w3-third, w3-quarter, ecc. Su mobile le colonne si impilano automaticamente.

HTML β€” layout a colonne responsive
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- 2 colonne -->
<div class="w3-row-padding">
  <div class="w3-half">
    <div class="w3-container w3-blue w3-padding"><p>Colonna 1/2</p></div>
  </div>
  <div class="w3-half">
    <div class="w3-container w3-teal w3-padding"><p>Colonna 2/2</p></div>
  </div>
</div>

<!-- 3 colonne -->
<div class="w3-row-padding w3-margin-top">
  <div class="w3-third">
    <div class="w3-container w3-red w3-padding"><p>1/3</p></div>
  </div>
  <div class="w3-third">
    <div class="w3-container w3-orange w3-padding"><p>2/3</p></div>
  </div>
  <div class="w3-third">
    <div class="w3-container w3-purple w3-padding"><p>3/3</p></div>
  </div>
</div>

<!-- 4 colonne -->
<div class="w3-row-padding w3-margin-top">
  <div class="w3-quarter">
    <div class="w3-container w3-green w3-padding"><p>1/4</p></div>
  </div>
  <div class="w3-quarter">
    <div class="w3-container w3-blue w3-padding"><p>2/4</p></div>
  </div>
  <div class="w3-quarter">
    <div class="w3-container w3-teal w3-padding"><p>3/4</p></div>
  </div>
  <div class="w3-quarter">
    <div class="w3-container w3-pink w3-padding"><p>4/4</p></div>
  </div>
</div>
ClasseLarghezza
w3-half50%
w3-third33.33%
w3-twothird66.66%
w3-quarter25%
w3-threequarter75%
w3-col s1..s12Griglia a 12 colonne (stile Bootstrap)

Classi responsive di visibilitΓ 

ClasseComportamento
w3-hide-smallNasconde su schermi <601px
w3-hide-mediumNasconde su schermi 601–992px
w3-hide-largeNasconde su schermi >992px

Animazioni

W3.CSS include animazioni CSS predefinite che puoi applicare con una sola classe. Non serve scrivere @keyframes.

HTML β€” animazioni W3.CSS
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Animazione all'apertura della pagina -->
<div class="w3-card w3-padding-16 w3-margin w3-animate-left">
  <p>w3-animate-left β€” entra da sinistra</p>
</div>

<div class="w3-card w3-padding-16 w3-margin w3-animate-right">
  <p>w3-animate-right β€” entra da destra</p>
</div>

<div class="w3-card w3-padding-16 w3-margin w3-animate-top">
  <p>w3-animate-top β€” entra dall'alto</p>
</div>

<div class="w3-card w3-padding-16 w3-margin w3-animate-bottom">
  <p>w3-animate-bottom β€” entra dal basso</p>
</div>

<div class="w3-card w3-padding-16 w3-margin w3-animate-zoom">
  <p>w3-animate-zoom β€” effetto zoom-in</p>
</div>

<div class="w3-card w3-padding-16 w3-margin w3-animate-fading">
  <p>w3-animate-fading β€” dissolvenza continua</p>
</div>

Hover con transizioni

HTML β€” effetti hover
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-card w3-padding-16 w3-margin w3-hover-shadow">
  <p>w3-hover-shadow β€” ombra su hover</p>
</div>

<div class="w3-card w3-blue w3-padding-16 w3-margin w3-hover-green">
  <p>w3-hover-green β€” cambia colore su hover</p>
</div>

<div class="w3-card w3-padding-16 w3-margin w3-hover-opacity">
  <p>w3-hover-opacity β€” opacitΓ  ridotta su hover</p>
</div>

Dark Mode

W3.CSS supporta il tema scuro includendo il file w3-theme-black.css oppure usando le classi di colore scuro giΓ  incluse.

HTML β€” dark mode con toggle
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<style>
  body { background: #fff; color: #333; transition: background 0.3s, color 0.3s; }
  body.dark { background: #1a1a1a; color: #e0e0e0; }
  body.dark .w3-card { background: #2d2d2d; color: #e0e0e0; }
</style>

<div class="w3-bar w3-black">
  <span class="w3-bar-item w3-large">πŸŒ™ Dark Mode Demo</span>
  <button onclick="toggleDark()" class="w3-button w3-right w3-yellow">
    β˜€οΈ/πŸŒ™ Toggle
  </button>
</div>

<div class="w3-container w3-padding-32">
  <div class="w3-card w3-padding-16 w3-margin">
    <h2>Titolo</h2>
    <p>Questo contenuto cambia aspetto con la dark mode.</p>
    <button class="w3-button w3-blue">Pulsante</button>
  </div>
</div>

<script>
function toggleDark() {
  document.body.classList.toggle('dark');
}
</script>
πŸ’‘ W3Schools offre anche temi precostruiti come w3-theme-dark scaricabili dal sito ufficiale, che cambiano automaticamente tutti i colori del tema.

Progress Bar

W3.CSS include classi per creare progress bar e loading bar eleganti senza JavaScript (solo CSS).

HTML β€” progress bar
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<!-- Progress bar semplici -->
<div class="w3-light-grey w3-round-xlarge">
  <div class="w3-container w3-blue w3-round-xlarge" style="width:75%">
    <p>HTML β€” 75%</p>
  </div>
</div>
<br>

<div class="w3-light-grey w3-round-xlarge">
  <div class="w3-container w3-green w3-round-xlarge" style="width:60%">
    <p>CSS β€” 60%</p>
  </div>
</div>
<br>

<div class="w3-light-grey w3-round-xlarge">
  <div class="w3-container w3-orange w3-round-xlarge" style="width:40%">
    <p>JavaScript β€” 40%</p>
  </div>
</div>
<br>

<!-- Loading bar animata -->
<div class="w3-light-grey">
  <div class="w3-container w3-teal w3-center" style="width:100%;animation:w3-animate-fading 1s infinite">
    <p>Caricamento...</p>
  </div>
</div>
πŸ† Challenge

Crea una pagina profilo con: progress bar per le competenze (HTML 90%, CSS 80%, JS 70%), una card con avatar circolare, e un pulsante che apre un modal con i dettagli di contatto. Usa solo W3.CSS!

Esercizi pratici

πŸ† Esercizio 1 β€” Pagina portfolio

Crea una landing page con: navbar nera con 4 voci + pulsante "Contatti" a destra, sezione hero con sfondo teal e testo centrato, 3 card affiancate con icona, titolo e descrizione, footer scuro. Usa solo classi W3.CSS.

πŸ† Esercizio 2 β€” Dashboard

Costruisci una dashboard con: sidebar blu laterale con menu a 5 voci, area main con 4 card statistiche affiancate (2+2), tabella con dati fittizi e hover, progress bar per 3 metriche. Aggiungi un toggle per aprire/chiudere la sidebar.

πŸ† Esercizio 3 β€” Form di contatto

Crea un form di contatto con: input nome, email, messaggio con stile W3.CSS (w3-input, w3-select), validazione visiva con bordi rossi/verdi, alert di conferma che appare dopo l'invio, e un modal di ringraziamento.

HTML β€” form con W3.CSS
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">

<div class="w3-container w3-padding-32" style="max-width:500px; margin:auto">
  <h2>Contattami</h2>

  <label>Nome</label>
  <input class="w3-input w3-border w3-margin-bottom" type="text" placeholder="Il tuo nome">

  <label>Email</label>
  <input class="w3-input w3-border w3-margin-bottom" type="email" placeholder="email@esempio.it">

  <label>Argomento</label>
  <select class="w3-select w3-border w3-margin-bottom">
    <option value="" disabled selected>Seleziona...</option>
    <option>Informazioni generali</option>
    <option>Supporto tecnico</option>
    <option>Collaborazione</option>
  </select>

  <label>Messaggio</label>
  <textarea class="w3-input w3-border w3-margin-bottom" rows="4"
    placeholder="Scrivi il tuo messaggio..."></textarea>

  <button onclick="invia()" class="w3-button w3-block w3-blue w3-large">Invia βœ‰οΈ</button>

  <div id="conferma" class="w3-panel w3-green w3-margin-top" style="display:none">
    <h3>βœ… Messaggio inviato!</h3>
    <p>Ti risponderemo entro 24 ore.</p>
  </div>
</div>

<script>
function invia() {
  document.getElementById('conferma').style.display = 'block';
}
</script>

E ora?

Hai imparato le basi e i componenti principali di W3.CSS. Ecco i prossimi passi consigliati:

  • πŸ”— Documentazione ufficiale: w3schools.com/w3css
  • 🎨 Prova i temi colore (w3-theme-*) per personalizzare l'aspetto globale
  • πŸ“± Studia le classi di visibilitΓ  responsive per ottimizzare il mobile
  • ⚑ Combina W3.CSS con JavaScript vanilla per componenti avanzati
  • πŸ†š Confronta con Bootstrap e Tailwind per scegliere il framework giusto
πŸŽ“ Corso completato! Ora hai tutti gli strumenti per costruire siti web moderni e responsive con W3.CSS. Metti in pratica le competenze con i progetti degli esercizi!

Continua con altri corsi sul sito:

Vai al corso CSS β†’Vai al corso Bootstrap β†’Torna ai CorsiπŸ“… Prenota una lezione
Provalo tu
Anteprima