css orizontale și verticale de centrare absolută

css orizontale și verticale de centrare absolută

HTML5 și CSS3 practica de la zero la rezultatul!

Compatibilitate cross-browser (inclusiv IE8-10)

Nu marcaj special, stiluri de cel puțin

Adaptive funcționează cu procente și min- / Max

O clasă pentru orice conținut de centrare

Centrarea indiferent de indentare (fără cutie-dimensionare!)

Blocuri pot fi ușor redimensionate

Acesta funcționează excelent cu imagini

Este necesar să se precizeze înălțimea

overflow Setarea recomandată: automată pentru a împiedica apariția conținutului de transfuzie

Ea nu funcționează în Windows Phone

Compatibilitate Browser:

Chrome, Firefox, Safari, Mobile Safari, IE8-10.

Metoda de centrare absolută testat și funcționează impecabil în versiunile recente ale Chrome, Firefox, Safari, Mobile Safari și chiar IE8-10.

După studierea caietul de sarcini și documentația care este modul în care am înțeles principiul absolut Centrarea:

În marja normală flux de conținut: auto; este egal cu „0“ pentru partea de sus și de jos. W3.org. În cazul în care „margin-top“ sau „margin-bottom“ montat pe „auto“, este 0 este utilizat pentru valoarea sa.

Poziția: absolută; Unitate de ieșire a unui flux de conținut convențional, afișarea conținutului rămas ca și în cazul în care blocul nu a fost acolo. Developer.mozilla.org. ... element de pozitionat absolut este scos din fluxul și, prin urmare, nu ocupă spațiu

Instalarea sus: 0; stânga: 0; bottom: 0; dreapta: 0; stabilește un nou dreptunghi de browser pentru blocul de încadrare. În această etapă, blocul va umple tot spațiul disponibil într-un element de pătură părinte, care este corpul recipientului sau a corpului poziția: relativă;. Developer.mozilla.org. Pentru elementele de proprietăți absolut poziționate sus, bloc unitate de dreapta, de jos și din stânga marginile devierilor determinate cuprind (în raport cu care elementul poziționat).

Lățimea Numirea sau unitate înălțime împiedică ocuparea unui bloc din spațiul disponibil și forțele browser-ul pentru a calcula marja: auto pe baza noii casetei de încadrare. Developer.mozilla.org. Element de câmp [absolut poziționat] este apoi poziționat în interiorul acestor decalaje.

Deoarece blocul este poziționat complet și, prin urmare, în afara fluxului normal, browser-ul atribuie valorile corespunzătoare și marja-top-margine inferioară, centrarea elementului într-o granițe predefinite.
W3.org. Dacă nici unul dintre cele trei [de sus, de jos, înălțime] nu este setat la „auto“: în cazul în care „marja de-top“, și „margin-bottom“ suport pentru „auto“, pentru a alege o ecuație cu constrângerea suplimentară că două câmpuri obține valori egale. Cu alte cuvinte, aliniați unitatea verticală

Se pare, absolut Centering - al cărui scop este marja de utilizare: auto; în conformitate cu caietul de sarcini, și, prin urmare, ar trebui să funcționeze în toate browserele supunându standarde.

TL; DR. Elementele poziționate absolut nu sunt afișate în fluxul normal, astfel încât marja: auto; centrată pe verticală, în limitele stabilite de sus: 0; stânga: 0; bottom: 0; dreapta: 0;.

în interiorul containerului

Cu absolută Centering pot fi plasate în interiorul caseta de conținut poziția containerului: în raport cu alinierea în interiorul containerului! Restul exemplelor demo presupune că aceste stiluri sunt incluse și oferă cursuri de adăugat la punerea în aplicare a diferitelor caracteristici.

css orizontale și verticale de centrare absolută

Dacă aveți un antet fix sau pe care doriți să adăugați alte decalaje, pur și simplu completați stiluri bloc de conținut ceva de genul de top: 70px;. În așteptarea margin: auto;, blocul de conținut va fi centrată pe verticală, în limitele solicitate de tine folosind partea de sus stânga jos și dreapta.

Este de asemenea posibil să se mute blocul de conținut la dreapta sau la stânga, menținând în același timp centrarea sa verticală, prin dreapta: 0; stânga: auto; pentru a compensa dreapta sau la stânga: 0; dreapta: auto; compensat la stânga.

css orizontale și verticale de centrare absolută

adaptabilitate

Poate cel mai mare avantaj al Absolute Centrarea prin aceea că lățimea / înălțimea bazată pe munca la suta perfect! Chiar și stiluri min lățime / max-min lățime și înălțime / max-înălțime se comporta cum era de așteptat de la blocurile mai adaptive. Apoi, adăugați element de umplutură; Absolută Centering nu minte!

css orizontale și verticale de centrare absolută

revărsare

css orizontale și verticale de centrare absolută

redimensionarea

Absolute Centering sprijină unitatea de centrare, indiferent de modul în care modificarea dimensiunii sale. Instalarea min- / MAX- limita dimensiunea blocului la dorit și de prevenire a debordant cutie / container. Dacă nu utilizați redimensionarea: ambele, puteți adăuga o tranziție la o animatie de dimensiuni diferite. Asigurați-vă că pentru a seta overflow: auto, astfel încât utilizatorii pot face dimensiunea blocului este mai mică decât conținutul său. Absolute Centering este singura testată alinierea tehnologiei pe verticală, care susține cu succes redimensionarea caracteristică: ambele.

Setați ajustarea max-lățime / înălțime max-pentru orice indentare a blocului de conținut, în caz contrar se va revărsa recipientul său.

redimensiona proprietate nu este acceptat pe browsere mobile și IE 8-10, oferind astfel o modalitate alternativă de a redimensiona în cazul în care experiența utilizatorului este esențială.

Atunci când un utilizator încearcă să modifice dimensiunea și combinația de proprietăți redimensiona tranziție care produce o întârziere egală cu timpul de tranziție.

css orizontale și verticale de centrare absolută

imagine

Imagini, de asemenea, locul de muncă! Se aplică la imaginea de clasă / stilul și setați înălțimea: auto; cum s-ar fi făcut cu imaginea, mărimea care variază la scara adaptiv cu containerul. Rețineți că înălțimea: auto; Acesta funcționează pentru imagini, dar face regulat caseta de conținut întinde pentru a umple rezervorul, cu excepția cazului în care ați utilizat metoda de înălțime variabilă. Acest lucru este, probabil, pentru că browser-ul trebuie să fie luate în considerare înălțimea imaginii afișate, astfel încât marja: auto, în cele din urmă să lucreze ca și cum ați spus înălțime în toate browserele testate.

css orizontale și verticale de centrare absolută

înălțime variabilă

Absolut necesită de fapt o Centering înălțime de declarație, dar poate fi pe bază de procent și monitorizat max înălțime. Din acest motiv, această metodă este ideal pentru scenarii adaptive, doar asigurați-vă că pentru a seta un preaplin adecvat.

O modalitate de a eluda înălțimea declarat este de a adăuga afișare: tabel, în care caseta de conținut este centrat, indiferent de lungimea conținutului. În unele browsere, acest lucru cauzează probleme (mai ales în IE și Firefox), așa că prietenul meu Kelly (Kalley) de testare scrise ELL Creative Modernizr'a pentru a verifica suportul browser-ul această metodă de centrare. Acum puteți face o îmbunătățire progresivă

Aceasta amenință distrugerea de compatibilitate cross-browser. Va trebui să ia în considerare utilizarea unor tehnici alternative. în cazul în care se pare că testul Modernizr'a nu satisface așteptările dumneavoastră.

Inconsistente cu schimbarea în dimensiune.

Firefox / IE8: Utilizarea de afișare: tabel aliniază caseta de conținut de pe partea de sus, dar va fi în continuare centrată orizontal.

IE9 / 10: Utilizare afișare: tabel aliniază caseta de conținut de pe partea de sus și din stânga.

Mobile Safari: bloc Conținut centrat pe verticală, dar devine ușor descentrată orizontal pentru utilizare pe baza procentului din lățimea.

css orizontale și verticale de centrare absolută

Alte echipamente

Marja negativă (Margini negativă)

Probabil metoda cea mai familiară. Dacă știți dimensiunile exacte, puteți centra blocul în interiorul containerului cu un câmp negativ egală cu jumătate din lățime / înălțime (plus umplutură, în cazul în care nu utilizați caseta de reducere a dimensiunilor: de frontieră-box), împreună cu primele: 50%; stânga: 50%;. Trebuie remarcat faptul că aceasta este doar una dintre metodele testate care funcționează așa cum ar trebui, în IE6-7.

Acesta funcționează bine cross-browser, inclusiv IE6-7

Este nevoie de un minim de cod

Neadaptiven. Ea nu funcționează cu pe baza valorii de interes și nu poate fi setat min- / Max

Conținutul poate overflow recipientul

Pentru a compensa padding sau utilizarea box-dimensionare: de frontieră-box

css orizontale și verticale de centrare absolută

Conversie (Transformări)

Una dintre cele mai simple metode în jurul cu aceleași avantaje ca centrarea absolută, dar sprijină înălțime variabilă. Pentru a aloca bloc de centrare de conținut transforma: traduce (-50%, - 50%) cu versiunea prefixele furnizor necesare și partea superioară: 50%; stânga: 50%;.

Conținutul de înălțime variabilă

Este nevoie de un minim de cod

Acesta nu va funcționa în IE8

Este nevoie de prefixele versiune furnizor

Pot interfera cu alte efecte de conversie de transformare

Uneori marginile textului și în cele din urmă apar neclare

css orizontale și verticale de centrare absolută

Tabelul de celule (Tabelul Cell)

Este, în general, poate fi cea mai bună metodă, pur și simplu pentru că înălțimea variază de-a lungul cu conținutul, și de sprijin browser-ul este excelent. Principalul dezavantaj - markup suplimentar, care necesită un total de trei elemente pentru centrarea finală.

Conținutul de înălțime variabilă

Conținutul turnat mamă la tracțiune

Acesta funcționează bine cross-browser

Necesită suplimentare de marcare

css orizontale și verticale de centrare absolută

Inline-Block

Este în cerere mare: centrarea Inline-Block. Ideea de bază este de a utiliza display: inline-bloc, vertical-align: mijloc și pseudo-bloc pentru centrarea conținutului în interiorul containerului. Conceptul său este cel mai bine explicată în articolul CSS-Tricks Centrarea în obscuritate (Centrarea în necunoscut). Realizarea mea de câteva trucuri noi pe care nu le-am văzut, și care ajută la rezolvarea unor probleme.

Lățimea blocului de conținut trebuie să spun că nu mai mult de 100% din 0,25em containerului minus, în cazul în care conținutul containerului este mai larg, ca un bloc de text cu un lung, rupt în secțiuni. În caz contrar, blocul de conținut va fi deplasat în sus, ceea ce va determina utilizarea: după. Aplicație: înainte de forțarea conținutul muta până la 100%!

În cazul în care blocul de conținut este obligat să ia cât mai mult din spațiul orizontal disponibil, puteți adăuga un max-lățime: 99%;, care lucrează pentru containere mari, sau max-width: calculat (100% - 0.25em), în funcție de browserele acceptate și tu lățimea containerului.

Câștigul este aproape la fel ca în metoda tabelul-Cell, dar am respins inițial această metodă datorită faptului că, în multe privințe, este un hack. Cu toate acestea, sprijinul browser-ul său este considerabilă și rămâne o tehnică populară.

Conținutul de înălțime variabilă

Conținutul turnat mamă la tracțiune

Acesta funcționează bine cross-browser și pot fi adaptate pentru a sprijini IE7

Aceasta se bazează pe marja-stânga: -0.25em; pentru alinierea corectă în orizontală, dar poate necesita o ajustare sub diferite fonturi / dimensiuni

Lățimea blocului de conținut nu are nevoie să revendicați mai larg container 100% minus 0,25em.

css orizontale și verticale de centrare absolută

Conținutul poate fi orice lățime și înălțime, chiar deversează elegant

Acesta poate fi utilizat pentru mai multe tehnici avansate de aspect.

Nu suport IE8-9

Este nevoie de un container sau corp stiluri

Pentru a lucra în browsere moderne necesita mai multe prefixe versiune furnizor cu o sintaxă diferită

Există probleme de performanță

css orizontale și verticale de centrare absolută

recomandări

Fiecare avantaje tehnologice. Care dintre ele pentru a alege - practic se reduce la problema pe care browsere pe care le suporta si se pare ca aspectul actual, dar pentru alegerea corectă a caracteristicilor dorite, utilizați tabelul de comparație.

Absolute Centering works mare ca o soluție simplă introductivă fără griji. În cazul în care ați utilizat anterior Margini negative, utilizați în loc absolut Centering. Nu trebuie să se ocupe de matematica plictisitor pentru a calcula câmpuri sau marcaje suplimentare, și se pot schimba dimensiunea adaptivă a blocurilor.

Dacă un site necesită conținutul de înălțime variabilă, cu cea mai bună compatibilitate browser-ul, încercați tehnica de masa-Cell sau inline-Block. Dacă sunteți un dezvoltator foarte bun, da o șansă și flexbox profita de avantajele oferite de aspecte sale avansate.

Revizie: Echipa webformyself.

Cele mai multe știri IT si dezvoltare web pe canalul nostru-Telegram

css orizontale și verticale de centrare absolută

HTML5 și CSS3 practica de la zero la rezultatul!