CSS实现清除浮动问题的

首先,我们要思考一个问题:为什么要清除浮动呢?在我做小demo的时候,碰到一个问题,当子元素浮动的时候,父元素的背景颜色消失了?可以说,以当时我的菜鸟水平,是不知道为什么父元素的背景颜色为什么会不见,我明明设置了背景颜色的,难道颜色格式不对?或者是浏览器不兼容,是个css hack????????所有的猜测都指向了背景颜色,都是背景颜色的错。为什么要清除浮动?在坑中不断挣扎的我,得到了答案,不是背景颜色的错。而是它的子元素。当子元素浮动的时候会导致父元素的height变为0,这是为什么呢?   原因是父元素没有设置高度,原本的高度,是由子元素撑起来的。当子元素浮动的时候,子元素是脱离文档流的,而父元素还是文档流里,这个时候,父元素的content没有东西,所以父元素的height就变为原本没有设置的高度(为0)。如果父元素的content中有非float的元素,则以这些元素的最高的高度撑起父元素的高度。如图所示:HTML代码                        在没有浮动时的情况: HTML代码        //此时大图片左浮动,及下图的效果                        在浮动时的情况:(大图片float:left;小图片不变)   可以从上面的分析得出。子元素浮动,会导致父元素出现“高度塌陷”。如何清除浮动?清除浮动的方式有很多种,目前看到有八种左右的清除浮动的方式。但真正用到项目里,最常见的方式有两种:     1.添加伪类:after;     2.触发BFC;         1.添加伪类:after  给父元素添加一个类clearfix,并给这个类设置伪类:after。        Document            .clearfix:after {            content: ” “;            display: block;            clear: both;        }        .a {            float: left;        }                                        看吧!这就是第一种清除浮动的方法。也是广受欢迎的一种清除浮动个方式。 2.触发BFC1)什么是BFC?   BFC(Block Formatting Context)是Web页面中盒模型布局的CSS渲染模式。它的定位体系属于常规文档流。摘自W3C:  浮动,绝对定位元素,inline-blocks, table-cells, table-captions,和overflow的值不为visible的元素,(除了这个值已经被传到了视口的时候)将创建一个新的块级格式化上下文。  上面的引述几乎总结了一个BFC是怎样形成的。但是让我们以另一种方式来重新定义以便能更好的去理解。一个BFC是一个HTML盒子并且至少满足下列条件中的任何一个:float的值不为noneposition的值不为static或者relativedisplay的值为 table-cell, table-caption, inline-block, flex, 或者 inline-flex中的其中一个overflow的值不为visible2)   如何用BFC清除浮动  粗暴的总结就是让浮动块包含在同一个BFC中加同时(也可以理解为包含块加属性overflow:hidden)。        Document            .container {            overflow: hidden;        }        .a {            float: left;        }                                          有利也有弊,下面简单指出BFC的缺点: – display:table可能会产生一些问题 – overflow:scroll可能会显示不必要的滚动条 – float:left将会把元素置于容器的左边,其他元素环绕着它 – overflow:hidden将会剪切掉溢出的元素

以上就是CSS实现清除浮动问题的的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2897896.html

(0)
上一篇 2025年3月10日 23:29:15
下一篇 2025年3月3日 02:35:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 什么是浮动?css清除浮动的原理

    这篇文章给大家介绍的内容是关于什么是浮动?css清除浮动的原理(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 最近学习css发现了高度塌陷时候要清除浮动,为了理解清楚浮动原理,网上找了不少资料,发现都写的不是很清…

    编程技术 2025年3月10日
    200
  • CSS如何清除浮动?css清除浮动的五种方法总结

    这篇文章给大家介绍的内容是关于css如何清除浮动?css清除浮动的五种方法总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 方法一(使用空标签带clear属性) 标签可以是div   br hr 在浮动元素后使用一个空元…

    编程技术 2025年3月10日
    200
  • CSS中清除浮动的最好用的方法之一的详细介绍(附代码)

    这篇文章给大家分享的内容是关于CSS中清除浮动的最好用的方法之一的详细介绍(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 我们写网页常常为浮动带来的影响而烦恼,因为子元素浮动导致父元素没有高,从而网页错乱,达不到…

    编程技术 2025年3月10日
    200
  • 图文详解CSS clear:both清除浮动的运用

    当我们用div+css进行页面布局时,经常会出现一些意想不到的结果,比如画面排版乱了,没有呈现我们想要的样式,又或者设置一些属性不起作用,这些诡异的事情都非常让人头疼。其实,这些都出乎意料的事情是由浮动float引起的,它也是有解决办法的。…

    2025年3月10日
    200
  • css清除浮动float的三种方法是什么

    css清除浮动float的三种方法:1、在父元素结尾添加一个具体“clear: both;”样式的新元素。2、给父级div元素添加“overflow:auto;”样式;3、在父级样式添加伪元素“:after”或者“:before”。 本教程…

    2025年3月10日 编程技术
    200

发表回复

登录后才能评论