Statik ve bağıl konumlandırma arasındaki fark


89

CSS'de, statik (varsayılan) konumlandırma ile göreli konumlandırma arasındaki fark nedir?


21
Bir fark sık tip olmasıdır position: relativeve asla yazın position: static:)
thirtydot

Yanıtlar:


169

Statik konumlandırma, öğeler için varsayılan konumlandırma modelidir. Normal HTML akışının bir parçası olarak oluşturuldukları sayfada görüntülenirler. Statik olarak konumlandırılmış elemanlar uymayan left, top, rightve bottomkurallar:

statik olarak konumlandırılmış öğeler normal HTML akışına uyar.

Göreli konumlama Eğer spesifik bir göreli konum (belirlemenizi sağlar left, topHTML akışında öğenin normal konumuna göre değişir vs). Dolayısıyla, bir metin kutusu içinde bir divmetin kutum varsa, normalde aşağıdakiler içinde yerleştirileceği yere göre belirli bir yerde görüntülenmesini sağlamak için metin kutusuna göreceli konumlandırma uygulayabilirim div:

göreceli olarak konumlandırılmış öğeler HTML akışına uyar, ancak konumlarını HTML akışındaki normal konumlarına göre ayarlama yeteneği sağlar.

Ayrıca mutlak konumlandırma da vardır - burada öğenin tüm belgeye göre tam konumunu veya öğe ağacının daha yukarısındaki görece konumlandırılmış sonraki öğeyi belirtirsiniz :

mutlak konumlandırılmış öğeler HTML akışından çıkarılır ve belgede belirli bir yere yerleştirilebilir ...

Ve position: relativehiyerarşideki bir üst öğeye uygulandığında:

... veya HTML ağacındaki göreceli olarak konumlandırılmış ilk ana öğeye göre konumlandırılmış.

Mutlak konum öğemizin görece konumlandırılmış öğe tarafından nasıl bağlandığına dikkat edin.

Ve son olarak düzeltildi. Sabit konumlandırma, bir öğeyi, kaydırma sırasında yerinde kalan, görüntü alanındaki belirli bir konumla sınırlar:

sabit konumlu öğeler de HTML akışından çıkarılır, ancak görüntü alanına bağlı değildir ve sayfayla birlikte kaydırılmaz.

Ayrıca, sabit konumlu öğelerin kaydırmaya neden olmadığı davranışını da gözlemleyebilirsiniz, çünkü bunlar, görünüm alanına bağlı olarak değerlendirilmezler:

sabit konumlu öğelerin kaydırma üzerinde etkisi yoktur.

Mutlak konumlandırılmış öğeler hala görüntü alanına bağlıdır ve kaydırmaya neden olur:

kesinlikle konumlandırılmış öğeler, bir ana öğede taşma kullanılmadığı sürece, görünüm alanının sınırlarından etkilenmeye devam eder.

.. tabii ki ana öğeniz overflow: ?kaydırmanın (varsa) davranışını belirlemek için kullanır .

Mutlak konumlandırma ve sabit konumlandırma ile öğeler HTML akışından çıkarılır.


4
İyi yanıt, ancak (göreceli konum için) ofset, öğenin normal konumuna dayalı değil mi?
Baztoune

4
Baztoune'a katılıyorum, göreceli olarak konumlandırılmış elemanlar için bu tanım yanıltıcıdır. A staticve relativeeleman aynıdır, ancak ikincisi ile onu içeren öğeye göre değil , orijinal konumuna göre yeniden konumlandırabilirsiniz - burada absolutedevreye girer. Ayrıca, statickullanabileceğinizden farklı bir değer kullanılarak konumlandırılan herhangi bir öğe gibi z-index.
Ryan Williams

Göreceli konumlandırmayı daha doğru bir şekilde tanımlamak için bu yanıtı yeniden çalıştım ve farklı konum türlerini göstermek için görüntüler ekledim.
Matthew Abbott

3
CSS'nin varsayılan position: static;olarak basitçe değiştirmek yerine neden hala uygulandığını merak ediyorum position: relative;? Biri başka bir öğeyi konumlandırmak istemiyorsa top: 0;ve left: 0;o zaman yapmayalım, değil mi? position: static;CSS'nin bir parçası olarak hala gerekli olmasının altında yatan bir neden var mı ?
cram2208

8
@ cram2208 göreceli, çocukların mutlak konumlandırılmış düğümlerin kendilerine göre konumlandırılmasını sağladığı için statik, mutlak konumlandırılmış çocukların konumlarını göz ardı etmelerine ve en yakın göreceli konumlandırılmış öğeye göre konumlandırılmalarına izin verir. Sahip
olunması

7

Burada basit bir genel bakış görebilirsiniz: W3School

Ayrıca, doğru hatırlıyorsam, bir elemanı göreceli olarak ilan ederken, varsayılan olarak olması gerektiği gibi aynı yerde kalacaktır, ancak içindeki elemanları bu elemana göre kesinlikle konumlandırma becerisi kazanırsınız ki bu çok yararlı buldum geçmişte.


29
w3schools ... Buna olumsuz oy vermeyeceğim ama utançla yaşamalısın.
Myles Grey

4
Bu arada, 2017'de W3Schools eskisi kadar kötü değil (hala mükemmel değil, ancak topluluğun tepkisini ciddiye aldılar ve gerçekten iyileştirdiler).
Priidu Neemre

Bu arada, 2018'de W3Schools hala eskisi kadar kötü değil, ancak bugün bile itibarlarının hala diğer geliştiricilere yukarıdaki ilk yorumdan bahsetmek klasik bir kıkırdama sürdüğü için üzülüyorlar ... geri benim günümde ... W3School .... ilk izlenimler hey ...
redfox05

7

"CSS neden hala konumu uyguluyor: statik" sorusuna yanıt olarak; bir senaryoda, bir ebeveyn için göreceli ve konum: çocuk için mutlak kullanımı, çocuğun ölçekleme genişliğini sınırlar. Bağlantıların 'sütunlarına' sahip olabileceğiniz yatay bir menü sisteminde, 'width: auto' kullanımı ilgili üst öğelerde çalışmaz. Bu durumda, onu 'statik' olarak değiştirmek, genişliğin içindeki içeriğe bağlı olarak değişken olmasına izin verecektir.

Birkaç saatimi, kapsayıcımı içindeki içerik miktarına göre neden ayarlayamadığımı merak ederek geçirdim. Bu yardımcı olur umarım!


Cevap bu! Herkes profesyonellere sadece göreceli konumlandırma için söyler, şöyle bir sorudaki noktayı kaçırır: fark nedir.
Bartis Áron

5

Konum göreli konumlandırma için üst / alt / sol / sağ kullanmanıza izin verir. Statik, marj parametrelerini kullanmadığınız sürece bunu yapmanıza izin vermez. Üst ve kenar boşluğu arasında bir fark vardır.

Varsayılan olduğu kadar statik kullanmanız gerekmeyecek


2

Göreceli konum, normal akışa göre değişir. Bu elemanın göreceli konumu (ofsetlerle), o elemanın normal olarak hareket ettirilmediği takdirde olabileceği konuma bağlıdır.


2

Matthew Abbott'un gerçekten iyi bir cevabı var.

Mutlak ve bağıl konumlandırılmış öğeler itaat top, left, rightve bottomstatik konumlandırılmış öğeler yok komutları (ofsetler).

Göreceli olarak konumlandırılmış öğeler ofsetleri normalde html'de olacakları yerden hareket ettirir.

Mutlak konumlandırılmış öğeler ofsetleri belgeden veya bir sonraki göreceli olarak konumlandırılmış öğeden DOM ağacının yukarısına taşır.


0

Statik: VARSAYILAN (nesnelerin normal konumlandırılması) bir STATİK konumlandırılmış eleman elde ederiz.

Göreli: Mevcut konumuna göre, ancak taşınabilir. Veya GÖRELİ konumlandırılmış bir eleman KENDİNE göre konumlandırılır.


0

statik ve göreli konum öznitelikleridir. göreli, birçok kullanım için kullanılır. Biri için değil. Ancak statik ve göreli, Html'nin normal belge akışına zarar vermediğini unutmayın. statik, Html'ye herhangi bir öğe yazdığınızda varsayılan konumdur. Bir öğenin göreceli bir konumu varsa, bu öğe kendi yerine göre konumlandırılabilir. Öğeyi küçük boşluklardan ayarlamak istediğinizde, ilgili konumu kullanın, böylece öğenin göreceli bir konumu varsa ve bir alt öğesi varsa, kenar boşluğu, dolgu vb. eklemenize gerek kalmaz. Burada ebeveynine göre ölçümler yapabiliriz. Alt öğeye genişlik% 10 eklerseniz, bu (genişlik + dolgu) x% 10 anlamına gelir. Ancak ilgili anahtar sözcüğü eklemezseniz, genişlik% 10 elde edersiniz. Bunun dışında akrabanın en önemli kullanımı; herhangi bir öğeyi üstüne yerleştirebilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.