숨겨진 Demystified : clearfix +는 오버플로를 리로디드
년 | 6시 27분에서 2010년 9월 27일 티에리 Koblentz하여 오전 CSS 101 | 12 코멘트 clearfix 및 overflow : hidden 구조적 마크업없이 수레를 취소하고 두 가장 인기있는 기술이있을 수 있습니다.
이 짧은 기사는 첫 번째 방법을 강화하고 두 번째의 실제 의미를 몇 가지 빛을 흘리기에 관한 것입니다.
clearfix
에서 당신이 clearfix에 대해 알고 모든 잘못 이 방법은 브라우저에서 생성 문제를 설명하고 저자로 우리가 아직 무너지고 여백 처리 있지만 나는 단지 플로트 (예 : 모달 창) 옆에되지 않은 요소에 clearfix를 사용하는 것이 좋습니다 . 이 데모 페이지는 문제를 보여줍니다.
의 여백 - 붕괴 동작 첫 두 상자 는 상자 (딱 들어맞는있는 내부의 아래쪽 마진을 유지 생성된 (비어 있지 않은) 콘텐츠는 것을 보여주는 사양에 따라 ).
그럼, 우리 둘 다 의사 요소를 사용하여 콘텐츠를 생성하여 원래의 방법을 향상시킬 수 브라우저에서 동일한 상자 레이아웃 만드는 방법 :before 하고 :after :
. clearfix : 전에, . clearfix : {후 내용 :; "." 디스플레이 : 블록; 높이 : 0; 오버플로우 : 숨겨진; } . clearfix : 후 {취소 : 모두;} . clearfix {줌 : 1;} / * IE <8 * /
단순히 다른 방법을 통해 무너지고 여백과 관련된 이미 패치가 문제가있을 수 있으므로,하지만, 기존의 프로젝트에서 이러한 새와 clearfix 규칙을 교체하지 마십시오.
overflow
삭제에 대한 대부분의 논의에서 수레 overflow:hidden 방법이 와서, 그것은 항상 "에 의해 격추 수 있습니다 당신은 사업부 내부 절대 위치 요소를 배치하는 경우, 이러한 요소를 잘라됩니다 . " .하지만, 이것은 필요한 사실이 아니다 overflow:hidden 항상 상대적으로 위치가 지정된 요소를 클립되지만 항상 절대적 위치 사람을 숨기려하지 않습니다. 이 모든 포함하는 블록에 의존되기 때문입니다 :
"포함하는 블록"의 10.1 정의 :
4. 요소는 '위치 : 절대'를있다면, 포함하는 블록과 가장 가까운 조상에 의해 설립 '위치' '상대적'또는 '고정', '절대'의 ...
이것은 절대적 위치 요소와 스타일의 색다른 게재됩니다 overflow:hidden 자신이 포함된 블록 상자 자체 또는 밝혔다 상자 안에 요소입니다 않는 한.
당신이 확인할 수 있습니다 이 데모 페이지를 동네가 어떻게 돌아가는지는 잘 볼 수 있습니다.
더 나은 대안
당신이 수레를 포함하는 요소에 너비를 적용할 수있다면, 당신의 최선의 선택은 사용하는 것입니다 :
디스플레이 : 인라인 블록; 폭 : <any 명시적 value>;
추가 읽기
- 포함된 수레, clearfix 기법으로 알려진 순수 CSS로 보호하려는 수레
- 구조적인 마크업없이 수레를 삭제하는 방법
- 새로운 Clearfix 방법
- "포함하는 블록"의 정의 10.1
공유하고 확장 : del.icio.us와 스크랩 | 디그 그것! | 레딧!



숨겨진 demystification : 오버플로 주셔서 감사합니다. 내 기본 "clearfix '솔루션으로 숨겨져 있지만, 가끔 때문에 절대적으로 상자 밖에서 위치 요소 (또는 내가가 있다고 생각) 다른 한쪽을 골라야 : 나는 오버플로를 사용하는 경향이 있습니다. 지금은 그것이 내가 생각했던 것보다 subtler 알아.
표시 : 표도 작동하지만 다음 위치 사용할 수 없습니다 : 그 요소에 친척.
에 의해 코멘트 플로랑 V. - 2010년 9월 27일 #
이것은 좋은 지점입니다. 테이블 표시 : 테이블 셀이 제한 인식하지 못합니다 나는 디스플레이를 사용하는 많은 사람들이 확신 해요.
의견을 보내주셔서 감사합니다.
에 의해 코멘트 티에리 Koblentz - 2010년 9월 28일 #
IE8 IE6, IE7, 귀하의 '더 나은 대안'작품을합니까?
에 의해 코멘트 호르헤 Epuñan - 2010년 9월 30일 #
@ 호르헤
네, 그것 않으며, 실제로는 IE 5.0에서 작동 +
논리는 "인라인 블록"IE 8과 다른 현대적인 브라우저에서 블록 서식 컨텍스트를 생성하는 동안 즉, 5,6,7의 명시적인 폭이 hasLayout을 실행한다는 것입니다.
너비 상자 "인라인 블록"수축 포장과 같은 스타일의 이후 상황이 있지만 전반적으로 작동하도록하는 열쇠입니다.
기사 말하는 이유는 : "당신이 수레를 포함하는 요소에 너비를 적용할 수있다면 ..."
에 의해 코멘트 티에리 Koblentz - 2010년 10월 1일 #
디스플레이를 사용을 가지고 놀았 : 인라인 블록 및 너비를하지만, 어떤 버그를 발견했습니다.
divs 사이에 공백이있다면 그것은 divs 사이에 공백으로 보여주 것입니다.
수직 정렬은 지옥이다. @ 티에리 어떻게 그것을 사용합니까?
여기 내 시도 살펴보세요 http://jsfiddle.net/UZr7L/을
에 의해 코멘트 마이클 Lajlev - 2010년 10월 10일 #
@ 마이클
나는 형제 자매 (적어도 레이아웃) 요소에 사용할 수 있지만, 당신이 겪고있는 일은 버그되지 않습니다하지 않습니다.
YUI 3 그리드는 문자 간격과 단어 간격 (음수 값)를 사용하여이 다룹니다.
에 의해 코멘트 티에리 Koblentz - 2010년 10월 11일 #
다음 부패하기 쉬운 프레스이 댓글을 내가 그래서 위의 clearfix 규칙을이 업데이 트에 오타가 있었 것으로 나타났습니다.
숨겨진 아니라 가시 : 숨겨진 다른 방법과는 달리, 그것은 오버플로를 사용합니다.
덕분에 대런 문제를 제기에 대해 :)
에 의해 코멘트 티에리 Koblentz - 2010년 10월 22일 #
분명히, 사용
content: "020"clearfix에 대한 것은 훨씬unwiredbrain에 의해 코멘트 - 2010년 10월 28일 #
아야! 워드 프레스는 내 코드를 씹어 댔다고!
정말이지
content: " backslash zero zero two zero "unwiredbrain에 의해 코멘트 - 2010년 10월 28일 #
@ unwiredbrain
당신은 "가시 : 숨겨진 '를 사용하는 기술을 언급하지만, 내가 사용하고하는 것은'오버플로 : 숨겨진"입니다 그래서 아무런 차이를해서는 안됩니다.
여러분의 의견을 보내주셔서 감사합니다
에 의해 코멘트 티에리 Koblentz - 2010년 10월 28일 #
오. 나는 두 혼란이 있어야합니다. 그것에 대해 죄송합니다.
unwiredbrain에 의해 코멘트 - 2010년 10월 28일 #
건방진. 나는 HTML5의 상용구의 일환으로 지금은 모든 프로젝트에서이 작업을 사용합니다. 나는 상용구를 모두 사용하지 않지만. clearfix 항상 유용합니다. 감사합니다!
에 의해 코멘트 YJ - 2011년 5월 10일 #