美文网首页
清除浮动的方法

清除浮动的方法

作者: WANG_M | 来源:发表于2021-08-02 09:25 被阅读0次

浮动

盒子浮起来,不会占据原来的位置,若父盒子没有高度,则不会撑开父盒子,父盒 子高度为0。
浮动可以让多个块级元素在一行显示,且块与块之间没有空隙,但要给父盒子清除浮动,否则父盒子不会被撑开。

清除浮动的目的

为了解决父级元素因为子级浮动引起的内部高度为0的问题。

方法

一.额外标签法

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

.father{width: 200px;border: 1px solid red;}
.small{width: 100px;height: 100px;float: left;background-color: cornflowerblue;}
.big{width: 50px;height: 20px;float:left;background-color: chartreuse;}
.clear{clear: both;}
<div class="father">
       <div class="small"></div>
       <div class="big"></div>
       <div class="clear"></div>
 </div>

优点:通俗易懂,书写方便。(不推荐使用)
缺点:添加许多无意义的标签,结构化比较差。


给定标签清除浮动.png

二.父级添加overflow属性

可以通过触发BFC的方式,实现清楚浮动效果。父级添加overflow:hidden;

.father{width: 200px;border: 1px solid red;overflow: hidden;}
.small{width: 100px;height: 100px;float: left;background-color: cornflowerblue;}
.big{width: 50px;height: 20px;float:left;background-color: chartreuse;}

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

三.使用伪元素清除浮动(推荐)

.father::after{content: "";display: block;height: 0;clear:both;visibility: hidden;zoom: 1;}
.small{width: 100px;height: 100px;float: left;background-color: cornflowerblue;}
.big{width: 50px;height: 20px;float:left;background-color: chartreuse;}

优点:符合闭合浮动思想,结构语义化正确
缺点:ie6-7不支持伪元素:after,使用zoom:1触发hasLayout.

四.使用双伪元素清除浮动

.father::after,.father::before{content: " ";display: block;}
.father::after{clear: both;}
.father{*zoom: 1;}
.small{width: 100px;height: 100px;float: left;background-color: cornflowerblue;}
.big{width: 50px;height: 20px;float:left;background-color: chartreuse;}

优点:代码更简洁
缺点:用zoom:1触发hasLayout.

注意什么是haslayout

haslayout 是Windows Internet Explorer渲染引擎的一个内部组成部分。在Internet Explorer中,一个元素要么自己对自身的内容进行计算大小和组织,要么依赖于父元素来计算尺寸和组织内容。为了调节这两个不同的概念,渲染引擎采用了 hasLayout 的属性,属性值可以为true或false。当一个元素的 hasLayout 属性值为true时,我们说这个元素有一个布局(layout)

相关文章

  • (17.03.27)清除浮动

    清除浮动的方法: clear:both/left/right;清除浮动;两边/左边/右边

  • 前端面试积累2-清除浮动

    1.清除浮动的方法 方法一:对父级设置适合的CSS高度(不推荐) 方法二:clear:both 清除浮动 (常用)...

  • 完美clearfix

    clearfix 清除浮动分为两种: 清除自身浮动 清除父级浮动 这里不讲空标签的方法,因为空标签还要额外添加新的...

  • web前端入门到实战:css基础-float浮动

    float实现文字环绕图片效果: 清除浮动的方法一: 在浮动元素后面使用一个空元素 清除浮动的方法二: 给容器添加...

  • web前端入门到实战:css基础-float浮动

    float实现文字环绕图片效果: 清除浮动的方法一: 在浮动元素后面使用一个空元素 清除浮动的方法二: 给容器添加...

  • css问题收集 2018-07-19

    一、 父元素高度无法撑开 原因:1.子元素浮动 解决:清除浮动 清除浮动方法: .clearfix:after{c...

  • 关于清除浮动的方法

    刚学习了浮动,这里整理一下清除浮动的方法。 一、伪元素 伪元素清除浮动是伪元素的用途之一,这是清除浮动的一个相对比...

  • css清除浮动的三种方法

    摘要:css清除浮动float的三种方法总结,为什么要清除浮动?浮动会有哪些影响? 一.先看现象(display:...

  • css3复习

    清除浮动: 方法:clear清除浮动(添加空div法)在浮动元素下方添加空div,并给该元素写css样式: ...

  • 前端必须知道的CSS原理

    清除浮动原理 一说到清除浮动,作为前端开发者都不陌生,使用最普遍的方法就是下面这段代码了 清除浮动的关键: cle...

网友评论

      本文标题:清除浮动的方法

      本文链接:https://www.haomeiwen.com/subject/gjqvmltx.html