it.hideout-lastation.com
Paradiso Per Designer E Sviluppatori


CSS - margine: auto - Come funziona

Usare il margin:auto per centrare un elemento del blocco in senso orizzontale è una tecnica ben nota. Ma ti sei mai chiesto perché o come funziona? Per rispondere a questo, dobbiamo prima dare un'occhiata a come margine: funziona automaticamente. Inoltre nel mix è ciò che auto può fare nei margini, se funziona per il centraggio verticale, e alcuni altri problemi.

Ma prima, cosa fa effettivamente l' auto ?

La definizione di auto varia con elementi, tipi di elementi e contesto . Ai margini, auto può significare una delle due cose: occupare lo spazio disponibile o 0 px. Questi due definiranno layout diversi per un elemento .

"auto" che occupa lo spazio disponibile

Questo è l'uso più comune del margine auto incontriamo spesso. Assegnando l' auto ai margini sinistro e destro di un elemento, occupano lo spazio orizzontale disponibile nel contenitore dell'elemento in modo uguale e quindi l'elemento viene centrato.

Tuttavia, questo funzionerà solo per i margini orizzontali (più sul perché dopo), e inoltre non funzionerà con elementi flottanti e inline e da solo, non può funzionare anche in elementi posizionati in modo assoluto e fisso (vedremo comunque come fare in modo che funzionino).

Faux Float prendendo spazio disponibile

Dal momento che l' auto in entrambi i margini destro e sinistro occupa lo spazio "disponibile" allo stesso modo, cosa pensi che accadrà quando il valore auto viene assegnato a uno solo di quelli?

Un margine sinistro o destro con auto occuperà tutto lo spazio "disponibile" facendo apparire l'elemento come se fosse stato svuotato a destra oa sinistra.

"Auto" calcolato su 0px

Come accennato prima, l' auto non funzionerà in elementi flottati, in linea e assoluti. Tutti questi elementi hanno già deciso i loro layout, quindi non serve usare l' auto per i margini e aspettarsi che venga centrato proprio così.

Ciò vanificherebbe lo scopo iniziale di usare qualcosa come float . Quindi l' auto avrà un valore di 0px in quegli elementi.

auto non funzionerà anche su un elemento di blocco tipico se non ha una larghezza. Tutti gli esempi che ti ho mostrato finora hanno larghezze.

Una larghezza di valore auto avrà margini di 0px . La larghezza di un elemento di blocco in genere copre il suo contenitore quando è auto o 100% e quindi un margine auto verrà calcolato su 0px in questo caso.

Cosa succede ai margini verticali con il valore auto ?

auto nei margini superiore e inferiore viene sempre calcolata su 0px (tranne che per gli elementi assoluti). Le specifiche W3C lo dicono così:

"Se" margin-top "o" margin-bottom "è" auto ", il loro valore utilizzato è 0"

Il perché, beh, è ​​così lontano, un mistero. Potrebbe essere dovuto al tipico flusso di pagine verticali, in cui le dimensioni della pagina aumentano in base all'altezza . Quindi, centrare un elemento verticalmente nel suo contenitore non lo farà apparire centrato rispetto alla pagina stessa, a differenza di quando è fatto orizzontalmente (nella maggior parte dei casi).

E forse a causa di questa stessa ragione, hanno deciso di aggiungere un'eccezione per gli elementi assoluti che possono essere centrati verticalmente lungo l'intera altezza della pagina.

Potrebbe anche essere a causa dell'effetto collasso del margine (un crollo dei margini degli elementi adiacenti) che costituisce un'altra eccezione per i margini verticali.

Tuttavia, quest'ultimo sembra essere un caso improbabile - poiché gli elementi che non collassano i margini - come Floats e gli elementi con overflow diversi da quelli visible, assegnano ancora 0px margini verticali per l' auto .

Centraggio di elementi assolutamente posizionati

Poiché si verifica un'eccezione per gli elementi posizionati in modo assoluto, utilizzeremo il valore auto per centrare uno in verticale e in orizzontale. Ma prima di questo, abbiamo bisogno di scoprire quando sarà margin:auto realtà funziona come lo vogliamo in un elemento assolutamente posizionato.

Qui è dove arriva un'altra specifica W3C:

"Se tutti e tre i" left ", " width "e" right "sono" auto ": prima imposta tutti i valori" auto "per" margin-left "e" margin-right "su 0 ... "

"Se nessuno dei tre è" auto ": se" margin-left "e" margin-right "sono" auto ", risolvi l'equazione sotto il vincolo extra che i due margini ottengono valori uguali"

Questo dice che per auto margini auto orizzontali per ottenere spazi uguali, i valori per left, width e right non dovrebbero essere auto, il loro valore predefinito. Quindi tutto ciò che dobbiamo fare è dare loro un valore in un elemento assolutamente posizionato. left e right dovrebbero avere valori uguali per un centraggio perfetto .

La specifica menziona anche qualcosa di simile per i margini verticali.

"Se tutti e tre i" top ", " height "e" bottom "sono auto, imposta" top "sulla posizione statica ..."

"Se nessuno dei tre è" auto ": se" margin-top "e" margin-bottom "sono" auto ", risolvi l'equazione sotto il vincolo extra che i due margini ottengono valori uguali ..."

Quindi, affinché un elemento assoluto sia centrato verticalmente, i suoi valori top, height e bottom non dovrebbero essere auto .

Ora combinando tutti questi, questo è ciò che otterremo:

Conclusione

Se vuoi scaricare un elemento della tua pagina a destra oa sinistra senza i seguenti elementi che lo avvolgono (come quello che succede con float), ricorda che c'è l'opzione per usare auto per i margini.

Convertire un elemento in assoluto solo per poterlo centrare verticalmente potrebbe non essere una grande idea. Ci sono altre opzioni come flexbox e CSS transform che sono più adatte a quelle.

Designer: 10 brevi libri elettronici per uccidere il tuo tempo libero

Designer: 10 brevi libri elettronici per uccidere il tuo tempo libero

Di solito, passiamo così tanto tempo a controllare i nostri aggiornamenti di stato sui social network e a giocare ai nostri giochi, quindi quando si tratta di percorrere lunghe distanze, forse è tempo di cambiare. Piuttosto che ricorrere ai libri di stampa, perché non afferrare gli ebook in modo da poter passare da un titolo all'altro senza portare tutto quel peso in più .Tut

(Consigli tecnici e di design)

Alternative Bitcoin: 15 Cryptocurrencies che dovresti sapere

Alternative Bitcoin: 15 Cryptocurrencies che dovresti sapere

Bitcoin ha registrato una crescita eccezionale nel 2017, tuttavia, il suo prezzo è quasi arrivato a 4, 5k USD, limitando così ulteriori investimenti a causa del prezzo elevato. Ed è per questo che altcoin come Ethereum e Dash stanno guadagnando la ribalta in questi giorni.Se me lo chiedi, investire in altcoins è una buona strategia in quanto sono nuovi e di basso valore rispetto ai Bitcoin e, quindi, hanno più possibilità di crescere nel corso del tempo. E la

(Consigli tecnici e di design)