其他分享
首页 > 其他分享> > 高度塌陷的最终解决方案

高度塌陷的最终解决方案

作者:互联网

一、使用 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