Struttura HTML
Page Title

Hello World

Elementi Comuni
Testo e Intestazioni

Heading 1

...
Heading 6

Paragraph text

Bold Italic

Link e Immagini
Link text #section">Anchor link Description
Liste
  1. First
Form
Tipi di Input
Select e Textarea
HTML Semantico
<header>Contenuto introduttivo o navigazione
<nav>Link di navigazione
<main>Contenuto principale della pagina (uno per pagina)
<section>Raggruppamento tematico del contenuto
<article>Contenuto autonomo
<aside>Barra laterale o contenuto tangenziale
<footer>Footer per sezione o pagina
<figure>Immagine o diagramma con didascalia
<figcaption>Didascalia per
Selettori CSS
Selettori di Base
elementp { } — tutti gli elementi

.class.card { } — selettore di classe
#id#main { } — selettore di id
*Selettore universale (tutti gli elementi)
Combinatori
A BDiscendente (B dentro A)
A > BSolo figlio diretto
A + BFratello adiacente (B subito dopo A)
A ~ BFratello generale (B dopo A)
Pseudo-classi
:hoverMouse sull'elemento
:focusElemento con focus
:first-childPrimo figlio del genitore
:nth-child(n)n-esimo figlio (2n = pari, odd = dispari)
Box Model
.box { margin: 10px; /* outside */ border: 1px solid #333; /* edge */ padding: 15px; /* inside */ width: 200px; box-sizing: border-box; /* include pad+border */ }
Notazione Abbreviata
margin: 10pxTutti i lati
margin: 10px 20pxAlto/basso | sinistra/destra
margin: 10px 20px 15pxAlto | sinistra/destra | basso
margin: 10px 20px 15px 5pxAlto | destra | basso | sinistra
Flexbox
Contenitore
.flex-container { display: flex; flex-direction: row; /* row | column */ justify-content: center; /* main axis */ align-items: center; /* cross axis */ gap: 10px; flex-wrap: wrap; }
Proprietà degli Elementi
flex: 1Espandi per riempire lo spazio disponibile
flex-grow: 2Rapporto di crescita rispetto ai fratelli
flex-shrink: 0Non ridurre sotto la base
flex-basis: 200pxDimensione iniziale prima di crescita/riduzione
align-self: flex-endSovrascrive l'allineamento del contenitore
order: -1Ordine visivo (default 0)
Grid
Contenitore
.grid { display: grid; grid-template-columns: 1fr 2fr 1fr; grid-template-rows: auto; gap: 10px; }
Posizionamento Elementi
.item { grid-column: 1 / 3; /* span col 1-2 */ grid-row: 1 / 2; } /* shorthand: repeat, minmax */ grid-template-columns: repeat(3, 1fr); grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
Posizionamento
staticFlusso normale predefinito (nessun offset)
relativeOffset dalla posizione normale
absoluteOffset rispetto all'antenato posizionato più vicino
fixedOffset rispetto alla viewport (rimane allo scroll)
stickyRelativo fino alla soglia di scroll, poi fisso
Esempio
.parent { position: relative; } .child { position: absolute; top: 0; right: 0; /* top-right corner */ }
Media Query
/* Mobile-first: base styles for small screens */ .container { padding: 10px; } @media (min-width: 768px) { .container { max-width: 720px; } } @media (min-width: 1024px) { .container { max-width: 960px; } }
Breakpoint Comuni
480pxTelefoni piccoli
768pxTablet
1024pxDesktop piccoli / tablet in orizzontale
1280pxDesktop