Różnica między style = "position:absolute" i style = " position: relative"

Czy ktoś może mi powiedzieć jaka jest różnica między style = "position:absolute" a style = "position:relative" i czym się różnią w przypadku, gdy dodam ją do div/span/input żywioły?

Używam absolute Teraz, ale chcę również zbadać relative. Jak to zmieni pozycjonowanie?

Author: Seanny123, 2010-12-16

10 answers

Absolutne pozycjonowanie oznacza, że element jest całkowicie wyłączony z normalnego przepływu układu strony. Jeśli chodzi o resztę elementów na stronie, absolutnie pozycjonowany element po prostu nie istnieje. Sam element jest następnie rysowany oddzielnie, jakby "na szczycie" wszystkiego innego, w pozycji określonej za pomocą atrybutów left, right, top and bottom.

Używając pozycji określonej tymi atrybutami, element jest następnie umieszczany na tej pozycji w swoim ostatnim element nadrzędny, który ma atrybut position cokolwiek innego niż static (elementy strony domyślnie statyczne, gdy nie podano atrybutu position), lub treść dokumentu (przeglądarka viewport), jeśli taki przodek nie istnieje.

Na przykład, gdybym miał ten kod:

<body>
  <div style="position:absolute; left: 20px; top: 20px;"></div>
</body>

...<div> byłby umieszczony 20px od góry widoku przeglądarki i 20px od lewej krawędzi tego samego.

Jednak gdybym zrobił coś takiego:

 <div id="outer" style="position:relative">
   <div id="inner" style="position:absolute; left: 20px; top: 20px;"></div>
 </div>

...wtedy inner div będzie pozycjonowanie 20px od góry outer div I 20px od lewej krawędzi tego samego, ponieważ outer div nie jest pozycjonowane przez position:static, ponieważ wyraźnie ustawiliśmy go na użycie position:relative.

Względne pozycjonowanie, z drugiej strony, jest jak stwierdzenie żadnego pozycjonowania, ale left, right, top and bottom atrybuty "pchnięcie" elementu z ich normalnego układu. Reszta elementów na stronie nadal układa się tak, jakby element znajdował się w normalnym miejscu.

Na przykład, gdybym miał to kod:

<span>Span1</span>
<span>Span2</span>
<span>Span3</span>

...wtedy wszystkie trzy <span> elementy siedzą obok siebie bez nakładania się na siebie.

Jeśli ustawiłem drugi <span> aby używać pozycjonowania względnego, Tak:

<span>Span1</span>
<span style="position: relative; left: -5px;">Span2</span>
<span>Span3</span>

...następnie Span2 nakładałby się na prawą stronę Span1 o 5px. Span1 i Span3 siedzą dokładnie w tym samym miejscu, co w pierwszym przykładzie, pozostawiając odstęp 5px między prawą stroną span2 i lewą stroną Span3.

Mam nadzieję, że to trochę wyjaśni.
 141
Author: AgentConundrum,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-27 16:01:40

Pozycjonowanie względne: element tworzy własne osie współrzędnych, w miejscu oddalonym od osi współrzędnych widoku. Jest częścią obiegu dokumentów, ale przesunięty.

Pozycjonowanie bezwzględne: element wyszukuje najbliższe dostępne osie współrzędnych między jego elementami nadrzędnymi. Element jest następnie pozycjonowany przez określenie przesunięć od tej osi współrzędnych. Usunięto z dokumentu normalny przepływ.

Tutaj wpisz opis obrazka

Źródło

 15
Author: Premraj,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-10 14:24:38

Na pewno będziesz chciał sprawdzić Ten artykuł pozycjonowania z listy osobno. Pomógł demystify CSS pozycjonowanie (co wydawało mi się szalone, przed tym artykule).

 14
Author: jbrennan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-16 05:51:58

Dzięki pozycjonowaniu CSS możesz umieścić element dokładnie tam, gdzie chcesz na swojej stronie.

Kiedy zamierzasz używać pozycjonowania CSS, pierwszą rzeczą, którą musisz zrobić, to użyć właściwości CSS position, aby powiedzieć przeglądarce, czy masz zamiar użyć pozycjonowania bezwzględnego lub względnego.

Obie pozycje mają różne features.In Css Po ustawieniu pozycji możesz używać atrybutów top, right,bottom, left.

Pozycja Absolutna

An absolute element position jest umieszczony względem pierwszego elementu nadrzędnego, który ma pozycję inną niż statyczna.

Pozycja Względna

Element pozycjonowany względnie jest pozycjonowany względem jego normalnego położenia.

Aby pozycjonować element relatywnie, właściwość position jest ustawiona jako relatywna. Różnica między pozycjonowaniem bezwzględnym i względnym polega na tym, jak pozycja jest obliczana.

Więcej: pozycja względna vs absolutna

 4
Author: GowriShankar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-10 07:45:43

Absolutne pozycjonowanie opiera się na Ko-ordiantach wyświetlacza:

position:absolute;
top:0px;
left:0px;

^ umieszcza element w lewym górnym rogu okna.


Pozycja względna jest względna do miejsca, w którym element jest umieszczony:

position:relative;
top:1px;
left:1px;

^ umieszcza element 1px w dół i 1px z lewej strony miejsca, w którym pierwotnie siedział :)

 2
Author: Damien-Wright,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-16 05:46:57

OK, bardzo oczywista odpowiedź... zasadniczo relative pozycja jest względna względem poprzedniego elementu lub okna, podczas gdy absolute nie obchodzi innych elementów, chyba że jest rodzicem, jeśli używasz top I left...

Spójrz na przykład, który tworzę, aby pokazać różnice...

Tutaj wpisz opis obrazka

Możesz również zobaczyć go w akcji, używając css, który dla Ciebie tworzę, możesz zobaczyć jak pozycje absolutne i względne zachowanie:

.parent {
  display: inline-block;
  width: 180px;
  height: 160px;
  border: 1px solid black;
}

.black {
  position: relative;
  width: 100px;
  height: 30px;
  margin: 5px;
  border: 1px solid black;
}

.red {
  width: 100px;
  height: 30px;
  margin: 5px;
  top: 16px;
  background: red;
  border: 1px solid red;
}

.red-1 {
  position: relative;
}

.red-2 {
  position: absolute;
}
<div class="parent">
  <div class="black">
  </div>
  <div class="red red-1">
  </div>
</div>

<div class="parent">
  <div class="black">
  </div>
  <div class="red red-2">
  </div>
</div>
 2
Author: Alireza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-12 13:33:25

Kiedy zamierzasz używać pozycjonowania CSS, pierwszą rzeczą, którą musisz zrobić, to użyć właściwości CSS position, aby powiedzieć przeglądarce, czy masz zamiar użyć pozycjonowania bezwzględnego lub względnego.

Obie pozycje mają różne features.In Css Po ustawieniu pozycji możesz używać atrybutów top, right,bottom, left.

Pozycja Absolutna

Element pozycji bezwzględnej jest pozycjonowany względem pierwszego elementu nadrzędnego, który ma pozycję inną niż statyczne.

Pozycja Względna

Element pozycjonowany względnie jest pozycjonowany względem jego normalnego położenia.

Aby pozycjonować element relatywnie, właściwość position jest ustawiona jako relatywna. Różnica między pozycjonowaniem bezwzględnym i względnym polega na tym, jak pozycja jest obliczana.

 1
Author: kpd,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-12-03 13:34:20

Względny:

  1. Element z position: relative; jest umieszczony względem jego normalnego położenia.

  2. Jeśli nie dodasz atrybutów pozycjonowania (górny, lewy, dolny lub prawy) do elementu względnego, nie będzie to miało żadnego wpływu na jego pozycjonowanie. Będzie zachowywał się dokładnie jak element position: static.

  3. Ale jeśli dodasz jakiś inny atrybut pozycjonowania, powiedzmy top: 10px;, przesunie on swoją pozycję o 10 pikseli w dół od miejsca, w którym normalnie by się znajdował.

  4. Element z tego typu pozycjonowaniem wpływa na inne elementy, a sam wpływa również na inne.

Absolute:

  1. Element z position: absolute; pozwala umieścić dowolny element dokładnie tam, gdzie ma być. Używasz atrybutów pozycjonowania Góra, Lewo, Dół. i prawo do ustalenia lokalizacji.

  2. Jest on umieszczony względem najbliższego antystatycznego przodka. Jeśli nie ma takiego pojemnika, jest on umieszczony względem strona sama.

  3. Jest usuwany z normalnego przepływu elementów na stronie.

  4. Element z tego typu pozycjonowaniem nie ma wpływu na inne elementy, a także nie wpływa na przepływ innych elementów.

Zobacz ten sam wyjaśniający przykład dla lepszej jasności. https://codepen.io/nyctophiliac/pen/BJMqjX

 1
Author: Pransh Tiwari,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-21 12:31:02

Absolute umieszcza obiekt (div, span, itd.) w bezwzględnej wymuszonej lokalizacji (Zwykle określanej w pikselach) i względnej umieści ją w pewnej odległości od miejsca, w którym normalnie się znajduje. Na przykład:

Position: relative; left:-20px;

Może spowodować zniknięcie lewej strony tekstu, jeśli znajdował się w granicach 20px do lewej krawędzi ekranu.

 0
Author: Charles Zink,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-16 05:48:37

position: absolute mogą być umieszczone w dowolnym miejscu i pozostają tam takie jak 0,0.

position: relative jest umieszczony z przesunięciem od miejsca, w którym jest pierwotnie umieszczony w przeglądarce.

 0
Author: mainuse4r,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-21 13:07:48