高度塌陷的最终解决方案
作者:互联网
一、使用 clear 解决
1.clear 简介:
给一块元素设置 clear 属性后,将消除它上面元素因浮动对它造成的影响。(可选值:left,right,both)
For example:
<style> .box1{ width: 200px; height: 200px; background-color: #bfa; float: left; } .box2{ width: 200px; height: 200px; background-color: aqua; clear: both; } </style> </head> <body> <div class="box1">1</div> <div class="box2">2</div> </body> 此时,box2 因为有了clear 的 “净化” Buff,从而不会跑到 box1 正下方(看不见了),而是像 box1 没有浮动一样,呆在box1 底部。
2. 那如何使用 clear 的神奇特性来解决高度塌陷呢:
so easy,此时只要再在box1内创建一个 box3,使用 clear 消除box2 浮动的影响就好啦:
<style> .box1{ border: red 10px solid;} .box2{ width: 100px; height: 100px; background-color: #bfa; float: left; .box3{ clear: left; } </style> </head> <body> <div class="box1"> <div class="box2"></div> <div class="box3"></div> </div> 3. 对此方案的评价: 我们知道,html 解决结构,CSS解决样式,而我们添加了一个 div 标签,仅仅来解决表现的问题,应该不太合适吧。所以,有没有另一种方法,仅用CSS就可以解决呢?答案即为下面的方案。 二 、使用 after 伪类解决 根据方案一,我们应该找一个东西,它在 box1 的最后面,且能撑起box1,那除了设置 box3,我们还有另一种方式:after 伪类: <style> .box1{ border: red 10px solid;
} .box2{ width: 100px; height: 100px; background-color: #bfa; float: left; } .box1::after{ 注意:这里需要将其设置为 block,才能使用 clear display: block; content: ' ' ; clear: left; } </style> </head> <body> <div class="box1"> <div class="box2"></div> </div> 总结:两种方案其实都可以达到目的,根据个人喜好选一种咯 ~
标签:解决方案,clear,高度,塌陷,100px,background,box2,box1,left 来源: https://www.cnblogs.com/ccxandccx/p/16064602.html