Jak wyśrodkować diva w CSS - wszystkie powszechnie stosowane metody w 2021 roku
Damian Wróblewski - listopad 2021
Spis treści
CSS to technologia, która z uwagi na fakt, że wielu developerów ją zaniedbuje, może przysporzyć wielu problemów i wygenerować godziny spędzone na nierównej szermierce ze stylami. W tym wpisie poruszymy zagadnienie, które przyczyniło się do powstania kilku memów, mianowicie - centrowanie elementów. Temat zdawać by się mogło trywialny, jednak jak się okazuje - tylko "na papierze". Problem centrowania elementów możemy w CSS rozwiązać na kilka sposobów, zależnie od sytuacji.
Flexbox
Jest to obecnie najpowszechniej stosowana i zalecana metoda centrowania elementów.
1.parent {2 display: flex;3 justify-content: center; // wyśrodkowanie w poziomie4 align-items: center; // wyśrodkowanie w pionie5}
By wyśrodkować element dziecka na środku okna, rodzic musi być "rozciągnięty" na całą szerokość i wysokość okna:
1.parent {2 width: 100vw;3 height: 100vh;4 display: flex;5 justify-content: center; // wyśrodkowanie w poziomie6 align-items: center; // wyśrodkowanie w pionie7}
LUB
1.parent {2 width: 100vw;3 height: 100vh;4 display: flex;5}67.child {8 margin: auto;9}
Grid
Wyśrodkować elementy możemy również za pomocą grida:
1.parent {2 display: grid;3 place-content: center; // wyśrodkowanie w pionie i poziomie4}
LUB
1.parent {2 display: grid;3}45.child {6 margin: auto;7}
Position
Nieco starszą, ale również powszechnie stosowaną metodą na wycentrowanie elementu w poziomie i pionie jest wykorzystanie właściwości position:
1.parent {2 position: relative;3}45.child {6 position: absolute;7 top: 50%;8 left: 50%;9 transform: translate(-50%, -50%);10}
W tym przypadku należy pamiętać, że elementy z position: absolute wychodzą poza flow dokumentu, co może rodzić problemy z pozycjonowaniem innych elementów znajdujących się w pobliżu.
Margin
Z uwagi na sposób obliczania wysokości elementów w dokumencie, za pomocą właściwości margin możemy jedynie wyśrodkować elementy w osi poziomej. Należy tutaj pamiętać, że pozycjonowany element musi mieć określoną właściwość width:
1.parent {2 width: 100vw;3}45.child {6 width: 100px;7 margin: 0 auto;8}
Wyśrodkowanie treści
By wyśrodkować treść wewnątrz elementu blokowego możemy skorzystać z właściwości text-align oraz vertical-align:
1.parent {2 text-align: center; // wyśrodkowanie w poziomie3 vertical-align: middle; // wyśrodkowanie w pionie4}
Jeśli zauważyłeś błąd lub nieścisłość we wpisie lub znasz inny ciekawy sposób rozwiązania tego problemu, odezwij się do mnie przez social media lub przez formularz na stronie.
Bądź ze mną w kontakcie na Twitterze lub LinkedIn, jeśli interesuje Cię świat aplikacji webowych 😉
Dołącz do dyskusji