컨테이너의 전체 너비에 걸쳐 다중 열 레이아웃을 만들면 마지막 열이 일부 브라우저에서 다음 줄로 떨어집니다. 브라우저가 열의 너비를 반올림하고 총 폭이 컨테이너보다 더 많아지기 때문에 발생할 수 있습니다. 그러나 레이아웃 열에서 새로운 블록 서식 컨텍스트를 설정하면 이전 열이 채워진 후에도 남은 공간을 항상 가져갑니다. .
3 개의 열이있는 다중 열 레이아웃의 예를 사용해 봅시다.
여기 html이 있습니다 :
및 CSS :
결과는 Codepen 데모입니다 :
Codepen에서 SitePoint (@SitePoint)에 의해 최종 열을 "적합"하기 위해 블록 서식 컨텍스트를 사용하여 펜을 참조하십시오.
이제 컨테이너의 너비가 약간 변하면 레이아웃이 파손되지 않습니다. 물론 이것은 반드시 멀티 컬럼 레이아웃에 좋은 옵션 일 필요는 없지만 최종 열이 떨어지는 문제를 방지하는 한 가지 방법입니다. Flexbox는 이와 같은 경우에 더 나은 솔루션이 될 것입니다. 그러나 이것은 이러한 상황에서 요소가 어떻게 행동하는지 설명하는 데 도움이 될 것입니다.
.
결론
이 게시물에서 블록 서식 컨텍스트의 관련성과 페이지에서 요소의 시각적 위치에 어떤 영향을 미치는지 보여 주셨으면합니다. 실제적인 경우에 사용을 보여주는 예제는 조금 더 명확하게 만들어야합니다.
추가 할 것이 있으면 의견에 알려주십시오. 그리고 더 깊이 가고 싶다면 주제에 대한 W3C의 더 자세한 토론을 검토하십시오. .
CSS의 블록 형식 컨텍스트에 대한 자주 묻는 질문 (FAQ)
CSS에서 블록 형식의 컨텍스트의 중요성은 무엇입니까?
<span><span><span><div</span> class<span>="container"</span>></span>
</span> Some Content here
<span><span><span></div</span>></span></span>
로그인 후 복사
로그인 후 복사
블록 서식 컨텍스트 (BFC)는 웹 페이지에서 요소의 레이아웃을 제어하는 CSS의 기본 개념입니다. 요소의 위치 및 스타일, 특히 복잡한 레이아웃에서 중요한 역할을합니다. BFCS는 플로트, 인라인 블록 및 테이블을 포함하는 문서의 섹션을 분리하는 데 도움이되며, 이는 예상치 못한 요소의 겹치는 중첩을 방지 할 수 있습니다. BFC를 이해하는 것은 개발자가보다 강력하고 예측 가능한 설계를 만드는 데 도움이 될 수 있습니다.
블록 형식 컨텍스트는 부동 요소의 레이아웃에 어떤 영향을 미칩니 까? BFC 외부의 요소 레이아웃에는 영향을 미치지 않습니다. 이것은 텍스트 나 다른 요소가 떠 다니는 요소를 감싸는 것을 방지 할 때 특히 유용합니다. 새 BFC를 만들면 플로팅 요소가 다른 요소의 위치를 방해하지 않도록 할 수 있습니다. 새로운 블록 서식 컨텍스트를 어떻게 만들 수 있습니까? CSS에서 새로운 BFC를 설정하는 방법에는 여러 가지가 있습니다. 가장 일반적인 방법 중 일부는 CSS 속성 '디스플레이'를 '흐름 뿌리', '플렉스'또는 '그리드'로 설정하거나 '오버플로'를‘가시 보이는’이외의 다른 것으로 설정하는 것입니다. 새 BFC를 생성하는 다른 속성에는 '값이'레이아웃 ','페인트 '또는 그 중 하나를 포함한 복합 값이 포함되어있는 경우, 기타 값이있는 경우'열-카운트 '또는'열 넓이 '가 포함됩니다. 'auto'보다.
블록 서식 컨텍스트가 여백에 미치는 영향은 무엇입니까?
BFC의 주요 특징 중 하나는 마진 붕괴를 방지한다는 것입니다. CSS에서, 인접한 수직 마진은 때때로 단일 마진으로 붕괴 될 수 있으며, 이는 개별 마진의 최대 값입니다. 그러나 BFC에서는 첫 번째 자녀의 상단 마진과 마지막 자녀의 최저 마진은 BFC 자체의 마진과 붕괴되지 않습니다. 이는 요소의 간격을 제어하는 데 유용 할 수 있습니다.
블록 포맷 컨텍스트가 오버플로를 처리하는 방법은 무엇입니까?
요소의 컨텐츠가 상자를 넘치면 BFC는이 오버플로를 관리하는 데 도움이 될 수 있습니다. 요소가 새로운 BFC를 생성하면 쏟아지지 않고 오버플로가 BFC에 클립됩니다. 이것은 '오버 플로우'속성을 사용하여 'auto', 'scroll'또는 'hidden'과 같은 값을 사용하여 제어 할 수 있습니다. 블록 서식 컨텍스트는 '명확한'속성에 어떤 영향을 미칩니 까? CSS의 '명확한'속성은 부동 요소의 흐름을 제어하는 데 사용됩니다. BFC에서 '명확한'속성은 동일한 BFC 내의 요소에만 영향을 미칩니다. 이것은 'Clear'세트가있는 요소가 부모 BFC에서 플로트 아래로 움직이지 않으며 자체 BFC 내에서 플로트 만 부유합니다.
형식을 차단할 수 있습니까?
예, BFC는 CAN CAN입니다. 서로 안에 둥지를 맞 춥니 다. 각 BFC는 부모 및 형제 BFC와 독립적으로 작동합니다. 이것은 부유물, 마진 및 기타 레이아웃 기능이 각 BFC 내에 포함되어 있으며 다른 BFC의 요소에 영향을 미치지 않음을 의미합니다.
블록 포맷 컨텍스트는 Flex 및 그리드 레이아웃과 어떻게 상호 작용 하는가? CSS의 Flex 및 Grid 레이아웃은 자동으로 새로운 BFC를 생성합니다. 이것은 그들이 부유물을 함유하고 다른 BFC와 같은 방식으로 마진 붕괴 및 오버플로를 방지한다는 것을 의미합니다. 따라서 BFC를 이해하는 것은 플렉스 및 그리드 레이아웃의 동작을 이해하는 데 도움이 될 수 있습니다. 블록 서식 컨텍스트와 스택 컨텍스트 사이의 관계는 무엇입니까?
BFC와 스택 컨텍스트는 CSS의 두 가지 개별 개념입니다. 그러나 특정 상황에서 상호 작용할 수 있습니다. 예를 들어, '상대'또는 '절대'의 '위치'값과 '자동'이외의 'z-index'값을 가진 요소로 새로운 스택 컨텍스트를 만들 수 있습니다. 이것은 특히 부유물 및 겹침과 관련하여 BFC에서 요소의 렌더링에 영향을 줄 수 있습니다.
블록 서식 컨텍스트와 관련된 브라우저 호환성 문제가 있습니까?
대부분의 최신 브라우저는 BFC를 올바르게 일관되게 처리합니다. 그러나 이전 브라우저, 특히 인터넷 익스플로러에는 약간의 차이가있을 수 있습니다. 여러 브라우저에서 레이아웃을 테스트하여 예상대로 행동하는 것이 좋습니다.