Pozycjonowanie

Pozycjonowanie to ważna umiejętność w repertuarze osoby piszącej css-a, jest to czasem jedyne rozwiązanie, aby poprawić denerwujące nas zachowanie np. przeglądarki.

Pozycjonowanie rodzaje i podstawy

Pozycjonowanie określa relacje, między elementami, a także mówi czy element powinien znajdować się we flow dokumentu, czy też nie. Dlatego zobaczmy podstawowe wartości własność position.

static: Jest to wartość domyślna, która pozostawia element w jego normalnym miejscu w układzie strony.

relative: Pozycjonuje element względem jego normalnego miejsca, ale umożliwia przesuwanie go za pomocą właściwości top, right, bottom i left.

absolute: Pozycjonuje element względem jego najbliższego pozycjonowanego przodka, ignorując inne elementy na stronie.

fixed: Pozycjonuje element względem okna przeglądarki, co oznacza, że ​​pozostanie na stałej pozycji nawet podczas przewijania strony.

position: sticky to stosunkowo nowa właściwość CSS, która pozwala elementowi zachować się jak position: relative do momentu, gdy nie jest przewijany poza określony obszar na stronie, a następnie zachowuje się jak position: fixed. Jest to bardzo przydatne narzędzie do tworzenia chociażby nagłówków takich jak w wersji mobilnej tej strony.

Szerzej o tych wartościach będzie w kolejnych akapitach artykułu.

relative vs absolute

Pozycjonowanie relative jest najpopularniejszym rozwiązaniem, ponieważ pozwala na lekkie korekty pozycji względem wyjściowej pozycji elementu. Natomiast pozycjonowanie typu absolute jest częściej używane w przypadkach kiedy elementy mają nachodzić na siebie, czy byś w ustalonym miejscu względem dokumentu. Position relative, jak wcześniej napisałem pozycjonuje się w obec swojej wyjściowej pozycji, pozostając we flow dokumentu. A absolute wyrzuca element z flow dokumentu (czyli jeśli umieścił być diva w miejscu bazowym elementu position absolute, to również wyświetlił by się w jego miejsu ignorując element z pozycjonowaniem absolute), i pozycjonuje się względem najbliżeszgo rodzica z nie domyślnym pozycjonowaniem(nie static).
Ale jak możemy pozycjonować? Zarówno w absolute i relative mamy własność top, bottom, left, rigth, lecz działają one nieco inaczej. W position absolute, wartości te określają odległość od elementu względem, którego pozycjonujemy, a w relative określamy o ile w daną stronę ma odsunąć się element względem pozycji wyjściowej.
Tak wygląda pozycjonowanie elementu w CSS.

.element-absolute{
  position: absolute;
  top: 20px; /*będzie znajdował się 20px od góry od elementu względem którego pozycjonujemy */
  left: 10px;
}
.element-relative{
  position: relative;
  top: 20px; /*będzie znajdował się 20px w dół od swojej pozycji początkowej */
  left: 10px;
}
fixed vs sticky

Pozycjonowanie fixed umieszcza element w określonym miejscu na stronie, podobnie jak postion absolute.Pozycja elementu jest określana względem okna przeglądarki lub najbliższego rodzica. Element zostaje usunięty z flow dokumentu, co oznacza, że ​​inne elementy nie będą się wokół niego układać. To pozycjonowanie często jest używane do elementów, które mają być widoczne cały czas na ekranie, np. pasków nawigacyjnych i przycisków czatu.

Position sticky umożliwia przyklejenie elementu do określonego miejsca na stronie, aż do momentu, gdy zostanie osiągnięta inna pozycja (najczęściej jest to góra ekranu, lub koniec wysokości/szerokości elementu). Pozycja jest określana względem jego najbliższego rodzica z nie domyślnym pozycjonowaniem (nie static) lub względem okna przeglądarki (jeśli rodzic nie ma scrollowania). Element pozostaje częściowo w flow dokumentu, co oznacza, że ​​inne elementy mogą się wokół niego układać, dopóki nie zostanie "przyklejony" (osiągnie daną pozycje i na niej zostanie). Często używane do elementów, które powinny być widoczne podczas scrollowania określonego obszaru, np. boczne menu na stronach z dużą ilością treści. Atrybutem częśto łączącym się z position sticky jest z-index, mówiący o tym co ma pierwszeństwo w wyświetlaniu się na stronie. Im wyższy z-index tym wyżej wyświetlony będzie element w przypadku nakładania się.

.nawigacja {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;/*często używane pozycjonowanie, aby element pozostał na górze strony,*/
  }
  .menu {
    position: sticky;
    top: 50px; /* Początkowa odległość od góry*/
    left: 0;
  }
Inherit i static

Te pozycjonowania są najprostsze do zrozumienia, inherit oznacza, odziedziczyć pozycjonowanie po rodzicu (sama wartość relative,absolute,fixed,itp.). A position static to domyślne ustawione pozycjonowanie, umieszcza element we flow dokumentu i umieszcza je w kolejności określonej przez właściwość display:
W tym artykule dowiedziałeś się najważniejszych rzeczy o pozycjonowaniu w css