浮动float的规则和常见的问题

浮动float的规则和常见的问题

规则

一、规则一

1.脱离标准流

2.向左或者向右移动,直到自己的边界紧贴着包含块(一般是父元素)或其他浮动元素的边界为止

二、规则二

浮动元素不能与行内级内容层叠,行内级元素将会被浮动元素推出

比如,行内级元素,inline-block元素,块级元素的文字内容,块级元素的文字内容

*利用此特性,可以轻松实现文字环绕功能

三、规则三

行内级元素、inline-block元素浮动后,其顶部将与所在行的顶部对齐

四、规则四

如果元素是左(右)浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界

五、规则五

1.浮动元素之间不能层叠

2.如果一个元素浮动,另外一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动元素(左浮动找左浮动右浮动找右浮动)

3.如果水平方向剩余的空间不够显示浮动元素,浮动元素将向下移动,直到右充足的空间为止

六、规则六

浮动元素的顶端不能超过父元素的顶端,也不能超过之前所有的浮动元素的顶端

常见的问题

一、层叠现象

.box1{
    width: 100px;
    height: 50px;
    background: red;
    float: left;
}
.box2{
    width: 200px;
    height: 100px;
    background: blue;
}
 .out{
  width: 400px;
 /*不设置高度,内部的子元素会将父元素撑开,子元素设置浮动就不能撑开*/
  background: green;
}
<div class="out">
    <div class="box1">我是box1</div>
    <div class="box2"></div>
</div>

1.box1浮动,box2不浮动,box2中无文字内容产生的现象

在这里插入图片描述

原因:box1浮动脱离标准流,不占据父元素的宽度,所以box2自动往上移

2.box1浮动,box2不浮动,box2中有文字内容产生的现象

<div class="box2">我是box2</div>

在这里插入图片描述

原因:box1浮动脱离标准流,不占据父元素的宽度,所以box2自动往上移,又因为浮动元素不能与块级元素的文字内容,块级元素的文字内容将会被浮动元素推出(规则二

3.box1浮动,box2也浮动,box2中有文字内容产生的现象

.box2{
    float: left;
}

在这里插入图片描述

原因:box1,box2都浮动脱离标准流,1.浮动元素之间不能层叠,2.如果一个元素浮动,另外一个浮动元素已经在那个位置了,后浮动的元素将紧贴着前一个浮动元素(左浮动找左浮动右浮动找右浮动)(规则五

4.box1浮动,box2也浮动,但是父元素的宽度不够两个子元素之和时

.box2{
    width: 350px;
    float: left;
}

在这里插入图片描述

原因:如果水平方向剩余的空间不够显示浮动元素,浮动元素将向下移动,直到右充足的空间为止(规则五

5.box1浮动,box2也浮动,且box2后面还有一个box3,宽度为30px

在这里插入图片描述

原因:浮动元素的顶端不能超过父元素的顶端,也不能超过之前所有的浮动元素的顶端(规则六)即不能超过box2

6.文字环绕

6.1“出世;人们刚刚适应“,前面还有空隙

在这里插入图片描述

原因:box1设置的高度不是很合理,使得**“出世;人们刚刚适应“在排布时可以继续在右边显示,而下一行因为顶部被“出世;人们刚刚适应“**行占据了位置

7.对齐方式

.box1{
    width: 100px;
    height: 50px;
    background: red;
    display: inline-block;/*基线对齐,内联块设置了高度,基线效果更明显*/
}
.out{
    width: 400px;
    height: 400px;
    background: green;
}
span{
    float: left;
    background-color: blue;
}
strong{
    background-color: #00c8fa;
}
<div class="out">
    <span>电商或许是最适</span>
    <div class="box1"></div>
    <strong>宜诠释不确定性</strong>
</div>

电商或许是最适宜诠释不确定性并没有对齐

在这里插入图片描述

原因:span浮动脱离了标准流,所以触发BFC结界,在顶部显示

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值