Jaka jest różnica między pozycjonowaniem statycznym (domyślnym) a pozycjonowaniem względnym w CSS?
css
static
positioning
css-position
jrdioko
źródło
źródło
position: relative
, a ty nigdy wpisaćposition: static
:)Odpowiedzi:
Pozycjonowanie statyczne to domyślny model pozycjonowania elementów. Są wyświetlane na stronie, na której zostały wyrenderowane jako część normalnego przepływu HTML. Statycznie rozmieszczone elementy nie są posłuszni
left
,top
,right
ibottom
zasady:Pozycjonowanie względne pozwala na podanie konkretnego offsetu (
left
,top
etc), który jest w stosunku do normalnego położenia elementu w przepływie HTML. Więc jeśli mam pole tekstowe wewnątrz,div
mogę zastosować względne pozycjonowanie w polu tekstowym, aby było wyświetlane w określonym miejscu w stosunku do miejsca, w którym normalnie byłoby umieszczone wdiv
:Istnieje również pozycjonowanie absolutne - w ramach którego określasz dokładną lokalizację elementu względem całego dokumentu lub następnego elementu pozycjonowanego względnie dalej w górę drzewa elementów :
A kiedy
position: relative
zostanie zastosowane do elementu nadrzędnego w hierarchii:Zwróć uwagę, jak nasz element pozycji absolutnej jest ograniczony przez element pozycjonowany względnie.
I wreszcie jest naprawiony. Stałe pozycjonowanie ogranicza element do określonej pozycji w rzutni, która pozostaje na miejscu podczas przewijania:
Możesz również zaobserwować zachowanie, w którym elementy o stałej pozycji nie powodują przewijania, ponieważ nie są uważane za ograniczone przez rzutnię:
Podczas gdy elementy pozycjonowane bezwzględnie są nadal ograniczone przez rzutnię i powodują przewijanie:
.. chyba że twój element nadrzędny używa
overflow: ?
do określenia zachowania przewijania (jeśli istnieje).Dzięki pozycjonowaniu bezwzględnemu i ustalonemu pozycjonowaniu elementy są usuwane z przepływu HTML.
źródło
static
irelative
element są takie same, z tym wyjątkiem, że w przypadku tego drugiego można zmienić jego położenie względem jego pierwotnej pozycji , a nie elementu zawierającego - w tym miejscuabsolute
pojawia się. Podobnie jak każdy element pozycjonowany przy użyciu wartości innej niż ta,static
której można użyćz-index
.position: static;
zamiast po prostu zastępować goposition: relative;
domyślnie? Jeśli ktoś nie chce pozycjonować pozycji innej niż,top: 0;
aleft: 0;
następnie nie róbmy tego, prawda? Czy jest jakiś podstawowy powód, dla któregoposition: static;
nadal jest wymagany jako część CSS?Tutaj możesz zobaczyć prosty przegląd: W3School
Ponadto, jeśli dobrze pamiętam, kiedy deklaruję element jako względny, domyślnie pozostanie on w tym samym miejscu, w którym powinien, ale zyskujesz możliwość absolutnego pozycjonowania elementów wewnątrz niego względem tego elementu, co uważam za bardzo przydatne w przeszłości.
źródło
W odpowiedzi na pytanie „dlaczego CSS nadal implementowałoby position: static;” w jednym scenariuszu, użycie pozycji: względna dla rodzica i pozycji: bezwzględnej dla dziecka ogranicza szerokość skalowania dziecka. W poziomym systemie menu, w którym możesz mieć „kolumny” linków, użycie opcji „width: auto” nie działa w przypadku względnych rodziców. W takim przypadku zmiana na „statyczną” pozwoli na zmianę szerokości w zależności od zawartości wewnątrz.
Spędziłem kilka godzin zastanawiając się, dlaczego nie mogę dostosować mojego kontenera do ilości zawartej w nim zawartości. Mam nadzieję że to pomoże!
źródło
Pozycja względna umożliwia ustawienie pozycji góra / dół / lewo / prawo. Static nie pozwoli ci tego zrobić, chyba że użyjesz parametrów marginesu. Istnieje różnica między górą a górą marginesu.
Nie będziesz musiał używać statycznego, ponieważ jest to ustawienie domyślne
źródło
Względne położenie odnosi się do normalnego przepływu. Względne położenie tego elementu (z przesunięciami) odnosi się do położenia, w którym element byłby normalnie, gdyby nie został przesunięty.
źródło
Matthew Abbott ma naprawdę dobrą odpowiedź.
Bezwzględne i względne umieszczone elementy posłuszeństwa
top
,left
,right
ibottom
polecenia (offsetu), gdzie statyczne ustawione pozycje nie.Względnie pozycjonowane elementy przesuwają przesunięcia z miejsca, w którym normalnie znajdowałyby się w html.
Elementy pozycjonowane bezwzględnie przenoszą przesunięcia z dokumentu lub następnego względnie pozycjonowanego elementu w górę drzewa DOM.
źródło
Statyczny: STATIC pozycjonowany element jest tym, co otrzymujemy przez DEFAULT (Normalne pozycjonowanie obiektów).
Względny: Względem aktualnej pozycji, ale można go przenieść. Lub WZGLĘDNIE pozycjonowany element jest umieszczony względem SIEBIE.
źródło
statyczne i względne to atrybuty pozycji. relatywne są używane do wielu zastosowań. Nie dla jednego. Pamiętaj jednak, że statyczne i względne nie szkodzą normalnemu przepływowi dokumentów HTML. static to domyślna pozycja, w której piszesz dowolny element w formacie HTML. Jeśli element ma położenie względne, można go ustawić względem swojego miejsca natywnego. jeśli chcesz dopasować element z małych przestrzeni, użyj pozycji względnej, aby nie trzeba było dodawać marginesu, dopełnienia itp., jeśli element ma pozycję względną i ma element podrzędny. Tutaj możemy wykonać pomiary względem jego rodzica. Jeśli dodasz szerokość 10% do dziecka, oznacza to (szerokość + dopełnienie) x10%. Ale nie dodasz względnego słowa kluczowego, otrzymasz szerokość x 10%. Poza tym najważniejszym zastosowaniem krewnego jest; możesz umieścić dowolny element na górze.
źródło