MC, 20:48 sobota, 15.09.2012 r.
Ilustracja do artykułu: CSS & vertical-align: middle - Wyśrodkowanie obrazka w pionie wewnątrz elementu div

CSS & vertical-align: middle - Wyśrodkowanie obrazka w pionie wewnątrz elementu div

Atrybut stylów CSS vertical-align, może sprawiać problemy, jeśli nie do końca wie się w jakim kontekście go używać w sposób poprawny. Chciałbym na łamach strony podzielić się bardzo prostym przykładem jego użycia, polegającym na wycentrowaniu w pionie obrazka wewnątrz div-a.

W jakim kontekście działa vertical-align?

Atrybut stylu vertical-align, działa w obrębie jednej linii tekstowej - jest to kluczowa informacja pozwalająca zrozumieć zachowanie elementów obdarzonych tym stylem, jak i umiejętne go stosowanie. Spójrzmy na poniższy przykład:
<div style="height: 300px; width: 300px; border: 2px solid black; text-align: center;">
<img src="images/favicon.png" style="vertical-align: middle;" />
</div>

Jak widzimy, pomimo że obrazek opatrzony jest stylem "vertical-align: middle;", nie znajduje się on w centrum div-a. Jak już wspomnieliśmy, atrybut ten spróbuje wyrównać obrazek do środka linii tekstu, która ma znacznie mniejszą wysokość niż sam obrazek. I w tym problem. Możemy jednak przypisać naszej warstwie, zdefiniowaną przez nas wysokość linii. Jeśli przydzielimy jej wartość równą wysokości div-a, wtedy osiągniemy zamierzony cel - obrazek zostanie wyrównany do środka w pionie, i znajdzie się w samym centrum ramki. Zerknijmy więc, czy tak faktycznie będzie:

<div style="height: 300px; width: 300px; line-height: 300px; border: 2px solid black; text-align: center; margin: 0 auto;">
<img src="images/favicon.png" style="vertical-align: middle;" />
</div>

Jest tak, jak założyliśmy przed chwilą. Zatem w ten prosty sposób możemy wycentrować w pionie elementy strony, używając jedynie CSS-a.

Komentarze (4)

Imię:
Treść:
Administrator 2019-02-11 08:03:35
@Krzysztof, dziękuję za komentarz.
Krzysztof 2019-02-11 05:50:29
Stary wszystko jasne, trzeba dokładnie czytać. Dzięki bo po 2s czytania obrazek wycentrowałem właśnie po przez vertical-align
Administrator 2017-06-20 07:30:43
@WRN, co dokładnie jest niejasne?
WRN 2017-06-20 01:46:19
Nie rozumiem tego co jest tu opisane, opis nie jest jasny.