如何解决浮动带来的影响

如何解决浮动带来的影响?

浮动:

选择器名{
float:
}

浮动可以用来干什么?

设置了浮动的框可以向左(left)或向右(right)移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。浮动并不存在于文档流之中

浮动会带来什么影响?

当我们给子元素设置了浮动float:left或float:right或两者,但是没有给父元素设置高度时,就会出现父元素高度塌陷问题。因为浮动元素脱离了文档流,所以包围图片和文本的父元素盒子不占据空间。所以父元素盒子就不会被所浮动的内容展开,从而出现了高度塌陷。

而因浮动的出现的高度塌陷会导致:
1、背景不能显示
由于浮动产生,如果对父级设置了(css background背景)css背景颜色或css背景图片,而父级不能被撑开,所以导致CSS背景不能显示。

2、边框不能撑开
如果父级设置了CSS边框属性(css border),由于子级里使用了float属性产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。

3、margin padding设置值不能正确显示
由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。

如何解决浮动带来的影响呢?

方法

1、给父级定义height。 缺点:扩展性不好

2、父级“overflow:hidden定位浮动开启”BFC布局 浮动/定位盒子的特点高宽都由内容撑开。 缺点:IE6会失效

3、空标签清除浮动。 缺点:违反了结构行为样式相分离的原则,生成无意义的空标签

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

4、伪元素清除浮动 clearfix(推荐使用)

/* 在需要清除浮动的父元素的选择器后面加一个clearfix伪元素选择器 */
clearfix::after{
    content:'';
    display:block;
    clear:both;
}

比如说div2这个子元素需要浮动,那么父元素则需要清除浮动:

<!-- 只需在其类选择器后用空格隔开,输入clearfix伪元素即可清除浮动 -->
<div class="clear clearfix">
	<div class="div2"><div>
</div>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值