BFC、浮动——8.5

BFC:

块级格式化上下文 

BFC特性的元素 可看做是 独立的容器,里面元素的情况 不会 影响到外面。

BFC 一些特性:

下边距 不重叠、可以清除浮动、可以阻止元素 被覆盖

触发BFC的 元素 仍然保持 流式特性,反映在布局上就是自动填满除去浮动内容以外的剩余空间。

触发BFC的方法:

body根元素

float(除了 none)

position(绝对、固定)

overflow: hidden、auto、scroll

display: inline-block、flex、tabel-cells

清除浮动:

<div class="topDiv">
    <div class="floatDiv">float left</div>
    <div class="textDiv">...</div>
</div>
<div class="bottomDiv">...</div>

.topDiv {
    width: 500px;
    border: 2px solid black;
}
.floatDiv {
    width: 100px;
    height: 100px;
    border: 2px dotted red;
    color: red;
    margin: 4px;
    float: left;
}
.bottomDiv {
    width: 500px;
    height: 100px;
    margin: 5px 0;
    border: 2px dotted black;
}
.textDiv {
    color: blue;
    border: 2px solid blue;
}

1.给需要清除浮动的元素添加clear样式:

.textDiv {
    color: blue;
    border: 2px solid blue;
 
    clear: left;
}

2.(这里 我想,是不是加个前提:包含浮动元素的  会更准确一点)父元素结束标签之前插入清除浮动的块级元素

<div class="topDiv">
    <div class="textDiv">...</div>
    <div class="floatDiv">float left</div>
    <div class="blankDiv"></div>
</div>
<div class="bottomDiv">...</div>


.blankDiv {
    clear: both; // or left
}

3.利用伪元素(clearfix)

(给父元素  增加一个类,这个类上的伪元素写 clear:both)

<div class="topDiv clearfix">
    <div class="textDiv">...</div>
    <div class="floatDiv">float left</div>
</div>
<div class="bottomDiv">...</div>

// 省略基本的样式
// 区别在这里
.clearfix:after {
    content: '.';
    height: 0;
    display: block;
    clear: both;
}

4. 利用(给父级 )overflow清除浮动

<div class="topDiv">
    <div class="floatDiv">float left</div>
    <div class="textDiv">...</div>
</div>
<div class="bottomDiv">...</div>


.topDiv {
    width: 500px;
    padding: 4px;
    border: 2px solid black;
 
    // 区别在这里
    overflow: auto;
}

IE版本低的,此时 要加上 zoom:1

这里的overflow值,还可以是除了"visible"之外的任何有效值,它们都能达到撑起父元素高度,清除浮动的目的。

scroll值会导致滚动条始终可见,hidden会使得超出边框部分不可见等。

BFC的高度是要包括浮动元素的,所以.topDiv的高度被撑起来,达到了清除浮动影响的目的。

overflow:溢出隐藏

  • white-space: nowrap; /*规定文本不进行换行*/

  • text-overflow: ellipsis; /*当对象内文本溢出时显示省略标记(...)*/

 

https://blog.csdn.net/u012207345/article/details/78279961

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值