찾다
웹 프론트엔드CSS 튜토리얼div 외부 여백 겹침 문제 및 해결 방법

이 기사에서는 div 여백 겹침과 관련된 문제를 해결하는 방법을 주로 소개하는 css에 대한 관련 지식을 제공합니다. 여백 겹침은 일반 유동 문서의 위쪽 여백과 아래쪽 여백 사이에서만 발생합니다. 블록 요소만 겹침 여백을 갖습니다. , 인라인 요소와 인라인 블록 요소는 마진이 겹치지 않지만 모두에게 도움이 되기를 바랍니다.

div 외부 여백 겹침 문제 및 해결 방법

(학습 영상 공유: css 영상 튜토리얼, html 영상 튜토리얼)

CSS 여백 겹침(여백 축소)

블록 여백의 위쪽 여백(margin-top)과 아래쪽 여백 -bottom은 때때로 단일 여백의 최대 크기(또는 동일한 경우 그 중 하나만)인 단일 여백으로 병합(축소)됩니다. 이러한 동작을 여백 축소라고 합니다.

테두리 겹침은 두 개 이상의 상자(인접하거나 중첩될 수 있음)의 인접한 테두리(비어 있지 않은 콘텐츠, 패딩 또는 둘 사이의 테두리 없음)가 겹쳐서 단일 테두리를 형성한다는 의미입니다.

즉, 마진 겹침은 수직으로 인접한 두 개의 블록 수준 요소를 의미하며, 위쪽 및 아래쪽 마진이 만나면 바깥쪽 마진이 겹치고, 겹치는 마진은 그 중 더 큰 것과 같습니다.

마진 값 중복 계산 방법:

  • 마진 값은 모두 양수이므로 둘 중 최대값을 취합니다.

  • 음수 경계가 나타나면 가장 큰 양수 경계에서 절대값이 가장 큰 음수 경계를 뺍니다.

  • 양수 경계가 없으면 절대값이 가장 큰 음수 경계를 0에서 뺍니다.

1. 여백 겹침 문제가 발생하는 요소는 무엇입니까?

여백 겹침은 일반 흐름 문서위쪽 여백과 아래쪽 여백 사이에서만 발생합니다. 블록 요소에만 인라인 요소가 겹칩니다. 인라인 블록 요소에는 여백 겹침 문제가 없습니다

두 번째, 어떤 상황에서 여백 겹침이 발생합니까?

첫 번째 상황: 인접 형제 요소의 Marin - 의 값 하단 및 여백-상단 겹침

테두리가 겹칠 경우 최대 테두리 범위만 선택되어 남게 되므로 둘 사이의 여백은 100px입니다
이 테두리 겹침 문제를 해결하려면 해야 합니다. 나중에 요소에 부동 소수점을 추가하거나 형제 중 하나에 div를 넣고 테두리를 설정합니다: 1px 단색 흰색;

<div></div>
<div></div>
 
#box1{
     width: 200px;
     height: 200px;
     background: lemonchiffon;
     margin-bottom: 50px;
     margin-top: 50px;
 }
 #box2{
     width: 200px;
     height: 200px;
     background: lightcoral;
     margin-top:100px ;
     opacity: 0.3;
     float: left;   //加上float后,两者间距为150px
 }

두 번째 경우: 상위 요소와 첫 번째/마지막 하위 요소의 여백을 병합합니다

<div>
   <div></div>
</div>
#box1{
     width: 200px;
     height: 200px;
     background: lemonchiffon;
     margin-top: 50px;
 }
 #box3 {
   width: 100px;
   height: 100px;
   background-color: #f12416;
   margin-top: 50px;
 }

The 예제의 효과는 다음과 같습니다.

부모 요소와 자식 요소 모두의 margin-top이 50px로 설정된 경우 부모 요소와 자식 요소는 모두 테두리에서 50px 떨어져 있습니다. 우리가 생각하는 대로 자식 요소와 부모 요소 사이의 거리는 50px입니다.

상위 요소가 상단 여백을 설정하지 않고 하위 요소가 margin-top을 50px로 설정한 경우, 이때 상위 및 하위 요소는 여전히 상단에서 50px 떨어져 있습니다.

해결책:

방법 1: 추가 오버플로: 상위 요소에 숨겨짐

이 방법은 여백 겹침 문제를 해결하지만 이 방법은 "자식 요소의 높이에 여백 높이를 더한 값이 상위 요소의 높이보다 작습니다(childHeight +margin). -top, 그렇지 않으면 하위 요소 부분 콘텐츠가 숨겨집니다

방법 2: 상위 요소에 테두리 추가(투명 테두리를 추가할 수 있음)

방법 3: 디스플레이 설정:인라인 -block;

블록 요소만 여백이 겹치므로 블록 요소가 아닌 것으로 만들고 인라인 블록 요소로 설정합니다

방법 4: float를 부모 또는 자식으로 설정

방법 5 : float를 상위 또는 하위로 설정 하위 설정 위치: 절대;

방법 6: 상위 요소에 패딩 추가

#box1{
     width: 200px;
     height: 200px;
     background: lemonchiffon;
     margin-top: 50px;
     /*overflow:hidden;*/
     /*border: 1px solid #00000000;*/
     /*display: inline-block;*/
     /*float:left;*/
     /*position: absolute*/
     /*padding: 10px;*/
 }
 #box3 {
        width: 100px;
        height: 100px;
        background-color: #f12416;
        margin-top: 50px;
        /*display: inline-block;*/
        /*float:left;*/
        /*position: absolute*/
    }

세 번째 경우: 빈 블록 수준 요소

자체 여백 -top과 margin-bottom이 겹쳐서 발생합니다. 테두리, Pa
dding 또는 높이를 설정하여 이 문제를 해결할 수 있습니다.

  <div></div>
  <div></div>
  <div></div>
  <style>
 #box1{
      width: 200px; height:200px;
      background:lightseagreen;
      margin-bottom:50px ;
    } 
    #box2{
      margin-top: 20px;
      margin-bottom:20px ;
      border: 1px solid salmon; //加了border或padding后,与上下两个元素的间距分别为50px和100px,没加之前,上下两个元素的间距为100px
      /*padding: 1px; */
    }
    #box3{
      width: 200px; height:200px;
      background:darkgoldenrod;
      margin-top:100px ;
    }</style>

테두리나 패딩을 추가한 후 위쪽 요소와 아래쪽 요소 사이의 거리는 각각 50px이고 추가하기 전에는 위쪽 요소와 아래쪽 요소 사이의 거리가 100px이었습니다.

네 번째 경우: 상위 요소의 높이 auto의 margin-bottom은 하위 요소의 margin-bottom과 겹칩니다.

상위 요소는 border-bottom과 padding-bottom을 분리하도록 설정하거나

일 수 있습니다.

상위 요소의 높이를 설정하면 max-height 및 min-height도 이 문제를 해결할 수 있습니다.

3. 여백 겹침을 계산하는 방법

  • 모두 양수 값인 경우 가장 큰 값을 선택하세요.

  • 모두 양수가 아니면 절대값을 취하고 양수값에서 최대값을 뺍니다.

  • 양수가 없으면 절대값을 취하고 0에서 최대값을 뺍니다.

(학습 영상 공유: css 영상 튜토리얼, html 영상 튜토리얼)

위 내용은 div 외부 여백 겹침 문제 및 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 CSDN에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
'CSS4'업데이트'CSS4'업데이트Apr 11, 2025 pm 12:05 PM

내가 CSS4¹에 처음으로 차지했기 때문에, 그것에 대해 많은 논의가있었습니다. 나는 여기 다른 사람들로부터 내가 가장 좋아하는 생각을 마무리하려고 할 것입니다. 거기 있습니다

세 가지 유형의 코드세 가지 유형의 코드Apr 11, 2025 pm 12:02 PM

새 프로젝트를 시작할 때마다 원하는 경우 세 가지 유형 또는 카테고리로보고있는 코드를 구성합니다. 그리고 나는 이러한 유형을 적용 할 수 있다고 생각합니다

HTTPS는 쉽습니다!HTTPS는 쉽습니다!Apr 11, 2025 am 11:51 AM

나는 HTTPS의 복잡성을 공개적으로 비난하는 것에 대해 유죄를 선고했다. 과거에는 타사 공급 업체로부터 SSL 인증서를 구매했으며 문제가있었습니다.

HTML 데이터 속성 안내서HTML 데이터 속성 안내서Apr 11, 2025 am 11:50 AM

HTML, CSS 및 JavaScript의 데이터 속성에 대해 알고 싶었던 모든 것.

자바 스크립트의 불변성 이해자바 스크립트의 불변성 이해Apr 11, 2025 am 11:47 AM

이전에 JavaScript에서 불변성으로 작업하지 않은 경우 변수를 새로운 값 또는 재 할당과 혼동하기가 쉽습니다.

최신 CSS 기능을 갖춘 사용자 정의 스타일링 양식 입력최신 CSS 기능을 갖춘 사용자 정의 스타일링 양식 입력Apr 11, 2025 am 11:45 AM

시맨틱하고 액세스 가능한 상태를 유지하면서 요즘 사용자 정의 확인란, 라디오 버튼 및 토글 스위치를 만들 수 있습니다. 우리는조차 필요하지 않습니다

각주 문자각주 문자Apr 11, 2025 am 11:34 AM

각주에 적합한 특수 슈퍼 세트 번호 문자가 있습니다. 여기에 다음과 같습니다.

HTML, CSS 및 JavaScript로 애니메이션 카운트 다운 타이머를 만드는 방법HTML, CSS 및 JavaScript로 애니메이션 카운트 다운 타이머를 만드는 방법Apr 11, 2025 am 11:29 AM

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경