찾다
웹 프론트엔드CSS 튜토리얼BFC란 무엇인가요? BFC에 대한 심층 분석

BFC란 무엇인가요? BFC에 대한 심층 분석

Oct 18, 2018 pm 02:12 PM
csscss3htmlhtml5javascript

이 글의 내용은 BFC란 무엇인가요? BFC에 대한 심층 분석은 특정 참고 가치가 있습니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

1. BFC란 무엇입니까

형식 컨텍스트는 W3C CSS2.1입니다. 사양의 개념입니다. 이는 페이지의 렌더링 영역이며 하위 요소의 위치 지정 방법, 다른 요소와의 관계 및 상호 작용을 결정하는 일련의 렌더링 규칙이 있습니다. 가장 일반적인 형식화 컨텍스트에는 블록 형식화 컨텍스트(줄여서 BFC) 및 인라인 형식화가 포함됩니다. 컨텍스트(줄여서 IFC)입니다. 블록 형식화 컨텍스트는 말 그대로 "블록 수준 형식화 컨텍스트"로 번역됩니다. Block-level Box만이 참여하는 독립적인 렌더링 영역으로 내부 Block-level Box의 배치 방식을 규정하며 이 영역 외부와는 아무런 관련이 없습니다. 일반인의 관점에서 BFC는 블록 수준 요소를 관리하는 데 사용되는 컨테이너입니다.

2. BFC를 만드는 방법

  • float는 왼쪽|right

  • 오버플로는 숨겨짐|auto|scroll

  • 디스플레이는 table-cell|table-caption|inline-block|inline- flex |flex

  • 위치는 절대값입니다|fixed

  • 루트 요소

3. BFC 레이아웃 규칙:

  • 내부 상자는 수직 방향으로 하나씩 배치됩니다(예: 블록 레벨 요소를 자체 라인에 표시).

  • BFC 영역은 플로트 상자와 겹치지 않습니다(적응형 2열 레이아웃을 얻으려면 이 기능을 사용하세요).

  • 내부 Box의 세로 간격은 여유에 따라 결정됩니다. 동일한 BFC에 속하는 두 인접한 박스의 여백은 겹칩니다(마진 겹침에는 세 가지 조건이 있습니다: 동일한 BFC에 속함, 인접, 블록 수준 요소).

  • BFC의 높이를 계산할 때 플로팅 요소도 계산에 참여합니다. (플로팅 해시 레이아웃 지우기)

  • BFC는 페이지에서 격리된 독립 컨테이너입니다. 컨테이너의 하위 요소는 외부 요소에 영향을 주지 않습니다. 그리고 그 반대도 마찬가지입니다.

IV.BFC의 특징

특징 1: BFC는 세로 여백이 접히는 것을 방지합니다.

BFC의 정의에 따르면 동일한 BFC에 속할 경우에만 두 요소가 가질 수 있습니다. 수직 여백. 여기에는 인접한 요소나 중첩된 요소가 포함됩니다(예: 테두리, 비어 있지 않은 콘텐츠, 패딩 등).

①인접 형제 요소의 여백 겹침 문제

<style>
p{
        color: #fff;
        background: #888;
        width: 200px;
        line-height: 100px;
        text-align:center;
        margin: 100px;
  }
</style>

    <p>ABC</p>
    <p>abc</p>

BFC란 무엇인가요? BFC에 대한 심층 분석

위 예에서 두 P 요소 사이의 거리는 200px이어야 했지만 실제로는 100px에 불과해 여백 겹침이 발생했습니다. 이 상황에 어떻게 대처해야 할까요?
p 주위에 컨테이너를 감싸고 컨테이너를 트리거하여 BFC를 생성하기만 하면 됩니다. 그러면 두 P는 동일한 BFC에 속하지 않으며 마진 중복도 발생하지 않습니다.

<style>
p{
        color: #fff;
        background: #888;
        width: 200px;
        line-height: 100px;
        text-align:center;
        margin: 100px;
    }
.wrap{
  overflow:hidden;
}
</style>

   <p>ABC</p>
  <div>
    <p>abc</p>
  </div>

BFC란 무엇인가요? BFC에 대한 심층 분석

2부모 요소와 자식 요소 사이의 여백이 겹치는 문제

<style>
.box{
width:100px;
height:100px;
background:#ccc;
}
.wrap {
  background:yellow;
}
.wrap h1{
  background:pink;
  margin:40px;
}
</style>

<div>box</div>
<div>
  <h1 id="h">h1</h1>
</div>

BFC란 무엇인가요? BFC에 대한 심층 분석

이론적으로 위 그림의 Wrap 요소와 h1 요소 사이의 상하 여백 값은 40px이 되어야 합니다. , 그러나 실제로는 부모 요소와 자식 요소는 그렇지 않습니다. 여백 값이 없으며 동시에 두 p 요소 사이의 거리는 40px입니다. 이 상황에 어떻게 대처해야 할까요?
실제로 많은 처리 방법이 있습니다. 랩 요소에 오버플로: 자동을 추가하고, 테두리: 1px 솔리드 또는 패딩: 1px를 추가할 수도 있습니다. 상위 요소와 하위 요소 간의 여백 겹침 문제를 해결합니다.

BFC란 무엇인가요? BFC에 대한 심층 분석

기능 2: BFC는 부동 요소와 겹치지 않습니다.

이 기능을 사용하면

적응형 2열 레이아웃을 만들 수 있습니다.

<style>
.box1{
  height: 100px;
  width: 100px;
  float: left;
  background: lightblue;
}
.box2{width: 200px;
  height: 200px;
  background: #eee;
}
</style>

<div>我是一个左浮动的元素</div>
<div>喂喂喂!大家不要生气嘛,生气会犯嗔戒的。悟空你也太调皮了,
我跟你说过叫你不要乱扔东西,你怎么又……你看,我还没说完你就把棍子给扔掉了!
月光宝盒是宝物,你把它扔掉会污染环境,要是砸到小朋友怎么办,就算砸不到小朋友,
砸到花花草草也是不对的。</div>

BFC란 무엇인가요? BFC에 대한 심층 분석

위 그림에서는 플로팅 요소 주위에 텍스트가 배열되어 있지만 여기서는 분명히 우리가 원하는 것이 아닙니다. 이때 .box2 요소의 스타일에 Overflow:hidden을 추가하면 해당 콘텐츠가 외부 부동 요소에 미치는 영향을 제거할 수 있도록 BFC가 생성됩니다.

BFC란 무엇인가요? BFC에 대한 심층 분석

这个方法可以用来实现两列自适应布局,效果不错,此时左边的宽度固定,右边的内容自适应宽度。如果我们改变文字的大小或者左边浮动元素的大小,两栏布局的结构依然没有改变!

特性3:BFC可以包含浮动----清除浮动

我们都知道浮动会脱离文档流,接下来我们看看下面的例子:

<style>
.box1{
  width:100px;
  height:100px;
  float:left;
  border: 1px solid #000;
}
.box2{
  width:100px;
  height:100px;
  float:left;
  border: 1px solid #000;
}
.box{
  background:yellow
}
</style>

<div>
  <div></div>
  <div></div>
</div> 

BFC란 무엇인가요? BFC에 대한 심층 분석

由于容器内两个div元素浮动,脱离了文档流,父容器内容宽度为零(即发生高度塌陷),未能将子元素包裹住。解决这个问题,只需要把把父元素变成一个BFC就行了。常用的办法是给父元素设置overflow:hidden。

BFC란 무엇인가요? BFC에 대한 심층 분석

위 내용은 BFC란 무엇인가요? BFC에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault思否에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
주간 플랫폼 뉴스 : Galaxy Store, Tappable Stories, CSS Subgrid의 웹 앱주간 플랫폼 뉴스 : Galaxy Store, Tappable Stories, CSS Subgrid의 웹 앱Apr 14, 2025 am 11:20 AM

이번 주에 Roundup : Firefox는 Locksmith-Like Powers를 얻는 Samsung '의 Galaxy Store가 프로그레시브 웹 앱을 지원하기 시작하고 CSS Subgrid는 Firefox에서 배송됩니다.

주간 플랫폼 뉴스 : Internet Explorer 모드, 검색 콘솔의 속도 보고서, 알림 제한 프롬프트 제한주간 플랫폼 뉴스 : Internet Explorer 모드, 검색 콘솔의 속도 보고서, 알림 제한 프롬프트 제한Apr 14, 2025 am 11:15 AM

이번 주에 Roundup : Internet Explorer는 Edge로가는 길을 찾고 Google 검색 콘솔은 새로운 속도 보고서를 선전하고 Firefox는 Facebook의 알림을 제공합니다.

CSS 사용자 정의 속성을 갖춘 범위의 힘 (및 재미)CSS 사용자 정의 속성을 갖춘 범위의 힘 (및 재미)Apr 14, 2025 am 11:11 AM

당신은 아마도 이미 CSS 변수에 익숙 할 것입니다. 그렇지 않다면 여기 2 초 개요가 있습니다. 실제로 사용자 정의 속성이라고합니다.

우리는 프로그래머입니다우리는 프로그래머입니다Apr 14, 2025 am 11:04 AM

웹 사이트 구축은 프로그래밍입니다. HTML 및 CSS 작성은 프로그래밍입니다. 나는 프로그래머이며, 여기에 CSS- 트릭을 읽는다면, 당신은 ' re a입니다.

사이트에서 사용하지 않은 CSS를 어떻게 제거합니까?사이트에서 사용하지 않은 CSS를 어떻게 제거합니까?Apr 14, 2025 am 10:59 AM

여기에 내가 당신이 선불 아는 것을 좋아하는 것 : 이것은 어려운 문제입니다. 당신이 여기에 착륙 한 경우, 당신은 당신이 말할 수있는 도구를 가리키기를 희망하기 때문에 여기에 착륙했다면

Picture-in-Picture Web API 소개Picture-in-Picture Web API 소개Apr 14, 2025 am 10:57 AM

Picturein-Picture는 2016 년 Macos Sierra의 출시와 함께 Safari 브라우저에서 웹에서 처음으로 등장했습니다. 사용자가 팝 팝이 가능했습니다.

개츠비를 사용하여 흐릿한 효과를위한 이미지를 구성하고 준비하는 방법개츠비를 사용하여 흐릿한 효과를위한 이미지를 구성하고 준비하는 방법Apr 14, 2025 am 10:56 AM

개츠비는 훌륭한 작업 처리 및 처리 이미지를 수행합니다. 예를 들어, 수동으로 이미지 최적화로 시간을 절약 할 수 있습니다.

오, 패딩 비율은 부모 요소의 너비를 기준으로합니다.오, 패딩 비율은 부모 요소의 너비를 기준으로합니다.Apr 14, 2025 am 10:55 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. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구