Generatore della proprietà CSS position
Strumento gratuito per passare dall'interfaccia fra i cinque valori static, relative, absolute, fixed e sticky, osservare in anteprima l'effetto di top/right/bottom/left e z-index e generare il codice CSS corrispondente.
Consigli per l'uso
- Impostando position: relative e indicando top e left, il riquadro B si sposta soltanto visivamente rispetto alla sua posizione originaria. Notate che la posizione del riquadro C, l'elemento successivo, non cambia.
- Passando ad absolute o a fixed, il riquadro B esce completamente dal flusso normale e potete osservare come il riquadro C risalga a occuparne lo spazio.
- z-index stabilisce l'ordine di sovrapposizione fra elementi, ma non ha alcun effetto su un elemento con position: static. Prima di provare «Specifica z-index», cambiate quindi il valore di position.
- position: sticky produce effetto solo all'interno di un contenitore scorrevole. Fate scorrere davvero il riquadro di anteprima per vedere il momento in cui l'elemento si fissa.
- Il codice CSS generato si copia e si incolla direttamente nel vostro foglio di stile: provate a verificare che la resa sulla pagina reale sia la stessa.
Domande frequenti
A proposito — il lungo cammino verso la standardizzazione di position: sticky
La proprietà CSS position ha avuto per lungo tempo quattro soli valori: static, relative, absolute e fixed. Per realizzare intestazioni o barre laterali che si fissano a un certo punto dello scorrimento bisognava monitorare in JavaScript l'evento di scroll e passare manualmente a position: fixed: non esisteva alcun meccanismo interamente in CSS.
L'idea di position: sticky compare nelle specifiche (CSS Positioned Layout Module Level 3) già intorno al 2012, ma l'implementazione era complessa: Safari fu il primo, verso il 2013, con il prefisso di WebKit (-webkit-sticky). Chrome adottò la parola chiave standard nel 2017 e solo qualche anno dopo, verso il 2020, il valore divenne utilizzabile con tranquillità su tutti i browser principali, Firefox compreso.
Il comportamento «si fissa a un certo punto» si spiega, sul piano implementativo, come un ibrido fra relative e fixed: normalmente l'elemento segue il flusso come relative e, quando lo scorrimento raggiunge l'offset indicato, si comporta come se fosse passato a fixed. Il fatto che questo scambio avvenga solo entro l'area di scorrimento del genitore è all'origine della maggior parte dei casi in cui sticky «non funziona».
Oggi sticky è una tecnica ricorrente del design web: fissare la riga di intestazione di una tabella, far seguire l'indice allo scorrimento della pagina e così via. Non dover più monitorare lo scorrimento in JavaScript è stato un progresso importante sia per le prestazioni sia per la semplicità del codice.