浮动是什么?怎么清除浮动?

7 篇文章 0 订阅
6 篇文章 0 订阅

一、浮动是什么

  • 通过浮动可使一个元素向其父元素的左侧或右侧移动
    float:left;左侧移动,对齐
    float:right;右侧移动,对齐

    注:设置浮动之后会脱离文档流,不再在文档中占用位置

二、清除浮动 

1.为什么要清除浮动

清除浮动主要是为了解决,父元素因为子级元素浮动引起的内部高度为0的问题

注: 如果我们清除了浮动,父元素自动检测子盒子最高的高度,然后与其同高

2.怎么清除浮动

清除浮动常用的方法有四种:

  • 额外标签法
  • 父级添加overflow属性
  • 使用after伪元素清除浮动
  • 使用before和after双伪元素清除浮动

其中推荐使用after伪元素和使用before和after双伪元素清除浮动,代码较为简单,使用也方便。

额外标签法:

在最后一个浮动标签后,新加一个标签,给其设置clear:both;

优点:通俗易懂,方便

缺点:添加无意义标签,语义化差

注:clear:both:本质就是闭合浮动, 就是让父盒子闭合出口和入口,不让子盒子出来

父级添加overflow属性:

父元素添加overflow:hidden,通过触发BFC方式,实现清除浮动

优点:代码简洁

缺点:内容增多的时候容易造成不会自动换行导致内容被隐藏掉,无法显示要溢出的元素

使用after伪元素清除浮动:

.clearfix:after{/*伪元素是行内元素 正常浏览器清除浮动方法*/
        content: "";
        display: block;
        height: 0;
        clear:both;
        visibility: hidden;
    }
    .clearfix{
        *zoom: 1;/*ie6清除浮动的方式 *号只有IE6-IE7执行,其他浏览器不执行*/
}

在父元素中使用after伪元素清除浮动

优点:符合闭合浮动思想,结构语义化正确

缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

使用before和after双伪元素清除浮动 :

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

在父元素中使用使用before和after双伪元素清除浮动

优点:代码更简洁

缺点:用zoom:1触发hasLayout.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 浮动是由CSS中的布局元素之一的float属性引起的。当float属性设置为left或right时,元素会像漂浮在文本流中一样移动,并允许其他元素在其周围进行布局。但是,由于浮动元素的位置不在文本流中,它们可能与其他元素重叠,因此需要使用清除浮动技术来解决这个问题,例如使用clear属性或overflow属性来清除浮动。 ### 回答2: 浮动CSS 中一种特殊的布局方式,当给一个元素设置了浮动属性(float),该元素会脱离文档流并向左或右浮动到其父元素或祖先元素的边缘。浮动的主要作用是实现多列布局、图片环绕文字等效果。 浮动出现的原因是为了解决网页布局多列的问题,比如在同一行显示多张图片或者文章、图片并排。以前的网页布局方式通常是使用表格或者定位来实现,但这样做会导致 HTML 结构的臃肿,同时也不够灵活。因此,浮动的出现给网页布局带来了新的思路。 需要清除浮动的情况有以下几种: 1. 父元素没有设置高度,子元素设置了浮动属性,但是子元素高度超出了父元素,导致父元素高度为 0,这时就需要清除浮动; 2. 父元素没有设置高度,而且只是简单的使用 margin-top 的方式给下一个元素空出空间,这种情况需要清除浮动; 3. 当一个浮动元素后面有多个没有浮动属性的块级元素时,由于浮动元素的高度已经脱离文档流,会导致后面的块级元素直接跟在浮动元素后面,造成布局混乱,这时也需要清除浮动清除浮动的方式有以下几种: 1. 使用 clear 属性。在浮动元素的下一个块级元素中添加 clear 属性,该属性有两个取值:left、right、both,分别表示要清除浮动元素的左浮动、右浮动或两者都清除。例如:设置 clear: both; 表示清除浮动元素的左右浮动。 2. 使用伪元素。在浮动元素的父元素中设置 ::after 伪元素,并给该元素添加 clear 属性。例如:设置 .clearfix::after { content: ""; display: block; clear: both; },其中 .clearfix 是父元素的类名。 3. 父元素使用 overflow 属性。在浮动元素的父元素中设置 overflow: hidden; 或 overflow: auto; 即可清除浮动。 总之,清除浮动是为了保证页面布局的正确性和美观性,需要根据具体情况进行选择。 ### 回答3: 浮动出现的原因是因为在HTMLCSS中,元素是按照从左到右、从上到下的顺序排列的,但是当元素的宽度超过其父元素的宽度时,父元素就无法容纳子元素了。这时,如果使用浮动,子元素就可以脱离文档流而不被父元素挤出页面,变成浮动状态。浮动有左浮动、右浮动和双侧浮动等。 需要清除浮动的情况有以下几种: 1. 父元素没有设置高度或者宽度,子元素设置了浮动,那么父元素将没有高度及宽度,影响布局。 2. 相邻元素的排列会被浮动元素影响,导致布局错误。 3. 当浮动元素的高度大于相邻元素 高度时,相邻元素会被覆盖。 清除浮动的方式有以下几种: 1. 父元素设置overflow为hidden或者auto,这样就可以清除子元素的浮动。 2. 使用clear:both或clear:left或clear:right来清除浮动,可以把之前的浮动清除掉,但是这种方式要用在最后一个浮动元素后面,否则会影响布局。 3. 使用:after伪类来清除浮动,这种方式也要写在浮动元素的后面,类似于clear方式。 综上所述,清除浮动是为了避免因为浮动导致页面布局错乱等问题,在设计页面时应当注意尤其是在涉及到浮动的区域。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新小吉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值