clear:both

本文介绍了解决CSS中浮动元素导致的父级元素高度塌陷问题的方法。通过使用 clearfix 技巧,可以有效地避免这一问题,确保布局正确显示。文中详细解释了 clear:both 的作用原理,并给出了一种常用解决方案。
<div style="border:2px solid red;"> 
<div style="float:left;width:80px;height:80px;border:1px solid blue;">TEST DIV</div> 
<div style="clear:both;"></div> 
</div>  
效果:

没有clear:both效果:


这样看,应该就一目了然了:原来后边的Clear:both;其实就是利用清除浮动来把外层的div撑开,所以有时候,我们在将内部div都设置成浮动之后,就会发现,外层div的背景没有显示,原因就是外层的div没有撑开,太小,所以能看到的背景仅限于一条线。最好的方法是用clearfix。

.clearfix:after{content: "";display: block;clear: both;}
.clearfix{zoom:1;}

### CSS `clear: both` 属性详解 #### 定义与作用 `clear: both` 是一种常用的CSS属性值,主要用于处理HTML文档中的浮动元素。当页面内的子元素应用了`float`样式之后,可能会导致父容器的高度无法自动适应这些浮动子元素,进而影响布局效果[^1]。 #### 实际应用场景 假设存在一个包含两个子盒子的大盒子,在这两个子盒子上设置了不同的浮动方向(左侧和右侧),如果不加以控制,则可能导致大盒子内部结构错乱,例如背景颜色或边框未能正常包裹住所有内容。此时通过给定特定的选择器添加`clear: both`可以有效解决此类问题[^2]。 ```css /* 外层容器 */ .parent-container { border: 1px solid black; } /* 左侧漂浮的小盒子 */ .left-floated-box { float: left; width: 100px; height: 100px; background-color: lightblue; } /* 右侧漂浮的小盒子 */ .right-floated-box { float: right; width: 100px; height: 100px; background-color: lightcoral; } /* 清除浮动的影响 */ .clearfix::after { content: ""; display: table; clear: both; } ``` 上述代码片段展示了如何利用伪类`:after`配合`content`以及`display:table`来创建一个新的匿名表格单元格,并对其施加`clear:both`规则,从而达到清除浮动的效果[^3]。 #### 常见疑问解答 - **为什么会出现浮动塌陷?** 浮动元素会脱离标准流,使得其后的兄弟节点按照原本的位置排列而不考虑前面的浮动元素位置;而如果父级元素没有任何非浮动的内容撑起高度的话就会发生所谓的“塌陷”。 - **除了使用clearfix外还有其他方式吗?** 当然还可以采用额外标签法即在最后面增加一个空div并指定style="clear:both;",不过这种方法不够优雅也不推荐广泛运用因为增加了无意义标记。 - **现代浏览器支持情况怎么样呢?** 几乎所有的主流浏览器都完全兼容此特性,开发者无需担心跨平台适配性方面的问题。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值