Wanneer marge versus opvulling gebruiken in CSS

Is er bij het schrijven van CSS een bepaalde regel of richtlijn die moet worden gebruikt om te beslissen wanneer marginmoet worden gebruikt en wanneer paddingmoet worden gebruikt?


Antwoord 1, autoriteit 100%

TL;DR:Standaard gebruik ik overal marge, behalve wanneer ik een rand of achtergrond heb en de ruimte binnen dat zichtbare vak wil vergroten.

Voor mij is het grootste verschil tussen opvulling en marge dat verticale marges automatisch samenvouwen en opvulling niet.

Beschouw twee elementen boven elkaar, elk met een opvulling van 1em. Deze opvulling wordt beschouwd als onderdeel van het element en blijft altijd behouden.

Je krijgt dus de inhoud van het eerste element, gevolgd door de opvulling van het eerste element, gevolgd door de opvulling van het tweede, gevolgd door de inhoud van het tweede element.

Dus de inhoud van de twee elementen zal uiteindelijk 2emuit elkaar liggen.

Vervang die opvulling nu door een marge van 1em. Marges worden beschouwd als buiten het element en marges van aangrenzende items overlappen elkaar.

Dus in dit voorbeeld krijg je de inhoud van het eerste element gevolgd door 1emgecombineerde marge gevolgd door de inhoud van het tweede element. Dus de inhoud van de twee elementen is slechts 1emuit elkaar.

Dit kan erg handig zijn als je weet dat je 1emspatie rond een element wilt zeggen, ongeacht het element ernaast.

De andere twee grote verschillen zijn dat opvulling is opgenomen in het klikgebied en de achtergrondkleur/afbeelding, maar niet in de marge.

div.box > div { height: 50px; width: 50px; border: 1px solid black; text-align: center; }
div.padding > div { padding-top: 20px; }
div.margin > div { margin-top: 20px; }
<h3>Default</h3>
<div class="box">
  <div>A</div>
  <div>B</div>
  <div>C</div>
</div>
<h3>padding-top: 20px</h3>
<div class="box padding">
  <div>A</div>
  <div>B</div>
  <div>C</div>
</div>
<h3>margin-top: 20px; </h3>
<div class="box margin">
  <div>A</div>
  <div>B</div>
  <div>C</div>
</div>

Antwoord 2, autoriteit 91%

Marge zit aan de buitenkant van blokelementen, terwijl opvulling aan de binnenkant zit.

  • Gebruik marge om het blok te scheiden van dingen erbuiten
  • Gebruik opvulling om de inhoud van de randen van het blok te verwijderen.


Antwoord 3, autoriteit 36%

De beste die ik heb gezien om dit uit te leggen met voorbeelden, diagrammen en zelfs een ‘probeer het zelf’-weergave is hier.

Het onderstaande diagram geeft volgens mij direct visueel inzicht in het verschil.

Eén ding om in gedachten te houden, is normen compatibele browsers (ie quirks is een uitzondering ) Alleen het inhoudsgedeelte naar de gegeven breedte, dus houd dit bij in lay-outberekeningen. Merk ook op dat de randdoos enigszins ziet van een comeback met bootstrap 3 die het ondersteunt.


4, Autoriteit 5%

marge vs opvulling :

  1. Marge wordt gebruikt in een element om afstand tussen dat element en andere elementen van de pagina te creëren. Waarbij opvulling wordt gebruikt om afstand tussen inhoud en rand van een element te creëren.

  2. Marge maakt geen deel uit van een element waar opvulling deel uitmaakt van element.

Zie onderstaande afbeelding uit Marge versus opvulling – CSS-eigenschappen


Antwoord 5, autoriteit 3%

Van https://www.w3schools.com/css/css_boxmodel.asp

Uitleg van de verschillende onderdelen:

  • Inhoud– De inhoud van het vak, waar tekst en afbeeldingen verschijnen

  • Opvulling– Wist een gebied rond de inhoud. De vulling is transparant

  • Rand– Een rand die rond de opvulling en inhoud gaat

  • Marge– Wist een gebied buiten de grens. De marge is transparant

Live voorbeeld (speel wat rond door de waarden te wijzigen):
https://www.w3schools.com/css/tryit.asp?filename=trycss_boxmodel


Antwoord 6, autoriteit 2%

Het is goed om de verschillen te kennen tussen marginen padding. Hier zijn enkele verschillen:

  • Marge is buitenruimtevan een element, terwijl opvulling binnenruimtevan een element is.

  • Marge is de ruimte buiten de rand van een element, terwijl opvulling de ruimte binnen de rand ervan is.

  • Marge accepteert de waarde van auto: margin: auto, maar u kunt opvulling niet instellen op auto.

  • Marge kan op elk getal worden ingesteld, maar opvulling mag niet-negatief zijn.

  • Als je een element opmaakt, wordt de opvulling ook beïnvloed (bijvoorbeeld de achtergrondkleur), maar niet de marge.


Antwoord 7, autoriteit 2%

Hier is wat HTML die laat zien hoe paddingen marginde klikbaarheid en achtergrondvulling beïnvloeden. Een object ontvangt klikken op zijn opvulling, maar klikken op een gebied met een marge van een object gaan naar het bovenliggende gebied.

$(".outer").click(function(e) {
  console.log("outer");
  e.stopPropagation();
});
$(".inner").click(function(e) {
  console.log("inner");
  e.stopPropagation();
});
.outer {
  padding: 10px;
  background: red;
}
.inner {
  margin: 10px;
  padding: 10px;
  background: blue;
  border: solid white 1px;
}
<script src="https://code.jquery.com/jquery-latest.js"></script>
<div class="outer">
  <div class="inner" style="position:relative; height:0px; width:0px">
  </div>
</div>

Antwoord 8, autoriteit 2%

Het voordeel van marges is dat u zich geen zorgen hoeft te maken over de breedte van het element.

Als je iets {padding: 10px;}geeft, moet je de breedte van het element met 20pxverkleinen om de ‘fit ‘ en de andere elementen eromheen niet storen.

Dus ik begin over het algemeen met het gebruik van opvullingen om alles ‘packed‘ te krijgen en gebruik dan marges voor kleine aanpassingen.

Een ander ding om op te letten is dat opvullingen consistenter zijn in verschillende browsers en dat IE negatieve marges niet goed behandelt.


Antwoord 9, autoriteit 2%

De marge wist een gebied rond een element (buiten de rand), maar de opvulling wist een gebied rond de inhoud (binnen de rand) van een element.

het betekent dat uw element niets weet van zijn buitenmarges, dus als u dynamische webbesturingselementen ontwikkelt, raad ik u aan om opvulling versus marge te gebruiken als dat mogelijk is.

merk op dat u soms marge moet gebruiken.


Antwoord 10

Eén ding om op te merken is dat wanneer automatisch samenvouwende marges u irriteren (en u geen achtergrondkleuren voor uw elementen gebruikt), iets dat gewoon gemakkelijker is om opvulling te gebruiken.


Antwoord 11

Laten we eerst eens kijken wat de verschillen zijn en wat elke verantwoordelijkheid is:

1) Marge

De CSS-marge-eigenschappen worden gebruikt om ruimte rond elementen te genereren.

De marge-eigenschappen bepalen de grootte van de witruimte buiten de
grens. Met CSS heb je volledige controle over de marges.
Er zijn
CSS-eigenschappen voor het instellen van de marge voor elke zijde van een element
(boven, rechts, onder en links).

2) Vulling

De CSS-opvuleigenschappen worden gebruikt om ruimte rond inhoud te genereren.

De opvulling maakt een gebied vrij rond de inhoud (binnen de rand) van
een element.
Met CSS heb je volledige controle over de opvulling. Daar
zijn CSS-eigenschappen voor het instellen van de opvulling voor elke zijde van een element
(boven, rechts, onder en links).

Dus gewoon Margeszijn ruimte rond elementen, terwijl Opvullingruimte zijn rond inhoud die deel uitmaakt van het element.

Deze afbeelding van codemancerslaat zien hoe marge en randen samenkomen en hoe border box en content-box het maken anders.

Ze definiëren ook elke sectie zoals hieronder:

  • Inhoud– dit definieert het inhoudsgebied van het vak waar de daadwerkelijke inhoud, zoals tekst, afbeeldingen of misschien andere elementen, zich bevindt.
  • Opvulling– hiermee wordt de hoofdinhoud uit de doos verwijderd.
  • Rand– deze omringt zowel de inhoud als de opvulling.
  • Marge– dit gebied definieert een transparante ruimte die het scheidt van andere elementen.

Antwoord 12

Ik gebruik altijd dit principe:

Dit is het doosmodel van de functie voor het inspecteren van elementen in Firefox. Het werkt als een ui:

  • Je inhoud staat in het midden.
  • Opvulling is ruimte tussen uw inhoud en de rand van de tag die het is
    binnen.
  • De rand en zijn specificaties
  • De marge is de ruimte rond de tag.

Dus grotere marges maken meer ruimte vrij rond het vak dat uw inhoud bevat.

Grotere opvulling vergroot de ruimte tussen uw inhoud en de doos waarin deze zich bevindt.

Geen van beide zal de grootte van het vak vergroten of verkleinen als het is ingesteld op een specifieke waarde.


Antwoord 13

Marge

Marge wordt meestal gebruikt om een ruimte te creëren tussen het element zelf en de rand.

Ik gebruik het bijvoorbeeld wanneer ik een navigatiebalk aan het bouwen ben, zodat het aan de randen van het scherm blijft plakken en er geen witte tussenruimte ontstaat.

Opvulling

Ik gebruik meestal wanneer ik een element binnen een rand heb, <div>of iets dergelijks, en ik wil de grootte verkleinen, maar op dat moment wil ik de afstand of de marge tussen de andere elementen eromheen.

Dus kort gezegd, het is situationeel; het hangt af van wat je probeert te doen.


Antwoord 14

Marge is buiten de doos en opvulling is binnen de doos

Other episodes