为了账号安全,请及时绑定邮箱和手机立即绑定

谈浮动

标签:
Html/CSS

最近又重新温习了一下浮动的相关知识。在此总结一下,也希望大家能在其中有所收获。

首先我们应该明确的是:什么是浮动?

简单的来说,浮动就是脱离的正常的文档流,向左或者向右偏移,从而后面的元素根据空间大小,自动填充。

浮动的优点:方便布局

浮动的缺点:浮动之后的元素相当于漂浮在了文档流的上方,会导致父元素高度塌陷。

再次顺带介绍一下BFC(Block Formatting Context)的概念,BFC:块级格式化上下文,用于对块级元素的排版,默认情况下只有body一个块级元素,但是如果一个块级元素设置了float:left |right , overflow:hidden | auto , position:absolute | fixed ,display:inline-block | table-cell | table-caption那么这个块级元素就会成为一个独立的块级元素。通俗来说就是,块级元素变成一个独立的容器,内外的元素不会再相互影响。

BFC有以下特性:

1.不会被其他的浮动元素覆盖

2.可以包含浮动元素,且自身高度不会塌陷

那么什么是清除浮动?或者说清除浮动是为了解决什么问题?

1.解决元素相互覆盖的问题

2.解决文字环绕问题

3.解决块级元素的高度塌陷的问题

那么如何清除浮动?


1.对清除浮动的元素css设置clear属性

<div style="width:100px; height:100px; background-color:#ccc; float:right; ">3</div>

<div style="width:100px; height:100px; background-color:#ccc; float:right; clear:right">4</div>


webp

2.添加空标签(包括两种情况)

第一种情况:直接在待清楚浮动的元素前面添加空元素

<div style="clear:both"><div> 

或者

<br clear="all">

第二种情况:在浮动元素的父元素的css样式中添加:after伪类;代码如下,

css 样式:

.clearfix:after {

     content:"";

     height:0;

     display:block;

     visibiltity:hidden;

     clear:both;

html元素:

<div class="clearfix">

         <div id="child" style="width:100px; height:100px; float:right">1</div>

</div>

以上的实例会在id为child的div后面添加一个不显示的高度为0的块元素,从而实现清楚浮动的目的

3.对父元素添加css属性

在父元素的css样式中添加: 

overflow:hidden | auto , float:left | right ,position:absolute | fixed ,display:inline-block | table-cell | table-caption  但是这些方法或多或少会有局限性,不建议使用。

以上,欢迎指正!



作者:IMCapricorn
链接:https://www.jianshu.com/p/5dbeb9ff9306


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消