Menu

CSS'te Margin ve Padding Farkı: Yan Yana Karşılaştırma

Padding bir elementin kenarlığının içindeki boşluktur; margin ise dışındaki. İkisini aynı kutuda, yan yana ve canlı olarak gör, sonra arka planlar, tıklama alanları, elementler arası boşluk ve ortalama için hangisini kullanacağını öğren.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

Tek resimde fark

Padding kenarlığın içindedir. Margin dışındadır. Aşağıdaki iki kutu da aynı içeriğe ve aynı 24px değerine sahip; yalnızca özellik farklı. Gri, arkalarındaki kapsayıcıdır.

Padding ile 24px mavidir: kutunun parçasıdır, kenarlığın içindedir ve kutu büyür. Margin ile 24px gridir: kutu metnin çevresinde sıkı kalır ve dışarıdaki boşluk kapsayıcının kenarlarını iter.

İkisini tek kutuda dene

İki kaydırıcıyı hareket ettir. Padding mavi kutuyu büyütür; margin ise kutuyu değiştirmeden gri kenarlardan uzaklaştırır.

Boyut satırını izle: padding kaydırıcısını oynattığında değişir, margin kaydırıcısını oynattığında aynı kalır.

Bir bakışta margin ve padding

PaddingMargin
NeredeKenarlığın içindeKenarlığın dışında
Arka planElementin arka planını gösterirHer zaman saydam
Tıklama alanının parçasıEvetHayır
Elementin boyutuna eklenirEvet, content-box altındaHayır
auto olabilirHayırEvet (margin: 0 auto ortalar)
Negatif olabilirHayırEvet
Dikey değerler çökerAslaEvet, bitişik dikey margin'ler çöker
Yüzdeler neye göreKapsayıcı bloğun genişliğiKapsayıcı bloğun genişliği
Tipik kullanımButonların, kartların, input'ların içindeki boşlukElementler arası boşluk, ortalama

Her özelliğin tüm ayrıntılarıyla kendi sayfası var: CSS padding ve CSS margin.

Hangisini kullanmalı

Tek bir soru sor: boşluk elemente mi ait, yoksa elementlerin arasında mı duruyor?

  • Bir buton etiketinin çevresindeki alan, bir kartın içi, bir input'un metni ile kenarlığı arasındaki boşluk: padding. Arka planı alır ve hedefi büyütür.
  • İki paragraf arasındaki, kartlar arasındaki, bir bölümün çevresindeki boşluk: margin, ya da ebeveyn bir flex veya grid kapsayıcıysa gap.

Seçimin en çok önem kazandığı yer tıklama alanıdır. Aşağıdaki iki link sayfada aynı yeri kaplıyor, ama ilkinin boşluğu padding, ikincisininki margin. Yalnızca ilki kolay tıklanıyor:

Kesikli kehribar rengi çerçeve elementin kenarıdır, yani tıklamalara ve dokunuşlara yanıt veren alan. İkinci linkin çevresindeki margin hiçbir şey yapmayan boş bir alandır.

Öğeler arası boşluk: margin mi gap mi

Bir öğe satırı ya da ızgarası için flex veya grid ebeveynindeki gap, genellikle her çocuktaki margin'lerden daha temizdir: yalnızca öğelerin arasına girer, ilkinden önceye ya da sonuncusundan sonraya asla girmez, bu yüzden geri alınacak bir şey kalmaz.

Burada gri kapsayıcı padding kullanıyor (içindeki gri boşluk), öğeler padding kullanıyor (her birinin içindeki yeşil boşluk) ve aralarındaki boşluğu gap hallediyor.

Sık yapılan hatalar

  • Renkli olması gereken boşluk için margin kullanmak. Margin saydamdır. Boşluk arka planı göstermeliyse o padding'dir.
  • Bir linki büyütmek için margin kullanmak. Tıklama alanı kenarlıkta biter; padding kullan.
  • İki 20px dikey margin'in 40px etmesini beklemek. Bitişik dikey margin'ler 20px'e çöker. Padding asla çökmez.
  • Ortalamak için padding: auto denemek. Yalnızca margin auto kabul eder.
  • Padding'in kutuyu büyüttüğünü unutmak. width padding'i de kapsasın diye box-sizing: border-box ekle.

Sıkça Sorulan Sorular

Margin ile padding arasındaki fark nedir?

Padding, elementin içinde, içeriği ile kenarlığı arasındaki boşluktur. Margin ise kenarlığın dışında, element ile komşuları arasındaki boşluktur. Padding elementin arka planını gösterir; margin her zaman saydamdır.

Ne zaman margin yerine padding kullanmalıyım?

Elemente ait olan boşluk için padding kullan: bir buton metninin çevresindeki alan, bir kartın içi, arka planı paylaşması ya da tıklanabilir olması gereken her şey. Ayrı elementler arasındaki boşluk için margin (ya da flex ve grid'de gap) kullan.

Padding mi margin mi elementin boyutunu büyütür?

Varsayılan box-sizing: content-box altında padding büyütür: genişliğe ve yüksekliğe eklenir. Margin elementin boyutuna asla eklenmez; çevresine boşluk ekler (width: auto olan bir blok hatta daralır, çünkü margin'leri kullanılabilir genişliğin bir kısmını alır). box-sizing: border-box ile padding bunun yerine genişliğin içinden alınır.

Padding de margin gibi negatif olabilir mi?

Hayır. Negatif padding geçersizdir ve yok sayılır; negatif margin'e ise izin verilir ve elementlerin çakışmasına yol açabilir. Padding auto da olamaz, ortalamanın margin: 0 auto ile yapılmasının nedeni budur.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA