Czy ktoś może mi powiedzieć, jaka jest różnica między style = "position:absolute"
i style = "position:relative"
i jak się różnią w przypadku dodania go do div
/ span
/ input
elementów?
Używam absolute
teraz, ale chcę też zbadać relative
. Jak to zmieni pozycjonowanie?
css
css-position
Varun
źródło
źródło
Odpowiedzi:
Pozycjonowanie bezwzględne oznacza, że element jest całkowicie wyjęty z normalnego przepływu układu strony. Jeśli chodzi o pozostałe elementy strony, element pozycjonowany absolutnie po prostu nie istnieje. Sam element jest następnie rysowany oddzielnie, jakby „na wierzchu” wszystkiego innego, w pozycji określonej za pomocą
left, right, top and bottom
atrybutów.Korzystając z pozycji określonej za pomocą tych atrybutów, element jest następnie umieszczany na tej pozycji w swoim ostatnim elemencie nadrzędnym, który ma atrybut pozycji o wartości innej niż
static
(elementy strony domyślnie są statyczne, gdy nie określono atrybutu pozycji) lub treść dokumentu (przeglądarka widok), jeśli nie ma takiego przodka.Na przykład, gdybym miał ten kod:
...
<div>
byłby umieszczony 20 pikseli od góry widoku przeglądarki i 20 pikseli od lewej krawędzi tego samego.Gdybym jednak zrobił coś takiego:
... wtedy element
inner
div byłby umieszczony 20 pikseli od góry elementuouter
div i 20 pikseli od lewej krawędzi tego samego elementu, ponieważ elementouter
div nie jest umieszczony z,position:static
ponieważ wyraźnie ustawiliśmy go na użycieposition:relative
.Z drugiej strony pozycjonowanie względne jest podobne do stwierdzenia braku pozycjonowania, ale
left, right, top and bottom
atrybuty „wypychają” element z normalnego układu. Reszta elementów na stronie nadal jest rozmieszczona tak, jakby element znajdował się na swoim normalnym miejscu.Na przykład, gdybym miał ten kod:
... wtedy wszystkie trzy
<span>
elementy siedziałyby obok siebie bez nakładania się.Jeśli ustawię jako drugą
<span>
opcję pozycjonowania względnego, na przykład:... wtedy Span2 zachodziłby na prawą stronę Span1 o 5 pikseli. Span1 i Span3 znajdowałyby się dokładnie w tym samym miejscu, co w pierwszym przykładzie, pozostawiając 5-pikselową przerwę między prawą stroną Span2 a lewą stroną Span3.
Mam nadzieję, że to trochę wyjaśnia.
źródło
Pozycjonowanie względne: element tworzy własne osie współrzędnych w miejscu odsuniętym od osi współrzędnych rzutni. Jest to część przepływu dokumentów, ale przesunięta.
Pozycjonowanie bezwzględne: element wyszukuje najbliższe dostępne osie współrzędnych wśród swoich elementów nadrzędnych. Element jest następnie pozycjonowany przez określenie odsunięć od tej osi współrzędnych. Jest usuwany z normalnego przepływu dokumentu.
Źródło
źródło
Na pewno zechcesz przeczytać ten artykuł o pozycjonowaniu z „A List Apart”. Pomogło zdemistyfikować pozycjonowanie CSS (co wydawało mi się szalone przed tym artykułem).
źródło
Dzięki pozycjonowaniu CSS możesz umieścić element dokładnie tam, gdzie chcesz, na swojej stronie.
Kiedy zamierzasz korzystać z pozycjonowania CSS, pierwszą rzeczą, którą musisz zrobić, jest użycie pozycji właściwości CSS, aby poinformować przeglądarkę, czy zamierzasz używać pozycjonowania bezwzględnego czy względnego.
Obie pozycje mają różne cechy. W CSS Po ustawieniu pozycji możesz używać atrybutów góra, prawo, dół, lewo.
Absolutna pozycja
Względne położenie
Aby pozycjonować element względnie, położenie właściwości jest ustawiane jako względne. Różnica między pozycjonowaniem bezwzględnym i względnym polega na sposobie obliczania pozycji.
Więcej: Pozycja względna a bezwzględna
źródło
OK, bardzo oczywista odpowiedź tutaj ... w zasadzie pozycja względna jest względem poprzedniego elementu lub okna, podczas gdy absolutnie nie przejmuje się innymi elementami, chyba że jest to rodzic, jeśli używasz górnego i lewego ...
Spójrz na przykład, który tworzę, aby pokazać różnice ...
Możesz również zobaczyć to w akcji, korzystając z css, które dla Ciebie stworzyłem, możesz zobaczyć, jak zachowują się pozycje bezwzględne i względne:
źródło
Pozycjonowanie bezwzględne opiera się na współrzędnych wyświetlacza:
^ umieszcza element w lewym górnym rogu okna.
Pozycja względna jest zależna od miejsca umieszczenia elementu:
^ umieszcza element 1px w dół i 1px od lewej strony, w którym pierwotnie siedział :)
źródło
Krewny:
Element z
position: relative;
jest ustawiony względem swojego normalnego położenia.Jeśli nie dodasz atrybutów pozycjonowania (góra, lewo, dół lub prawo) na względnym elemencie, nie będzie to miało żadnego wpływu na jego pozycjonowanie. Będzie zachowywał się dokładnie jak
position: static
element.Ale jeśli dodasz inny atrybut pozycjonowania, powiedzmy, top: 10px;, przesunie on swoją pozycję o 10 pikseli w dół od normalnego położenia.
Na element z tego typu pozycjonowaniem wpływają inne elementy, a on sam wpływa również na inne.
Absolutny:
Element z
position: absolute;
umożliwia umieszczenie dowolnego elementu dokładnie tam, gdzie chcesz. Używasz atrybutów pozycjonowania góra, lewo, dół. i prawo do ustawienia lokalizacji.Umieszczany jest względem najbliższego niestatycznego przodka. Jeśli nie ma takiego kontenera, jest on umieszczany względem samej strony.
Jest usuwany z normalnego przepływu elementów na stronie.
Na element z tego typu pozycjonowaniem nie mają wpływu inne elementy, a także nie wpływa na przepływ innych elementów.
Zobacz ten oczywisty przykład dla większej przejrzystości. https://codepen.io/nyctophiliac/pen/BJMqjX
źródło
Absolute umieszcza obiekt (div, span itp.) W absolutnie wymuszonej lokalizacji (zwykle określanej w pikselach), a relatywna umieszcza go w pewnej odległości od miejsca, w którym normalnie by się znajdował. Na przykład:
Może spowodować zniknięcie lewej strony tekstu, jeśli znajdował się w odległości 20 pikseli od lewej krawędzi ekranu.
źródło
position: absolute
można umieścić w dowolnym miejscu i tam pozostać, np. 0,0.position: relative
jest umieszczony z odsunięciem od lokalizacji, w której został pierwotnie umieszczony w przeglądarce.źródło
pozycja: względne działanie jako element nadrzędny position: bezwzględne działanie dziecko względnej pozycji. możesz zobaczyć poniższy przykład
źródło