[css] CSS에서 여백 대 패딩을 사용하는 경우 [닫기]

CSS를 작성할 때, 경우에 사용하는 결정에 사용되어야 할 특정 규칙이나 지침이 margin때 사용하는 방법은 padding?



답변

TL; DR : 기본적으로 테두리 나 배경이 있고 표시되는 상자 내부의 공간을 늘리려는 경우를 제외하고는 모든 곳에서 여백을 사용합니다.

패딩과 여백의 가장 큰 차이점은 세로 여백이 자동 축소되고 패딩이 그렇지 않다는 것입니다.

안쪽에 패딩이있는 두 요소를 고려하십시오 1em. 이 패딩은 요소의 일부로 간주되며 항상 유지됩니다.

따라서 첫 번째 요소의 내용, 첫 번째 요소의 패딩, 두 번째 요소의 패딩, 두 번째 요소의 내용으로 끝납니다.

따라서 두 요소의 내용이 2em분리됩니다.

이제 해당 패딩을 1em 여백으로 바꿉니다. 여백은 요소 외부에있는 것으로 간주되며 인접한 항목의 여백이 겹칩니다.

따라서이 예에서는 첫 번째 요소의 내용 1em과 결합 된 여백, 두 번째 요소의 내용으로 끝납니다 . 따라서 두 요소의 내용은 서로 1em다릅니다.

이것은 1em어떤 요소가 옆에 있는지에 관계없이 요소 주위에 간격 을 말하고 싶다는 것을 알 때 정말 유용 할 수 있습니다 .

다른 두 가지 큰 차이점은 클릭 영역과 배경 색상 / 이미지에는 패딩이 포함되지만 여백은 포함되지 않는다는 것입니다.

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>


답변

안쪽 여백은 안쪽에 있고 여백은 블록 요소 바깥쪽에 있습니다.

  • 여백을 사용하여 블록을 외부와 분리하십시오.
  • 안쪽 여백을 사용하여 내용물을 블록 가장자리에서 멀리 이동하십시오.

여기에 이미지 설명을 입력하십시오


답변

예제, 다이어그램, 심지어 ‘직접 시도해보기’로 이것을 설명하는 최고가 여기 있습니다 .

아래 그림은 그 차이에 대한 즉각적인 시각적 이해를 제공한다고 생각합니다.

여기에 이미지 설명을 입력하십시오

명심해야 할 것은 표준 호환 브라우저 ( IE quirks는 예외입니다 )는 콘텐츠 부분 만 주어진 너비로 렌더링하므로 레이아웃 계산에서이를 추적하십시오. 또한 테두리 상자는 부트 스트랩 3을 지원 하는 컴백을 보여 줍니다.


답변

질문에 대한 더 많은 기술적 설명이 있지만 , 사용시기와 방법을 선택하는 데 도움이되는 여백과 패딩 에 대해 생각할 방법을 찾고 있다면 도움이 될 것입니다.

블록 요소를 벽에 걸려있는 그림과 비교하십시오.

  • 브라우저 창에서 바로 벽과 같다.
  • 내용은 단지 사진과 같다.
  • 이익률은 바로 액자 사진 사이의 벽 공간 같다.
  • 패딩은 단지 사진 주위에 매트 같다.
  • 테두리 단지 프레임의 경계 같다.

여백과 패딩을 결정할 때 벽의 다른 것들과 관련하여 요소를 배치 할 때 여백 을 사용 하고 요소 자체의 모양을 조정할 때 패딩 을 사용하는 것이 좋습니다. 여백은 요소의 크기를 변경하지 않지만 패딩은 일반적으로 요소를 1 더 크게 만듭니다 .

1 이 기본 상자 모델은 box-sizing속성 으로 변경할 수 있습니다 .


답변

마진 vs 패딩 :

  1. 요소에서 여백은 해당 요소와 페이지의 다른 요소 사이의 거리를 만들기 위해 사용됩니다. 패딩은 내용과 요소의 경계 사이의 거리를 만드는 데 사용됩니다.

  2. 여백은 패딩이 요소의 일부인 요소의 일부가 아닙니다.

아래 여백 대 패딩 에서 추출한 이미지를 참조하십시오 -CSS 속성

여백 vs 패딩


답변

에서 https://www.w3schools.com/css/css_boxmodel.asp

다른 부분에 대한 설명 :

  • 내용 -텍스트와 이미지가 나타나는 상자의 내용

  • 패딩 -컨텐츠 주변의 영역을 지 웁니다. 패딩은 투명하다

  • 테두리 -패딩 및 내용을 둘러싼 테두리

  • 여백 -테두리 외부의 영역을 지 웁니다. 여백은 투명하다

CSS 박스 모델의 일러스트

실제 예 (값을 변경하여 재생) :
https://www.w3schools.com/css/tryit.asp?filename=trycss_boxmodel


답변

여기에 방법을 보여줍니다 일부 HTML입니다 paddingmargin클릭 가능성에 영향을 미칠 및 배경 채우기는. 객체는 패딩에 대한 클릭을 수신하지만 객체 여백의 영역을 클릭하면 상위로 이동합니다.

$(".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="http://code.jquery.com/jquery-latest.js"></script>

<div class="outer">
  <div class="inner" style="position:relative; height:0px; width:0px">

  </div>
</div>