Açıklama
CSS özelliği margin-top, öğenin üstündeki dolguyu ayarlar. Dolgu, geçerli öğenin üst sınırının dış kenarından iç sınırına kadar olan mesafedir. ana öğe veya üstündeki öğenin sınırına. Satır içi öğeler için (ekran: satır içi;) yalnızca sol ve sağ taraftaki dolgunun ayarlanabileceğini unutmayın.
Dış üst dolgunun boyutu piksel (px), yüzde (%) veya diğer CSS birimleri olarak belirtilebilir. Değer pozitif veya negatif olabilir.
Not: Bir çocuğun alt veya üst dolgusu, sabit bir yükseklik boyutuna sahip değilse ebeveynin toplam boyunu etkileyebilir.
alanları birleştirme
- Alt alta yer alan ve belge akışında yer alan kardeş alanları tek bir ortak alanda birleştirilir. Ortaya çıkan kenar boşluğunun yüksekliği, iki kenar boşluğundan daha büyük olanın yüksekliğine eşittir, örneğin: üst öğenin (kenar boşluğu-alt) kenar boşluğu 10 pikseldir ve alt öğenin (kenar boşluğu üst) 20 pikseldir, bu durumda tek kenar boşluğu 20 piksel yüksekliğinde olacaktır.
- Belge akışında ebeveyn ve alt öğenin kenar boşluklarının birleştirilmesi, ebeveynin dış dolgusunu alt dolgudan (kenarlık, dolgu veya satır içi içerik) ayıracak hiçbir şeyi olmadığında gerçekleşir. Ayrıca, ana öğe gizli veya otomatik bir değerle taşma özelliğine ayarlanmışsa, alanların birleştirilmesi gerçekleşmez. Bu yöntemin avantajı, ana öğenin boyutunun artmamasıdır.
Bu yazımda sizlere nasıl doğru bir şekilde düzenleyeceğinizi anlatmak istiyorum. alanlar(dolgu) ve girinti(marj) CSS'de.
Öncelikle, W3C spesifikasyonuna göre kenar boşlukları ve dolguların tanımını hatırlayalım. Kutu modelinde kenar boşlukları, içerik ile kenarlık arasındaki mesafedir. Ve dolgu, bloğun sınırı ile bitişik veya ana öğenin sınırı arasındaki mesafedir.
Bu nedenle, elemanın kenarlığı ve arka planı ayarlanmamışsa, o zaman bir fark yoktur, dolguyu ayarlamak için padding veya margin özelliğini kullanın, ancak elemanın genişliği (genişlik) ve yüksekliği (yüksekliği) ayarlanmamışsa ve kutu boyutlandırma özelliklerini kullanarak içeriğin boyutunu hesaplamak için algoritma.
Her durumda, kenar boşluklarının öğenin genişliğine veya yüksekliğine dahil edilip edilmeyeceğini unutmayın. Kenar boşlukları her zaman öğenin dışında ayarlanır.
Şimdi, öğeler arasında kenar boşluklarını ve dolguyu nasıl düzgün yerleştireceğimize bakalım. Örnek olarak aşağıdaki bloğu alın.
Bu haber bloğu haberi. Bir başlık, bir haber listesi ve bir "Daha fazla haber" bağlantısından oluşur. Onlara şu sınıf adlarını verelim: news__title, news__list ve news__more-link.
Haberler
Diğer Haberler
Bu öğelerin her biri aynı sol ve sağ kenar boşluklarına sahip olduğundan, her öğe için ayrı ayrı sol ve sağ kenar boşlukları ayarlamak yerine kenar boşluklarını ana bloğa ayarlamak daha iyidir.
Haberler (dolgu: 20px 25px;)
Bu nedenle sağ ve soldaki alanların değerini değiştirmek gerekiyorsa bunun yapılması gerekecektir. Bir yerde... Haber bloğunun içine yeni bir öğe eklediğinizde, sol ve sağda zaten gerekli girintilere sahip olacaktır.
Genellikle, bir blok içindeki tüm öğelerin, örneğin arka plan nedeniyle hiç girintili olmaması gereken biri hariç, aynı sol ve sağ kenar boşluklarına sahip olduğu görülür. Bu durumda, öğe için negatif kenar boşlukları ayarlayabilirsiniz. O zaman, diğer öğeler için bloğun içindeki kenar boşluklarını kaldırmanız gerekmez.
Şimdi elemanlar arasında dikey boşluk ayarlamamız gerekiyor. Bunu yapmak için, öğelerden hangisinin olduğunu belirleyin. zorunlu... Açıkçası, bir haber listesi olmadan bir haber bloğu olamaz, aynı zamanda "Diğer haberler" bağlantısı olmayabilir, örneğin tasarım değiştirildiğinde başlık da kaldırılabilir.
Bunu dikkate alarak, başlık için alt girintiyi ve "Diğer haberler" bağlantısı için üst girintiyi belirledik.
News__title (alt kenar boşluğu: 10 piksel;) .news__more-bağlantı (üst kenar boşluğu: 12 piksel;)
Haber listesi için üst ve alt dolgu ekleyerek aynı dış etkiyi elde edebiliriz.
News__list (kenar boşluğu: 10px 0 12px 0;)
Şimdi ayrı haberler arasındaki girintileri ayarlamanız gerekiyor. Yine haber sayısının değişebileceğini ve listede sadece bir haber olabileceğini unutmayın.
Üstteki ilk girinti hariç her haber için veya alttaki son girinti hariç her haber için ayar yapabilirsiniz. İlk seçenek tercih edilir, çünkü: first-child sözde seçicisi CSS 2.1 belirtiminde eklenmiştir ve yalnızca CSS 3.0 belirtiminde eklenen: last-child sözde seçiciden daha geniş bir desteğe sahiptir.
News__list-item (üst kenar boşluğu: 18px;) .news__list-item: first-child (en üst kenar boşluğu: 0;)
Böylece, doğru yerleştirme kenar boşlukları ve girintiler esnek bir şekilde değiştirmenize olanak tanır dış görünüş stilleri değiştirmeden ve tasarımı bozmadan herhangi bir blok. En önemli şey, bloğun hangi öğelerinin ana öğeler olduğunu belirlemektir ( zorunlu), ve hangisi isteğe bağlı.
Bazen gerekli unsurlara güvenemeyiz. Örneğin, içinde bazı başlık ve metinlerin görüntülenebileceği bir açılır penceremiz var. Ayrıca bazı durumlarda metin olmayabilir, bazı durumlarda başlık olmayabilir. Yani, her iki öğe de isteğe bağlıdır.
Bu durumda, girintileri ayarlamak için aşağıdaki yolu kullanabilirsiniz.
Popup__header + .popup__text (üst kenar boşluğu: 15px;)
Ardından girinti, yalnızca her iki öğe de kullanılacaksa görünecektir. Yalnızca başlığın veya yalnızca metnin görüntülenmesi durumunda, fazladan girinti olmayacaktır.
Düşen dikey dolgu
Herkesin bilmediği başka bir nüans, bitişik bloklar arasındaki dikey girintilerle ilişkilidir. Yukarıda verdiğim girinti tanımında girintinin aradaki mesafe olduğu yazıyor. sınırlar mevcut ve bitişik blok. Böylece iki bloğu alt alta yerleştirip birine 30px alt kenar boşluğu, diğer 20px üst kenar boşluğu verirsek, aralarındaki boşluk 50px değil 30px olacaktır.
Yani, girintiler örtüşecek ve bloklar arasındaki girinti, girintilerin toplamına değil, en büyük girintiye eşit olacaktır. Bu etkiye "çöküş" de denir.
Dikey girintilerin aksine yatay girintilerin daraltılmadığını, özetlendiğini lütfen unutmayın. Alanlar (dolgu) da özetlenmiştir.
"Çöken" dolguyu bilerek, bu özelliği kendi avantajımıza kullanabiliriz. Örneğin, makalenin içine başlıklar ve metinler için girinti koymamız gerekiyorsa, o zaman ilk seviyenin başlığı için girintiyi en altta 20px ve ikinci seviyenin başlığını üstte 20px olarak ayarlayacağız ve alt 10 pikselde ve tüm paragraflar için girintiyi üst 10 pikselde ayarlayacağız.
H1 (alt kenar boşluğu: 24 piksel;) h2 (üst kenar boşluğu: 24 piksel; kenar boşluğu alt: 12 piksel;) p (üst kenar boşluğu: 12 piksel;)
Artık h2 başlığı, h1 başlığından sonra veya paragraftan sonra yerleştirilebilir. Her durumda, üst kenar boşluğu 24 pikseli geçmeyecektir.
Genel kurallar
Özetlemek gerekirse, kenar boşlukları ve dolgu koyarken izlediğim kuralları sıralamak istiyorum.
- Bitişik öğeler aynı dolguya sahipse, bunları öğelere değil ana kapsayıcıya ayarlamak daha iyidir.
- Öğeler arasındaki boşluğu ayarlarken, bunun gerekli bir öğe mi yoksa isteğe bağlı bir öğe mi olduğunu dikkate almalısınız.
- Aynı türdeki öğelerin bir listesi için - öğelerin sayısının değişebileceğini unutmayın.
- Dikey dolgunun farkında olun ve bu özelliği yararlı olduğu yerlerde kullanın.
Anya aşağıdaki kodu yazdı (örnek 1) ve Şekil 1'de gösterilen sayfayı aldı. 1. Ancak Anya'nın bloklar arasında ve blokların sağında ve solunda girintiye ihtiyacı yoktur. Bunun için kodda ne gibi değişiklikler gerekiyor?
Başlık ile ana metin arasında çok fazla girinti var, nasıl küçültebilirim?
Paragrafa (etiket
) ve başlık (etiket
) otomatik olarak üst ve alt dolgu ekler, bu da başlık ile metin arasında geniş bir boşluk bırakacak şekilde toplanır. Doldurma miktarını azaltmak için, margin-bottom özelliğini H1 seçicisine açıkça eklemeniz gerekir. Ayrıca pozitif, sıfır veya negatif bir değer belirleyebilirsiniz. Bu şekilde istenilen girinti değerini ayarlamak kolaydır.
Her paragrafın ilk satırına nasıl girinti koyarım?
Paragraf girintisini ayarlamanız gerektiğinde, text-indent style özelliğini kullanmak en iyisidir. Değeri, ilk satırın metninin orijinal konumunun sağına ne kadar kaydırılacağını belirler. Bu durumda, metin bloğunun genişliği değişmez ve başlangıçta ayarlanmış olarak kalır. Girinti miktarı piksel, yüzde veya diğer kullanılabilir birimler olarak belirtilebilir (örnek 1).
Listeden üst ve alt girinti nasıl kaldırılır?
Liste türüne bağlı olarak UL veya OL seçici için kenar boşluğu-üst ve kenar boşluğu-alt stil özelliğini kullanın. Genel kenar boşluğu özelliğini de kullanabilirsiniz.
Bir web sayfasındaki girintiyi nasıl değiştiririm?
Web sayfasındaki dolgu, görünür olmasa da, içeriğin rahat bir okuma için tarayıcı penceresinin kenarlarına tam olarak oturmasına izin vermez. Gövde seçicinin kenar boşluğu özelliğini değiştirerek kendi kenar boşluğunuzu ayarlayabilirsiniz.
Bir formun etrafındaki dolguyu nasıl kaldırırım?
Etiket yoluyla form eklerken