Stilizzare gli elenchi
ul {
list-style-type: square; /* disc | circle | square | none */
list-style-position: inside;
}
ol {
list-style-type: upper-roman; /* decimal | upper-roman | lower-alpha ... */
}
list-style-type: none è molto usato per trasformare una <ul> in un menu di navigazione, rimuovendo i pallini di default.
Stilizzare le tabelle
table {
width: 100%;
border-collapse: collapse; /* unisce i doppi bordi tra celle adiacenti in un bordo unico */
}
th, td {
border: 1px solid #ccc;
padding: 10px;
text-align: left;
}
tr:nth-child(even) {
background-color: #f9f9f9; /* righe alternate colorate, per leggibilità */
}
border-collapse: collapse è quasi sempre la prima riga da aggiungere quando si stilizza una tabella: senza, ogni cella ha il proprio bordo doppio, con un effetto visivo poco pulito.
display e visibility
span {
display: block; /* cambia il comportamento dell'elemento, non il tipo */
}
.nascosto {
display: none; /* rimuove l'elemento dal flusso, non occupa spazio */
}
.invisibile {
visibility: hidden; /* nasconde l'elemento MA lo spazio resta occupato */
}
La differenza tra display: none e visibility: hidden è una domanda classica: il primo elimina lo spazio, il secondo lo mantiene vuoto.
Posizionamento
.relativo {
position: relative;
top: 10px; /* si sposta di 10px rispetto alla SUA posizione normale */
}
.assoluto {
position: absolute;
top: 0;
right: 0; /* si posiziona rispetto al primo antenato con position diverso da static */
}
.fisso {
position: fixed;
bottom: 20px;
right: 20px; /* resta fisso anche scorrendo la pagina, es. un pulsante "torna su" */
}
Z-index
Quando più elementi posizionati si sovrappongono, z-index decide chi sta sopra:
.pulsante-fisso {
position: fixed;
z-index: 1000; /* valori più alti stanno sopra */
}
z-index funziona solo su elementi con position diverso da static (il valore di default).
Esercitazione pratica
Stilizza una tabella con bordi puliti e righe alternate colorate, trasforma un elenco in un piccolo menu orizzontale senza pallini, e crea un pulsante “torna su” con position: fixed in basso a destra.