Burada zaten iyi noktalara değinilmiştir, ancak tarayıcı tarafından kenar boşluklarının nasıl oluşturulduğu hakkında birçok bilgi olsa da , neden henüz tam olarak yanıtlanmamıştır:
"Neden margin-top: -8px, margin-bottom: 8px ile aynı değil?"
sorabileceğimiz şey şudur:
Pozitif bir alt kenar boşluğu önceki öğeleri 'yukarı kaldırırken' pozitif bir üst kenar boşluğu aşağıdaki öğeleri 'aşağıya taşır'?
bu yüzden , uygulandıkları tarafa bağlı olarak kenar boşluklarının oluşturulmasında bir fark olduğunu görüyoruz - üst (ve sol) kenar boşlukları, alt (ve sağ) kenar boşluklarından farklıdır.
Tarzların tarayıcı tarafından nasıl uygulandığına (basitleştirilmiş) bir göz atarken işler daha net hale geliyor: öğeler, sol üst köşeden başlayarak görünüm alanında yukarıdan aşağıya işleniyor (şimdilik dikey oluşturmaya bağlı kalalım, şunu unutmayın: yatay olan aynı şekilde ele alınır).
aşağıdaki html'yi düşünün:
<div class="box1"></div>
<div class="box2"></div>
<div class="box3"></div>
Koddaki konumlarına benzer şekilde, bu üç kutu tarayıcıda 'yukarıdan aşağıya' yığılmış olarak görünür ( işleri basit tutarak, burada order
css3 'flex-box' modülünün özelliğini dikkate almayacağız ). bu nedenle, kutu 3'e stiller uygulandığında, önceki öğenin konumları (kutu 1 ve 2 için) zaten belirlenmiştir ve oluşturma hızı uğruna bir daha değiştirilmemelidir.
şimdi, 3. kutu için -10 piksellik bir üst kenar boşluğu hayal edin. Bir miktar alan kazanmak için önceki tüm öğeleri yukarı kaydırmak yerine, tarayıcı kutu 3'ü yukarı iter, böylece z-endeksine bağlı olarak üstte (veya altta) oluşturulur. ) önceki öğeler. performans bir sorun olmasa bile, tüm öğeleri yukarı taşımak onları görünüm alanından çıkarmak anlamına gelebilir, bu nedenle mevcut kaydırma konumunun her şeyin tekrar görünür olması için değiştirilmesi gerekir.
Aynısı, hem negatif hem de pozitif kutu 3 için bir alt kenar boşluğu için de geçerlidir: önceden değerlendirilmiş öğeleri etkilemek yerine, yalnızca gelecek öğeler için yeni bir 'başlangıç noktası' belirlenir. bu nedenle pozitif bir alt marj belirlemek aşağıdaki öğeleri aşağıya itecektir ; negatif olan onları yukarı itecektir.
onset
veoffset
. Bu doğru, pek çok insan her zaman ( pozitif ) demek istediklerindeoffset
( negatif ) kelimesini kullanıyor . Cevabınızı güncellerseniz bu mesaj kendi kendini imha edecektir. Şerefe!onset