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의 원리를 간략하게 설명합니다.
<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 그리드는 복잡하고 반응이 좋은 웹 레이아웃을 만드는 강력한 도구입니다. 디자인을 단순화하고 접근성을 향상 시키며 이전 방법보다 더 많은 제어를 제공합니다.

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

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

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

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

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

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

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


핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
