CSS样式之clear清除浮动

HTML元素的浮动以及清除浮动,对很多人来说都是感觉非常恶心的,所以今天就研究了下。研究透了,也就那样了。
如果不理解的话,做页面布局的时候,经常会遇到页面被撑不起来的现象,所以浮动这个知识点还是蛮重要的。
1.原始元素如下,外层div:container,内层:a左浮动,b右浮动
 
<body>
    <div class="container" style="border:1px solid green;">
        <div class="a" style="width:100px; height:100px; border:1px solid red; float:left;">这是一个长很长的页面</div>
        <div class="b" style="width:100px;height:200px; border:1px solid blue; float:right;">块元素</div>
    </div>
</body>

 效果图:  

分析:a元素左浮动,b元素右浮动,绿色边框的container元素高度没有被撑起来,成为一条横线,因为浮动的元素不被看作正常的文档流,所以高度相对于文档流的container来说无效。
2.在b元素下添加c元素,c元素样式clear:left
 
<body>
    <div class="container" style="border:1px solid green;">
        <div class="a" style="width:100px; height:100px; border:1px solid red; float:left;">这是一个长很长的页面</div>
        <div class="b" style="width:100px;height:200px; border:1px solid blue; float:right;">块元素</div>
        <div class="c" style="clear:left;"></div>
    </div>
</body>

 效果图:  

分析:绿色边框container元素有了左侧a元素的高度,因为clear:left清除了左侧a元素的浮动,相当于a元素恢复成文档流元素,所以其高度对于container有效,撑开了其高度。
3.将c元素样式改成clear:right
 
<body>
    <div class="container" style="border:1px solid green;">
        <div class="a" style="width:100px; height:100px; border:1px solid red; float:left;">这是一个长很长的页面</div>
        <div class="b" style="width:100px;height:200px; border:1px solid blue; float:right;">块元素</div>
        <div class="c" style="clear:right;"></div>
    </div>
</body>

 效果图:

分析:c元素的clear:right清除了右侧b元素的浮动,b元素就相当于文档型元素了,所以其高度有效,container被b元素撑开。
4.将c元素改成clear:both
 
<body>
    <div class="container" style="border:1px solid green;">
        <div class="a" style="width:100px; height:100px; border:1px solid red; float:left;">这是一个长很长的页面</div>
        <div class="b" style="width:100px;height:200px; border:1px solid blue; float:right;">块元素</div>
        <div class="c" style="clear:both;"></div>
    </div>
</body>

 效果:  

分析:因为c元素的clear:both,意思是清除左右浮动,所以a,b元素都成了文档型元素效果,所以其高度都有效,而b元素高,所以contariner被撑到b的高度。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值