Kenar boşluğu ve dolgu arasındaki fark nedir?


371

CSS'de marj ve dolgu arasındaki fark tam olarak nedir ? Gerçekten pek bir amaca hizmet etmiyor gibi görünüyor. Farklılıkların nerede olduğu konusunda bir örnek verebilir misiniz (ve farkı bilmek neden önemlidir)?


14
stackoverflow.com/questions/2189452/… stackoverflow.com/questions/3060456/… stackoverflow.com/questions/4619899/… Aramadan ilk üç bağlantı padding vs margin. Bence arama çubuğuna ok eklememiz ve yeşil yapmamız gerekiyor.
Kireç

2
Bu, farkı anlamanıza yardımcı olabilir. Digizol.com/2006/12/margin-vs-padding-css-properties.html
lkamal

2
Ayrıca, Internet Explorer'ın kenar boşluklarını / kenarlıklarını / dolgu genişliklerini neredeyse diğer tüm tarayıcılardan farklı şekilde (varsayılan tuhaf olmayan modda) topladığını unutmayın.
David R Tribble

1
Kenar boşluğu işe yaramazsa, dolgu deneyin
JoelFan

Yanıtlar:


410

paddingiçerik ve arasındaki boşluktur borderoysa marginsınırında dışında alandır. İşte hızlı bir Google aramasında bulduğum ve bu fikri gösteren bir resim.

resim açıklamasını buraya girin


3
Ayrıca bir tanım için bu sitelere göz atın. Ancak grafik mükemmel bir örnek. w3schools.com/css/css_margin.asp w3schools.com/css/css_padding.asp
Suroot

@maclunian: Ayrıca bu site kontrol w3schools.com/css/css_boxmodel.asp yukarıda @ Suroot en bağlantılarıyla birlikte.
abcd

Bu, içeriğin ayarlanmış Genişliği ve Yüksekliği ile nasıl ilişkilidir? Tüm bunlar üzerinde nerede ölçülür?
Nyerguds

128

Buradaki cevaplarda eksik olan önemli bir şey:

Üst / Alt kenar boşlukları katlanabilir.

Dolayısıyla, bir öğenin altında 20 piksel kenar boşluğu ve sonraki öğenin üstünde 30 piksel kenar boşluğu varsa, iki öğe arasındaki kenar boşluğu 50 piksel yerine 30 piksel olacaktır. Bu sol / sağ kenar boşluğu veya dolgu için geçerli değildir.


6
Dikey kenar boşluklarının çöktüğü çok özel koşulların olduğunu unutmayın - sadece iki dikey kenar boşluğu bunu yapmaz. Bu sadece daha karmaşık hale getirir ( kutu modeline çok aşina değilseniz ).
BoltClock

76

Kenar boşluğu, öğenizin dışına uygulanır, böylece öğenizin diğer öğelerden ne kadar uzakta olduğu etkilenir.


Doldurma, öğenizin içine uygulanır, böylece öğenizin içeriğinin kenarlıktan ne kadar uzakta olduğunu etkiler.

Ayrıca, kenar boşluğu kullanmak öğenizin boyutlarını etkilemez, dolgu ise öğelerinizin boyutlarını ayarlayacaktır (yüksekliği + doldurmayı ayarlayın), bu nedenle örneğin 5 piksel dolgulu 100x100 piksel bir div'iniz varsa div'iniz 105x105 piksel olacaktır


15
Dolgunun her tarafa uygulandığına inanıyorum, bu yüzden eleman 110x110px
2013

Ehm, afaik dolgu, bu genişlik dışında bir değere ayarlanmışsa öğenizin genişliğini değiştirmez auto. Genişlik ise auto, ek dolgu, dolgu elemanının genişliğini buna göre artıracaktır (ve her iki taraftan da @ 2013'de belirtildiği gibi)
Flater

1
Div'inizin 110px ile 110px olacağını söylemek biraz yanıltıcı olduğunu düşünüyorum çünkü div'inizin genişliği hala 100px olacak (kutu boyutlandırmanın içerik kutusu olarak ayarlandığı varsayılarak).
wmock

44

Bu 3 noktayı hatırlayın:

  • Marj, kontrolün etrafındaki ekstra alandır .
  • Dolgu, kontrolün içinde fazladan bir boşluktur .
  • Bir doldurma , bir dış kontrol, bir iç kontrol marjı ise .

Demo Görüntü: (burada kırmızı kutu arzu kontrolüdür) resim açıklamasını buraya girin


2
Bu, farkı bilmek neden önemli değildir.
GreenAsJade

38

En basit defenisyon; dolgu, konteyner elemanının sınırının içinde verilen bir boşluktur ve dış kenar boşluğu verilir. Bir kap olmayan bir eleman için, dolgu pek mantıklı olmayabilir, ancak marj defenitly onu düzenlemeye yardımcı olacaktır.


30

Dolgu kenarlık içindeki boşluk iken, Kenar Boşluğu sınır dışındaki boşluktur .


25

Dolgu malzemesi

Dolgu öğesi, bir öğe içeriği ile kenarlığı arasındaki boşluğu (kenarlığı varsa) tanımlayan bir CSS özelliğidir. Bir öğenin çevresinde bir kenarlık varsa, dolgu, bu kenarlıktan o kenarlıkta görünen öğe içeriğine alan verir. Bir öğenin etrafında kenarlık yoksa, boşluk ekleyecek kenarlık olmadığından dolgu eklemenin bu öğe üzerinde hiçbir etkisi yoktur.

kenar

Kenar boşluğu, bir öğenin dışındaki alanı bir sonraki dış öğeye tanımlayan bir CSS özelliğidir.

Marj, her ikisinin de kenarlığı olan veya olmayan öğeleri etkiler. Bir öğenin kenarlığı varsa, kenar boşluğu bu kenarlıktan sonraki dış öğeye kadar olan alanı tanımlar. Bir öğenin kenarlığı yoksa, kenar boşluğu öğe içeriğinden sonraki dış öğeye kadar olan alanı tanımlar.

Dolgu ve Kenar Boşluğu Arasındaki Fark

Dolayısıyla, kenar boşluğu ve dolgu arasındaki fark, dolgu iç mekanla ilgilenirken, kenar boşluğunun bir sonraki dış elemanın dış uzayıyla ilgilenmesidir.


1
Hangi öğelerin kenarlığı yoktur?
Sarim Javaid Khan

10

Kenar boşluğu ve dolgu arasındaki temel farklardan biri, yanıtların hiçbirinde belirtilmez: tıklanabilirlik ve fareyle üzerine gelme algılama

Dolguyu arttırmak elemanın etkili boyutunu arttırır. Bazen gözle görülür şekilde büyütmek istemediğim ufacık bir simgeye sahibim, ancak kullanıcının hala bu simgeyle etkileşime girmesi gerekiyor. Simgenin dolgusunu, tıklamalar ve fareyle üzerine gelindiğinde daha fazla yer kaplaması için artırıyorum. Simgenin kenar boşluğunu artırmak aynı etkiye sahip olmayacaktır.

Bu konuyla ilgili başka bir sorunun cevabı bir örnek verir.


En iyi yanıtların çoğu, doldurmanın öğenin "içi" ve kenar boşluklarının "dışında" olduğunu gösterir; bu da zaten daha büyük bir tıklama alanına katkıda bulunan dolgu anlamına gelir. Tamamen şeffaf bir kutu ile uğraşırken çok açık değil ...
BoltClock


9

marginVe arasındaki farkları bilmek iyidir padding. Bildiğim gibi:

  • Kenar boşluğu , bir öğenin dış alanı iken dolgu, bir öğenin iç alanıdır . Diğer bir deyişle, kenar boşluğu bir öğenin kenarlığının dışındaki boşluktur, dolgu ise kenarlığının içindeki boşluktur.
  • autoKenar boşluğuna değer ayarlayabilirsiniz . Ancak, dolgu için izin verilmez. Şuna bakın .
    Not: Kullanım margin: autoyatay kendi üst içinde bir blok elemanı ortalamak için. Ayrıca, kenar boşluğunu otomatik olarak ayarlayarak bir öğeyi bir esnek kutunun içinde dikey veya yatay olarak veya her ikisini birden ortalamak mümkündür. Şuna bakın .
  • Marj herhangi bir kayan sayı olabilir, ancak dolgu negatif olmamalıdır.
  • Bir öğeye stil eklediğinizde, dolgu da şekillendirilir; ama marj değil. Kenar boşluğu, üst öğenin stilini alır. Örneğin, background-colorözelliği siyah olarak ayarladığınızda, iç alanı (ör. Dolgu) siyah olur, ancak dış alanı (kenar boşluğu) olmaz.

4

Marj , kutunun dışında kalan boşluktur; dolgu kutunun içindeki alandır. Farkı beyaz bir dolgu ile görmek zor, ancak renkli bir dolgu ile iyi görebilirsiniz.


2

Kenar boşluğu ve dolgu her iki dolgu türüdür ... Bir (kenar boşluğu), diğer öğelerden uzaklaştırmak için öğeler kenarlığının dışına gider ve diğeri (dolgu), öğeleri öğeler kenarlığından uzaklaştırmak için öğeler içeriğinin dışına gider.


2

Dolgu, geliştiricinin metin ile onu çevreleyen öğe arasındaki boşluğu korumasına olanak tanır. Kenar boşluğu, öğenin üst DOM öğesinin başka bir öğesiyle koruduğu alandır.

Örneğe bakın:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UT-8">
    <title>Pseudo Elements</title>
    <style type="text/css">
        body{font-family:Arial; font-size:16px; background-color:#f8e6ae; color:#888;}
        .page
        {
            background-color: #fff;
            padding: 10px 30px 50px 50px;
            margin:30px 100px 30px 300px;
        }
    </style>
</head>
<body>
    <div class="page">
        Notice the distance between the top and this text. Then compare it with the distance between the bottom border and the this text. 
    </div>
</body>

1

kenar , CSS'de, öğelerin etrafında, kenarlığın dışında boşluk oluşturmak için kullanılan bir özelliktir. Programcı üst, sağ, alt ve sol kenar boşluğunu ayarlayabilir. Başka bir deyişle, bu değerleri kenar boşluğu, kenar boşluğu, kenar boşluğu ve kenar boşluğu kullanarak ayarlayabilir.

Marj değerleri aşağıdaki türlerden olabilir.

İlk olarak, auto, tarayıcının marjı hesaplamasını sağlar. Dahası, uzunluk, piksel, pt veya cm cinsinden bir kenar boşluğunu belirtirken%, bir kenar boşluğunu içeren elemanın genişliğine göre yüzde olarak tanımlamaya yardımcı olur. Son olarak, miras, kenar boşluğunun üst öğeden miras alınması gerektiğini belirtir.

Dolgu , CSS'de kenarlığın içindeki bir öğenin etrafında boşluk oluşturmaya yardımcı olan bir özelliktir. Programcı dolgu için üst, sağ, alt ve sol ayarları yapabilir. Başka bir deyişle, bu değerleri dolgu üst, dolgu sağ, dolgu alt ve dolgu solunu kullanarak ayarlayabilir.

Dolgu değerleri aşağıdaki türlerden olabilir.

Uzunluk, dolguyu px, pt veya cm cinsinden tanımlar,% ise dolguyu içerdiği elemanın genişliğine göre yüzde olarak belirtir. Son olarak, miras doldurmanın ana elemandan miras alınması gerektiğini açıklar.

 div.special {
          width:200px; 
          border-style: solid; 
          border-width:thin; 
          border-color:#000;
          margin:30px 20px 10px 25px;
}     
div.special2 {
          width:200px;
          border-style: solid;
          border-width:thin;
          border-color:#000;
          padding:30px 20px 10px 25px;
}        
<div class="special">
             Hello its margin test 
</div>
<div class="special2">
            Hello its padding test
</div>

Marj ve Dolgu Arasındaki Fark

Kenar boşluğu , tanımlanan kenarlığın dışında öğenin etrafında boşluk oluşturmak için kullanılan bir CSS özelliğidir, dolgu ise tanımlanan kenarlığın içinde öğenin etrafında boşluk oluşturmak için kullanılan bir CSS özelliğidir. Böylece bu, marj ve dolgu arasındaki ana farkı açıklar.

Değerler Ayrıca, kenar boşluğu değerleri otomatik, uzunluk,% veya devralma olabilir, dolgu değerleri ise uzunluk,% veya devralma türü olabilir. Bu nedenle, bu marj ve dolgu arasındaki bir başka farktır.

Kısacası, kenar boşluğu ve dolgu , CSS'de web sayfalarını şekillendirmeye izin veren iki özelliktir. Bu özellikler için negatif değerler atamak mümkün değildir. Kenar boşluğu ve dolgu arasındaki temel fark, kenar boşluğunun kenarlığın dışındaki öğenin etrafında boşluk oluşturmasına yardımcı olurken dolgu, kenarlığın içindeki öğenin etrafında boşluk oluşturulmasına yardımcı olur.


0

Genişlik ve yükseklikte blok div'a arka plan rengi koymayı deneyin. Dolgunun öğenin boyutunu artırdığını görürsünüz, kenar boşluğu ise belgenin akışı içinde hareket ettirir.

Marj, özellikle elemanın yerini değiştirmek içindir.


0

Dolgu, web sayfasındaki en yakın bileşenler arasındaki boşluktur ve kenar boşluğu web sayfasının kenar boşluğundan kalan alandır.


0

Bir şey fark ettim ama yukarıdaki cevapların hiçbiri belirtilmedi. Boş iç html içeriğiyle başlatılan dinamik olarak oluşturulmuş bir DOM öğem varsa, bu boş öğenin içeriği dışında herhangi bir alan işgal etmesini istemiyorsanız dolgu yerine kenar boşluğu kullanmak iyi bir uygulamadır.


-1

Önemli bir fark var:

Kenar boşluğu elemanın dışındadır, yani eleman başladıktan sonra "boşluk" vardiyası uygulanır. Doldurma - içeride, diğeri ise eleman başlamadan önce "boşluk" olan boşlukları uygular.


-1

Marj, öğenizin dışına uygulanır, böylece öğenizin diğer öğelerden ne kadar uzakta olduğunu etkiler.

Doldurma, öğenizin içine uygulanır, böylece öğenizin içeriğinin kenarlıktan ne kadar uzakta olduğunu etkiler.

Ayrıca, kenar boşluğu kullanmak öğenizin boyutlarını etkilemez, dolgu ise öğelerinizin boyutlarını ayarlayacaktır (yüksekliği + doldurmayı ayarlayın), bu nedenle örneğin 5 piksel dolgulu 100x100 piksel bir div'iniz varsa div'iniz 105x105 piksel olacaktır


bu cevabın zaten verildiğini fark ettin mi? - ve ek ve uygun bir vurgu ile?
JerryOL

-1

Temel olarak, dolgu ve kenar boşluğu arasındaki fark arka plan açısından gelir. Dolgu, içerik arasındaki boşluğa karar verirken, kenar boşluğu öğelerin dış kenarına karar verir!


-7

Dolgu, içerik ve sınır arasındaki boşluktur. Marjı arasındaki boşluk nerede olduğu sınır ve diğer eleman.


1
Marjlar o kadar basit değildir ve bu bir düzine geçirgen yanıtın daha önce söylemediği bir şey söylemez.
Quentin

2
Önceki cevapları tekrarladınız.
Johnroe Paulo Cañamaque
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.