CSS 레이아웃 - clear와 clearfix

clear 属性

clear 属性指定哪些元素可以浮动于被清除元素的旁边以及哪一侧。

clear 属性可设置以下值之一:

  • none - 允许两侧都有浮动元素。默认值
  • left - 左侧不允许浮动元素
  • right- 右侧不允许浮动元素
  • both - 左侧或右侧均不允许浮动元素
  • inherit - 元素继承其父级的 clear 值

使用 clear 属性的最常见用法是在元素上使用了 float 属性之后。

在清除浮动时,应该对清除与浮动进行匹配:如果某个元素浮动到左侧,则应清除左侧。您的浮动元素会继续浮动,但是被清除的元素将显示在其下方。

下例将清除向左的浮动。表示在(div 的)左侧不允许出现浮动元素:

예제

div {
  clear: left;
}

직접 시도해 보세요

clearfix Hack

如果一个元素比包含它的元素高,并且它是浮动的,它将“溢出”到其容器之外:

그런 다음 우리는 overflow: auto;를 추가하여 이 문제를 해결할 수 있습니다:

예제

.clearfix {
  overflow: auto;
}

직접 시도해 보세요

밖으로 마argin과 padding을 제어할 수 있다면(그렇지 않으면 스크롤 바를 볼 수 있습니다), overflow: auto clearfix는 잘 작동합니다. 그러나, 새로운 현대적인 clearfix 힌트 기술은 더 안전하게 사용되며, 다음 코드는 대부분의 웹사이트에 적용됩니다:

예제

.clearfix::after {
  content: "";
  clear: both;
  display: table;
}

직접 시도해 보세요

그 다음 장에서 배울 것입니다 ::after 위장 요소.