To już klasyka i podstawy podstaw, które powinniśmy zapamiętać (niezależnie czy używamy Bootstrapa, czy flexboxa albo grida – te podstawy trzeba znać) – centrowanie elementu div w pionie i poziomie aby znajdował się idealnie w centrum ekranu.
Oto nasz kwadrat w markupie HTML:
<div class="square"></div>
Tym, aby zamienić ten element na kwadrat zajmuje się nasz CSS, nadając mu wysokość, szerokość oraz kolor:
.square {
background-color: teal;
width: 200px;
height: 200px;
}
Aby wypozycjonować go idealnie w środku ekranu potrzebujemy odpowiedniego position:
.square {
background-color: teal;
width: 200px;
height: 200px;
position: absolute;
top: 50%;
left: 50%;
}
Po sprawdzeniu tego kodu dojdziemy do wniosku, że coś nie działa – pytanie tylko co dokładnie. Gdybyśmy tak zmierzyli idealnie linijką, to zobaczymy, że w istocie nasz element zaczyna się idealnie w środku ekranu. Nam jednak chodziło o to, aby znajdował się (to jest miał swój środek) idealnie w środku ekranu, nie zaczynał się.
Możemy to osiągnąć dopisując jedną linijkę kodu CSS, którą warto zapamiętać:
.square {
background-color: teal;
width: 200px;
height: 200px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
A co, jeżeli chcemy wycentrować tylko w poziomie? Wtedy z pomocą przyjdzie nam translateX:
.square {
background-color: teal;
width: 200px;
height: 200px;
position: absolute;
top: 0;
left: 50%;
transform: translateX(-50%);
}
Analogicznie, jeżeli chcemy wycentrować tylko w pionie, użyjemy translateY:
.square {
background-color: teal;
width: 200px;
height: 200px;
position: absolute;
top: 50%;
left: 0;
transform: translateY(-50%);
}