38. Indeks elementu HTML
W poprzedniej części kursu CSS dowiedzieliśmy się o pozycjach w jakich może być wyświetlony element HTML. Domyślnie jest on wyświetlony w pozycji statycznej, jednak możemy to zmienić za pomocą właściwości position. Gdy element HTML stanie się elementem wyświetlonym w pozycji relatywnej, absolutnej lub ustalonej to pozycję takiego elementu HTML możemy kontrolować za pomocą właściwości: top, right, bottom, left.
Co się stanie, gdy zmienimy pozycję kilku elementów HTML i będą one znajdowały się jeden na drugim? Który z nich zobaczymy jako pierwszy?
Na te pytania odpowie nam ta część kursu CSS.
Na początek dodamy kilka przykładowych elementów HTML do części body dokumentu HTML.
<body>
<div id="rodzic">
<div id="pierwszy">pierwsze dziecko elementu - #rodzic</div>
<div id="drugi">drugie dziecko elementu - #rodzic</div>
<div id="trzeci">trzecie dziecko elementu - #rodzic</div>
</div>
</body>Rezultat:

Naszym oczom ukazały się cztery elementy div. Pierwszy z nich jest rodzicem pozostałych trzech elementów div. Za pomocą właściwości left oraz bottom sprawimy, aby elementy te znalazły się jeden na drugim.
Z poprzedniej części kursu CSS wiemy, że aby właściwość left oraz bottom oddziaływały na element HTML, to musi być on wyświetlony w pozycji relatywnej (relative), absolutnej (absolute) lub ustalonej (fixed).
Rezultat:

Od tej pory elementy dzieci przesłaniają siebie nawzajem. Domyślnie najbardziej dla nas widocznym elementem HTML będzie ten element dziecko, który został umieszczony jako ostatni w kodzie HTML (w swoim rodzicu).
Domyślną kolejność z jaką widzimy przesłaniające się elementy HTML, wyświetlone w pozycji relatywnej, absolutnej lub ustalonej, możemy kontrolować za pomocą właściwości z-index. Im wyższą ustalimy wartość właściwości z-index dla danego elementu HTML tym bardziej ten element będzie dla nas widoczny, w przypadku gdy inne elementy HTML będą go przesłaniać.
Odwrócimy kolejność z jaką widzimy poszczególne elementy dzieci:
Rezultat:

Od tej pory najbardziej widocznym dla nas elementem HTML w naszym przykładzie jest element z właściwością z-index oraz wartością 3, ponieważ pozostałe elementy HTML posiadają niższy indeks, czyli niższą wartość właściwości z-index.
Kod HTML ostatniego przykładu znajduje się poniżej:
W naszym przykładzie wszystkie elementy dzieci zostały wyświetlone w pozycji relatywnej, ponieważ została do nich dodana właściwość position wraz z wartością relative.
Dowiedzieliśmy się wcześniej, że domyślnie, gdy kilka elementów dzieci znajdzie się jeden na drugim, to najbardziej widocznym dla nas elementem HTML będzie ten, który został umieszczony w kodzie HTML jako ostatni element swojego rodzica, jednak ta zasada obowiązuje tylko w przypadku gdy ostatni element jest wyświetlony w pozycji innej niż domyślna pozycja statyczna. Inaczej mówiąc, elementy wyświetlone w pozycji relatywnej, absolutnej lub ustalonej mają "przewagę" nad elementami wyświetlonymi w domyślnej, statycznej pozycji. Po prostu są one bardziej widoczne niż elementy wyświetlone w pozycji statycznej.
Przykład, który znajduje się poniżej, nieco bardziej wyjaśni nam tą zależność.

Kod HTML przykładu znajduje się poniżej:
Teraz zajmiemy się nieco innym układem elementów HTML, a mianowicie przyjrzymy się, które elementy HTML są dla nas bardziej widoczne w relacji przodek oraz potomek.
W poprzedniej części kursu CSS dowiedzieliśmy się, że elementy HTML, które są umieszczone jeden w drugim, w kodzie HTML, tworzą coś na wzór stosu, gdy zostaną wyświetlone w oknie przeglądarki internetowej. Domyślnie w takiej sytuacji najbardziej widocznym dla nas elementem HTML danego elementu #rodzic będzie ten element HTML, który jest jego ostatnim potomkiem.
Rezultat:

Nasz dotychczasowy przykład prezentuje elementy div, które tworzą hierarchię typu przodek oraz potomek, czyli kilka elementów HTML, które są umieszczone jeden w drugim. Jedyne co możemy zrobić w takim wypadku, za pomocą właściwości z-index, to sprawić, aby dany element HTML został wyświetlony pod określonymi elementami HTML. Aby tego dokonać musimy spełnić trzy warunki.
Do elementu HTML, który ma zmienić swoją kolejność widoczności, należy dodać właściwość z-index wraz z ujemną wartością, np. -1.
Musimy określić element HTML, do którego element z właściwością z-index:-1; ma zostać przesunięty. Dodajemy do takiego elementu właściwość z-index, lecz tym razem z dodatnią wartością, np. 1.
Oba elementy muszą być wyświetlone w pozycji innej niż statyczna pozycja, np. w pozycji relatywnej, co uzyskamy dzięki właściwości position oraz wartości relative.
Rezultat:

Tak o to ostatni potomek oraz jego cała zawartość została umieszczona pod innymi elementami HTML, lecz nie pod elementem z właściwością z-index:1;
Kod HTML ostatniego przykładu został umieszczony poniżej:
W następnej części kursu CSS zapoznamy się ze sposobami tworzenia cieni w tekście oraz w elemencie HTML.
Last updated