总结浮动元素float知识点。

浮动元素float

css布局的三种机制

分别是普通流(标准流)、浮动和定位

1.标准流

块级元素会独占一行从上向下排列。
行内元素会按照顺序排列,从左往右排碰到父级元素则会自动换行

2.浮动

让盒子从普通流中浮起来,主要让多个块级盒子一行显示

3.定位

将盒子定在浏览器的某个位置

浮动

为什么需要浮动?
它可以实现多个元素一行显示,而之前学的行内块(inline-block)也可以实现但会有空白间隙,也不可以实现空盒子左右对齐
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CFmTCO6X-1599651046012)(C:\Users\HP\AppData\Local\Temp\1599641844376.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AdoeGdf5-1599651046014)(C:\Users\HP\AppData\Local\Temp\1599641852703.png)]

什么是浮动?(float)
元素的浮动是指设置了浮动属性的元素会脱离标准普通流的控制,根据指定移动位置。
作用:1让多个盒子(div)水平排列成一行,功能强大使浮动称为布局的重要手段
2.可以实现盒子的左右对齐
3.浮动可以控制图片,实现文字环绕效果

语法:选择器{float:属性值}
none 元素不可浮动(默认)
left 元素向左浮动
right 元素向右浮动

特点:

float属性会让盒子漂浮在标准流上,可以盖住标准流的元素
float浮动把自己原来的位置给了下面标准流的盒子,不占原来位置
float浮动会改变元素的display属性,任何元素都可以浮动,浮动的元素会生成一个块级框。

float扩展
浮动元素与父元素的关系

子盒子和浮动参照父盒子对齐
不会和父盒子的边框重叠,也不会超过父盒子的内边距

浮动元素与兄弟盒子的关系

在一个父级盒子中,如果前一个是兄弟盒子是浮动的,那么会当前盒子与前一个盒子的顶部对齐,如果是普通流,那么当前盒子会显示在前一个兄弟盒子下方
浮动只会影响当前或者是后面的标准流盒子,不会影响前面的标准流。

为什么要清楚浮动呢

父级盒子很多情况下,不方便给予高度,但是盒子浮动不占位置,父级盒子的高度也就成了0,影响了下面的标准流盒子。准确地说不是清楚浮动而是清楚浮动对后面的产生的影响

清楚浮动的方法

clear属性用于清楚浮动
语法:选择器{clear:属性值}
left: 不允许左侧有浮动元素
right:不允许右侧有浮动元素
both:同时清楚左右两侧的浮动的影响

1.额外标签法
在浮动元素的尾部添加一个空的标签。

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

优:书写方便
缺:添加许多毫无意义的标签,结构化比较差劲

2.父级添加overflow属性
对父级CSS选择器加overflow:hidden样式,可以清除父级内使用float产生浮动。优点是可以很少CSS代码即可解决浮动产生。

.div{ width:400px;border:1px solid #F00;background:#FF0; overflow:hidden} 
.div-left,.div-right{width:180px;height:100px;border:1px solid #00F;background:#FFF} 
.div-left{ float:left} 
.div-right{ float:right} 

优点:代码简洁、
缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏。

3.使用after伪元素清楚浮动

.clearfix:after { content: ""; display: block; height: 0; clear: both;
visibility: hidden; }
.clearfix {*zoom: 1;} /* IE6、7 专有 */

优点: 符合闭合浮动思想 结构语义化正确
缺点: 由于IE6-7不支持:after,使用 zoom:1触发 hasLayout。

4.使用双伪元素清除

.clearfix:before,.clearfix:after {
content:"";
display:table;
}
.clearfix:after {
clear:both;
}
.clearfix {
*zoom:1;
}

优点:代码简洁
缺点:由于IE6-7不支持:after,使用 zoom:1触发 hasLayout。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值