CSS Clearfix清除浮动
什么是Clearfix
CSS Clearfix 是一种技术,确保容器正确包含和包括其中的浮动元素。它通过向容器添加一个空元素来防止布局问题,该空元素清除左右两侧的浮动,使得容器可以扩展并保持预期的布局。
清除浮动有助于避免容器折叠、高度不一致、内容重叠、对齐不一致等问题。
本章将探讨清除浮动技术如何确保容器元素正确包含其浮动子元素。
CSS 清除浮动
如上所述,CSS清除浮动修复了期望元素中的溢出元素。可以针对以下三个属性进行操作:
- Overflow和Float属性
-
Height属性
-
Clear属性
下图展示了清除浮动布局的参考示意图:
如果一个元素比包含它的元素更高,并且它是浮动的,它将溢出到容器之外。我们可以通过设置overflow: auto;
解决这个问题。
CSS 溢出和浮动属性
让我们看一个例子,其中图像比其容器的高度更大,导致图像超出其容器的边界,并且可能破坏布局。
示例
解决这个溢出问题,我们可以将 overflow: auto; 属性设置给相应的元素,确保图像完全包含在容器内。
让我们看一个例子:
设置CSS高度属性
您也可以通过设置<div>
元素的高度与浮动图像的高度相似来实现清除浮动。
示例
让我们看一个例子:
设置CSS清除属性
CSS Clear 属性适用于浮动和非浮动元素。它设置了一个元素是否必须在其前面的浮动元素下面(清除)移动。
Clear属性可以有以下值之一:
- none: 是一个关键词,指示元素不会向下移动以清除之前的浮动元素。
-
left: 是一个关键词,指示元素会向下移动以清除左浮动。
-
right: 是一个关键词,指示元素会向下移动以清除右浮动。
-
both: 是一个关键词,指示元素会向下移动以清除左右浮动。
-
inline-start: 是一个关键词,指示元素会向下移动以清除其包含块开头的浮动,即LTR脚本上的左浮动和RTL脚本上的右浮动。
-
inline-end: 是一个关键词,指示元素会向下移动以清除其包含块尾部的浮动,即LTR脚本上的右浮动和RTL脚本上的左浮动。
将Clear设置为left
以下示例演示了使用 clear:left 属性的clearfix:
设置Clear为right
下面的示例演示了使用清除样式 防止浮动元素溢出(clear:right) 属性:
清除浮动效果
以下示例演示了如何使用clear:both属性实现清除浮动效果: