La position
proprietà può aiutarti a manipolare la posizione di un elemento, ad esempio:
.element ( position: relative; top: 20px; )
Rispetto alla sua posizione originale, l'elemento sopra verrà ora spostato dall'alto di 20 px. Se dovessimo animare queste proprietà, possiamo vedere quanto controllo ci dà (anche se non è una buona idea per motivi di prestazioni):
relative
è solo uno dei sei valori per la position
proprietà. Ecco gli altri:
Valori
static
: ogni elemento ha una posizione statica per impostazione predefinita, quindi l'elemento rimarrà nel normale flusso di pagina. Quindi, se è presente un set sinistra / destra / alto / basso / z-index, non ci sarà alcun effetto su quell'elemento.relative
: la posizione originale di un elemento rimane nel flusso del documento, proprio come ilstatic
valore. Ma ora sinistra / destra / alto / basso / z-index funzionerà. Le proprietà posizionali "spingono" l'elemento dalla posizione originale in quella direzione.absolute
: l'elemento viene rimosso dal flusso del documento e gli altri elementi si comporteranno come se non fosse nemmeno lì mentre tutte le altre proprietà posizionali lavoreranno su di esso.fixed
: l'elemento viene rimosso dal flusso del documento come gli elementi posizionati in modo assoluto. In effetti si comportano quasi allo stesso modo, solo gli elementi posizionati fissi sono sempre relativi al documento, non un genitore in particolare, e non sono influenzati dallo scorrimento.sticky
(sperimentale): l'elemento viene trattato come unrelative
valore fino a quando la posizione di scorrimento del viewport non raggiunge una soglia specificata, a quel punto l'elemento prende unafixed
posizione in cui gli viene detto di restare.inherit
: ilposition
valore non viene applicato a cascata, quindi questo può essere utilizzato per forzarlo in modo specifico einherit
il valore di posizionamento dal suo genitore.
Assoluto
Se un elemento figlio ha un absolute
valore, l'elemento genitore si comporterà come se il figlio non fosse affatto presente:
.element ( position: absolute; )
E quando proviamo a impostare altri valori come left
, bottom
e right
scopriremo che l'elemento figlio non risponde alle dimensioni del suo genitore, ma al documento:
.element ( position: absolute; left: 0; right: 0; bottom: 0; )
Per rendere l'elemento figlio posizionato in modo assoluto dal suo elemento genitore, dobbiamo impostarlo sull'elemento genitore stesso:
.parent ( position: relative; )
Ora proprietà quali left
, right
, bottom
e top
farà riferimento all'elemento genitore, in modo che se facciamo l'elemento figlio trasparente possiamo vederlo seduto a destra in fondo del genitore:
Fisso
Il fixed
valore è simile a absolute
poiché può aiutarti a posizionare un elemento ovunque rispetto al documento, tuttavia questo valore non viene influenzato dallo scorrimento. Guarda l'elemento figlio nella demo qui sotto e come, una volta che lo scorri, continua a rimanere in fondo alla pagina:
Questi dati di supporto del browser provengono da Caniuse, che ha più dettagli. Un numero indica che il browser supporta la funzione a quella versione e successive.
Desktop
Cromo | Firefox | IE | Bordo | Safari |
---|---|---|---|---|
4 | 2 | 7 | 12 | 3.1 |
Mobile / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 3 | 8 |
Appiccicoso
Il sticky
valore è come un compromesso tra i valori relative
e fixed
. Al momento della stesura di questo documento, è attualmente un valore sperimentale, il che significa che non fa parte delle specifiche ufficiali e solo parzialmente adottato da browser selezionati. In altre parole, probabilmente non è la migliore idea utilizzarlo su un sito Web di produzione live.
Che cosa fa? Bene, ti consente di posizionare un elemento rispetto a qualsiasi cosa nel documento e quindi, una volta che un utente ha fatto scorrere oltre un certo punto nel viewport, fissa la posizione dell'elemento a quella posizione in modo che rimanga visualizzato in modo persistente come un elemento con un fixed
valore.
Prendiamo il seguente esempio:
.element ( position: sticky; top: 50px; )
L'elemento sarà relativamente posizionato fino a quando la posizione di scorrimento della vista non raggiunge un punto in cui l'elemento si troverà 50px
dalla parte superiore della vista. A quel punto, l'elemento diventa appiccicoso e rimane in una fixed
posizione nella parte 50px
superiore dello schermo.
La seguente demo illustra quel punto, in cui la navigazione in alto è il relative
posizionamento predefinito e la seconda navigazione è impostata sticky
nella parte superiore della visualizzazione. Si prega di notare che la demo funzionerà solo in Chrome, Safari e Opera al momento della stesura di questo documento.
Questi dati di supporto del browser provengono da Caniuse, che ha più dettagli. Un numero indica che il browser supporta la funzione a quella versione e successive.
Desktop
Cromo | Firefox | IE | Bordo | Safari |
---|---|---|---|---|
91 | 59 | No | 88 | 7.1 * |
Mobile / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 8 * |
Maggiori informazioni
Video del 25 febbraio 2015# 110: Panoramica rapida dei valori di posizione CSS
▶ Durata: 13:34 posizione











