찾다
웹 프론트엔드CSS 튜토리얼부동 소수점을 지우는 가장 포괄적인 CSS Clearfix 방법

Clearfix는 CSS에서 부동 소수점을 지우는 데 자주 사용됩니다. 저자는 비교를 위해 Clearfix를 사용하는 여러 가지 방법을 나열합니다. 필요한 친구는 부동 소수점을 지우는 CSS Clearfix 메서드를 참조할 수 있습니다.(css float를 클리어해야 하는 이유는 무엇인가요?

1. Baidu에서 "cssclear float"를 검색하면 언급되는 내용이 많이 나옵니다. ".clearfix는 상자의 내부 플로트를 지울 때 사용할 수 있습니다."

.clearfix:after {
  content: " ";
  display: block;
  clear: both;
  height: 0;
}
.clearfix {
  zoom: 1;
}<p class="clearfix">
  <p class="floated"></p>
</p>
위 코드는 .clearfix의 정의와 적용입니다. .clearfix의 원리를 간략하게 설명합니다.

1 IE6 및 7에서 Zoom: 1은 hasLayout을 트리거합니다. 요소 내부 플로트를 닫습니다.

2. 표준 브라우저에서 .clearfix:after 가상 클래스는 .clearfix에 적용된 요소 뒤에 명확한 블록 수준 요소를 삽입하여 부동 소수점을 지웁니다.

<p>
  <p class="floated"></p>
</p>
<p style="clear: both"></p>

둘째, .clearfix의 단점

위 코드에서 볼 수 있듯이 IE6, 7을 제외하고 표준 브라우저에는 .clearfix가 삽입됩니다. Clear:both 요소가 추가되어 불필요한 수레를 지울 가능성이 높습니다. 설명:

<!DOCTYPE html>
<html>
<head>
  <title>Demo</title>
  <style type="text/css">
    html, body { padding: 0; margin: 0; }
    ul { margin: 0; padding: 0; } 
  
    .clearfix:after {
      content: " ";
      display: block;
      clear: both;
      height: 0;
    }
    .clearfix {
      zoom: 1;
    }
  
    .left-col {
      background: red;      float: left;
      width: 100px;
      height: 300px;
    }
    .right-col {
      margin-left: 100px;
    }
    .menu {
      border: 1px solid #000;
    }
    .menu li {      float: left;
      display: block;
      padding: 0 1em;
      margin: 0 1em 0 0;
      background: #ccc;
    }
    .placeholder {
      background: yellow;
      height: 400px;
    }  </style>
</head>
<body>
  <p class="left-col">
  </p>
  <p class="right-col">
    <ul class="menu">
      <li>Menu Item</li>
      <li>Menu Item</li>
      <li>Menu Item</li>
      <li>Menu Item</li>
      <li>Menu Item</li>
      <li>Menu Item</li>
    </ul>
    <p class="placeholder"></p>
  </p>
</body>
</html>
위 코드는 2열 레이아웃 페이지를 구성합니다. .menu 메뉴에는 테두리가 있지만 .menu의 li 요소는 왼쪽에 떠 있기 때문에 .menu에는 높이가 없으므로 .clearfix를 사용하여 .menu 내부에 떠 있는 콘텐츠를 지울 수 있습니다. 코드는 다음과 같습니다:
<ul class="menu clearfix">
  <li>Menu Item</li>
  <li>Menu Item</li>
  <li>Menu Item</li>
  <li>Menu Item</li>
  <li>Menu Item</li>
  <li>Menu Item</li>
</ul>

그러나 .clearfix를 적용한 후에는 표준 브라우저에서 페이지가 매우 지저분해집니다. 이는 .clearfix:after가 부동 .left-col도 지우기 때문입니다.

3. .clearfix 재구성

위 오류가 발생한 후 .clearfix:after 외에 다른 방법이 있는지 분석합니다. 대답은 '예'입니다. 블록 형식 지정 컨텍스트 문서에서는 블록 형식 지정 컨텍스트를 구성하는 요소가 내부 요소의 부동을 지울 수 있다고 언급되어 있습니다. 그런 다음 .clearfix를 블록 형식 지정 컨텍스트로 만드세요. 블록 형식 지정 컨텍스트를 구성하는 방법에는 여러 가지가 있습니다.

float 값은 없음이 아닙니다.

  • overflow 값은 보이지 않습니다.

  • display 값은 table-cell, table-caption, inline-block 중 하나입니다.

  • 위치 값은 상대적이거나 정적이지 않습니다.

  • 분명히 float와 position은 우리 요구에 적합하지 않습니다. 오버플로 또는 표시 중 하나만 선택할 수 있습니다. .clearfix 및 .menu가 적용된 메뉴는 다중 레벨일 가능성이 높기 때문에 Overflow: Hidden 또는 Overflow: auto는 요구 사항을 충족하지 않습니다(드롭다운 메뉴를 숨기거나 스크롤 막대를 표시함). 디스플레이만 사용하세요. 조치를 취하세요.

    .clearfix의 표시 값을 table-cell, table-caption, inline-block 중 하나로 설정할 수 있지만, display: inline-block은 추가 공백을 생성하므로 역시 제외됩니다. 남은 것은 table-cell과 table-caption뿐입니다. display: table은 익명 상자 중 하나를 생성하기 때문에 .clearfix를 블록 서식 컨텍스트로 만들 수 있습니다. (표시 값은 table-cell입니다.) 블록 서식 지정 컨텍스트를 형성합니다. 이러한 방식으로 새로운 .clearfix는 내부 요소의 부동 소수점을 닫습니다. 아래는 리팩토링 후의 .clearfix입니다.
  • .clearfix {
      zoom: 1;
      display: table;
      width: 100%;
    }

넷째, 요약

IE6 및 7에서는 hasLayout을 트리거하는 요소가 내부 부동 소수점을 지울 수 있는 한입니다. 표준 브라우저에서 내부 부동 요소를 지우는 방법은 여러 가지가 있습니다. .clearfix:after를 제외하고 다른 방법은 목적을 달성하기 위해 새로운 블록 형식 지정 컨텍스트를 생성하는 것 이상입니다. 어떤 조건에서 어떤 방법을 쓸 수 있다면 이 정도면 충분하다고 생각합니다...

Css의 cleanfix float 클리어 방법 관련 글은 php 중국어 홈페이지를 참고해주세요

관련 기사:

clearfix에 대한 심층 분석

CSS에서 Clearfix 사용에 대한 심층적 이해

CSS에서 ClearFix 및 Clear 사용법에 대한 간략한 논의

Clearfix 클리어 플로팅 방식에 대한 CSS

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
CSS 그리드는 무엇입니까?CSS 그리드는 무엇입니까?Apr 30, 2025 pm 03:21 PM

CSS 그리드는 복잡하고 반응이 좋은 웹 레이아웃을 만드는 강력한 도구입니다. 디자인을 단순화하고 접근성을 향상 시키며 이전 방법보다 더 많은 제어를 제공합니다.

CSS Flexbox 란 무엇입니까?CSS Flexbox 란 무엇입니까?Apr 30, 2025 pm 03:20 PM

기사는 반응 형 설계에서 공간의 효율적인 정렬 및 분포를위한 레이아웃 방법 인 CSS Flexbox에 대해 설명합니다. Flexbox 사용을 설명하고 CSS 그리드와 비교하고 브라우저 지원 세부 사항을 설명합니다.

CSS를 사용하여 웹 사이트를 반응하게 만드는 방법은 무엇입니까?CSS를 사용하여 웹 사이트를 반응하게 만드는 방법은 무엇입니까?Apr 30, 2025 pm 03:19 PM

이 기사는 Viewport Meta 태그, 유연한 그리드, 유체 미디어, 미디어 쿼리 및 상대 장치를 포함하여 CSS를 사용하여 반응 형 웹 사이트를 만드는 기술에 대해 설명합니다. 또한 CSS 그리드 및 Flexbox를 함께 사용하여 CSS 프레임 워크를 권장합니다.

CSS 박스 크기 부동산은 무엇을합니까?CSS 박스 크기 부동산은 무엇을합니까?Apr 30, 2025 pm 03:18 PM

이 기사는 요소 치수 계산 방법을 제어하는 ​​CSS 박스 크기 속성에 대해 설명합니다. Content-Box, Border-Box 및 Padding-Box와 같은 값과 레이아웃 설계 및 형태 정렬에 미치는 영향을 설명합니다.

CSS를 사용하여 어떻게 애니메이션 할 수 있습니까?CSS를 사용하여 어떻게 애니메이션 할 수 있습니까?Apr 30, 2025 pm 03:17 PM

기사는 CSS, 주요 특성 및 JavaScript와 결합 된 애니메이션 작성에 대해 논의합니다. 주요 문제는 브라우저 호환성입니다.

CSS를 사용하여 프로젝트에 3D 변환을 추가 할 수 있습니까?CSS를 사용하여 프로젝트에 3D 변환을 추가 할 수 있습니까?Apr 30, 2025 pm 03:16 PM

기사는 3D 변환, 주요 속성, 브라우저 호환성 및 웹 프로젝트에 대한 성능 고려 사항에 대한 CSS 사용에 대해 논의합니다. (문자 수 : 159)

CSS에 기울기를 추가 할 수있는 방법은 무엇입니까?CSS에 기울기를 추가 할 수있는 방법은 무엇입니까?Apr 30, 2025 pm 03:15 PM

이 기사는 CSS 그라디언트 (선형, 방사형, 반복)를 사용하여 웹 사이트 비주얼을 향상시키고 깊이, 초점 및 현대적인 미학을 추가합니다.

CSS의 의사 요소는 무엇입니까?CSS의 의사 요소는 무엇입니까?Apr 30, 2025 pm 03:14 PM

기사는 CSS의 의사 요소, HTML 스타일을 향상시키는 데 사용 및 의사 급의 차이점에 대해 설명합니다. 실제 사례를 제공합니다.

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 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경