使用CSS清除浮动的方法详解

这篇文章主要介绍了使用css清除浮动的方法详解,值得注意的是并不是每次单纯把浮动清除掉就可以解决相关问题,文中最后谈到的闭合浮动的方案也非常值得一试,需要的朋友可以参考下

清除浮动方法
方法一:使用带clear属性的空元素

在浮动元素后使用一个空元素如

,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用


来进行清理。

.news {     background-color: gray;     border: solid 1px black;     }   .news img {     float: left;     }   .news p {     float: rightright;     }   .clear {     clear: both;     }

@@##@@

some text

立即学习“前端免费学习笔记(深入)”;

优点:简单,代码少,浏览器兼容性好。
缺点:需要添加大量无语义的html元素,代码不够优雅,后期不容易维护。

方法二:使用CSS的overflow属性

给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。在添加overflow属性后,浮动元素又回到了容器层,把容器高度撑起,达到了清理浮动的效果。

.news {     background-color: gray;     border: solid 1px black;     overflow: hidden;     *zoom: 1;     }   .news img {     float: left;     }   .news p {     float: rightright;     }

@@##@@

some text

立即学习“前端免费学习笔记(深入)”;

方法三:给浮动的元素的容器添加浮动

给浮动元素的容器也添加上浮动属性即可清除内部浮动,但是这样会使其整体浮动,影响布局,不推荐使用。

方法四:使用邻接元素处理

什么都不做,给浮动元素后面的元素添加clear属性。

.news {     background-color: gray;     border: solid 1px black;     }   .news img {     float: left;     }   .news p {     float: rightright;     }   .content{     clear:both;     }

@@##@@

some text

***

立即学习“前端免费学习笔记(深入)”;

注意这里的p.content有内容。

方法五:使用CSS的:after伪元素

结合 :after 伪元素(注意这不是伪类,而是伪元素,代表一个元素之后最近的元素)和 IEhack ,可以完美兼容当前主流的各大浏览器,这里的 IEhack 指的是触发 hasLayout。
给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。

.news {     background-color: gray;     border: solid 1px black;     }   .news img {     float: left;     }   .news p {     float: rightright;     }   .clearfix:after{     content: "020";      display: block;      height: 0;      clear: both;      visibility: hidden;       }   .clearfix {     /* 触发 hasLayout */  zoom: 1;      }

@@##@@

some text

立即学习“前端免费学习笔记(深入)”;

通过CSS伪元素在容器的内部元素最后添加了一个看不见的空格”020″或点”.”,并且赋予clear属性来清除浮动。需要注意的是为了IE6和IE7浏览器,要给clearfix这个class添加一条zoom:1;触发haslayout。

总结
通过上面的例子,我们不难发现清除浮动的方法可以分成两类:

一是利用 clear 属性,包括在浮动元素末尾添加一个带有 clear: both 属性的空 p 来闭合元素,其实利用 :after 伪元素的方法也是在元素末尾添加一个内容为一个点并带有 clear: both 属性的元素实现的。

二是触发浮动元素父元素的 BFC (Block Formatting Contexts, 块级格式化上下文),使到该父元素可以包含浮动元素,关于这一点。

在网页主要布局时使用:after伪元素方法并作为主要清理浮动方式;在小模块如ul里使用overflow:hidden;(留意可能产生的隐藏溢出元素问题);如果本身就是浮动元素则可自动清除内部浮动,无需格外处理;正文中使用邻接元素清理之前的浮动。

最后可以使用相对完美的:after伪元素方法清理浮动,文档结构更加清晰。

后记:清除浮动 or 闭合浮动?
在网页布局中我们会经常用到浮动,有了它我们可以更容易地实现我们想要的效果,但浮动过后往往会留下一些隐患。这时,我们通常会做一件事清除浮动,但清除浮动也会经常留下隐患,如下代码:

                    Document                  #main{               border: 1px solid #000;           }           #left{               float: left;               width: 100px;               height: 100px;               background-color: #f00;           }           #right{               float: left;               width: 100px;               height: 100px;               background-color: #0f0;           }                    

立即学习“前端免费学习笔记(深入)”;

效果图如下:
使用CSS清除浮动的方法详解

虽然foot中使用clear:both清除浮动,但是main的高度无法自适应子元素的高度,导致塌陷(箭头所指)。

下面介绍闭合浮动,顾名思义,就是使浮动元素闭合,清除浮动带来的影响。目前较常用的清除浮动的方法为clearfix。具体就是,不用在foot中添加clear:both,插入如下一行css:

#main:after{               content: '.';               height: 0;               visibility: hidden;               /*display: block;*/            clear:both;           }

立即学习“前端免费学习笔记(深入)”;

使用CSS清除浮动的方法详解使用CSS清除浮动的方法详解使用CSS清除浮动的方法详解使用CSS清除浮动的方法详解

以上就是使用CSS清除浮动的方法详解的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 21:11:55
下一篇 2025年12月20日 01:50:22

相关推荐

  • 必看的css权威指南笔记

    下面小编就为大家带来一篇必看的css权威指南笔记。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 第1章 css和文档 1,元素:替换元素(img input),非替换元素(大多数span)。 2,link:rel(代表关系:stylesheet,候选样式表:alter…

    好文分享 2025年12月23日
    000
  • 使用CSS实现标题文字过长部分显示省略号的方法介绍

    这篇文章主要介绍了使用CSS实现标题文字过长部分显示省略号的方法介绍,并且讲解了针对单行文字溢出和多行文字溢出的情况,需要的朋友可以参考下前段时间在公司移动站的重构,遇到了一个产品列表title的需求是只显示两行,然后超过两行的字符用省略号显示。如下图的效果,当时第一感觉是这个需求只能通过后台输出的…

    好文分享 2025年12月23日
    000
  • CSS代码书写规范的学习指南

    这里为大家送上一份css代码书写规范的学习指南,包括代码注释和命名规范以及空格缩进等一应俱全,都来自大家平时的约定俗成,绝对值得学习借鉴,需要的朋友可以参考下 1.格式化代码1.1文件[建议]:CSS文件使用无BOM的UTF-8编码1.2缩进[强制]:使用 4 个空格做为一个缩进层级,不允许使用 2…

    好文分享 2025年12月23日
    000
  • 分享CSS字符编码引起乱码快速解决的方法

    下面小编就为大家带来一篇分享css字符编码引起乱码快速解决的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 乱码引起的CSS失效原理: 由于一个中文是两个字符组成,在编码不一致的情况下会引发字符的“重新”组合,(半个汉字的编码字符与后面的字符组合生成新的“文字”)…

    好文分享 2025年12月23日
    000
  • 使用CSS的margin属性在页面布局中的使用攻略介绍

    margin属性可以决定很多html元素的宽高度,因而在布局方面也能够有很重要的作用,接下来我们就来看一下使用css的margin属性在页面布局中的使用攻略介绍 基础 1.元素containing-box宽高度等于内容宽度 HTML 立即学习“前端免费学习笔记(深入)”; CSS .wrap { f…

    2025年12月23日 好文分享
    000
  • css实现3D立方体旋转特效的示例代码

    这篇文章介绍css实现3d立方体旋转特效的示例代码 先来看运行后出来的效果 它是在不停运行的一个立方体 立即学习“前端免费学习笔记(深入)”; 先来看html部分的代码 先建出来六个p然后再依次给它们设置样式 再来看它们的样式表 .rect-wrap { position: relative; pe…

    2025年12月23日
    000
  • 详解CSS中的clear清除浮动技巧

    下面小编就为大家带来一篇详解css中的clear清除浮动技巧。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 1、CSS中的clear有四个参数: none:允许两边都可以浮动。 left:不允许左边有浮动。 right:不允许右边有浮动。 立即学习“前端免费学习笔记(…

    2025年12月23日
    000
  • 详解CSS在固定宽高的div内实现垂直居中的实例分享

    这篇文章主要介绍了css在固定宽高的p内实现垂直居中的实例详解,即在p内部元素相对于p垂直居中的方法,需要的朋友可以参考下 需求案例 案例是这样的,一个外层p,高宽是固定的,但是里面内容不是固定的。很多朋友的做法是头部加一个padding或者margin,这样,里面内容显得貌似是居中了,但是假如内容…

    好文分享 2025年12月23日
    000
  • 分享CSS两列布局实现方式的总结

    这篇文章主要介绍了css两列布局实现方式的总结,讨论了包括absolute + margin和float + margin方式的一些实践和问题,需要的朋友可以参考下 两列布局大概是最经典的一种网页布局方式了,本博客就是采用的这种布局。两列布局中,以主列(main)是自适应宽度,子列(sidebar)…

    好文分享 2025年12月23日
    000
  • CSS3 animation实现逐帧动画效果示例介绍

    这篇文章主要介绍了css3 animation实现逐帧动画效果示例介绍,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 css3里面的animation属性非常强大,但是自己用的比较少,最近有次面试就刚好被问到了,趁现在有时间就对animation做一个小总结。同时实现一个逐帧动画的demo作为练…

    2025年12月23日 好文分享
    000
  • css全屏背景图片设置django加载图片路径详细说明

    下面小编就为大家带来一篇css全屏背景图片设置,django加载图片路径详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 css全屏背景图片设置,django加载图片路径详解 #bg { position:fixed; top:0; left:0; width:10…

    好文分享 2025年12月23日
    000
  • CSS的Display属性可能的值的说明

    下面小编就为大家带来一篇浅谈CSS的Display属性可能的值。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧none 此元素不会被显示。 block 此元素将显示为块级元素,此元素前后会带有换行符。 inline 默认。此元素会被显示为内联元素,元素前后没有换行符。 …

    好文分享 2025年12月23日
    000
  • CSS样式之背景、文本的详细介绍

    一、背景 1、背景颜色用background-color属性,例如:body{background-color:red} 2、用图像做背景用background-image属性,例如body{background-image:ul1(23.jpg) 3、背景由图片重复平铺用backgroud-rep…

    好文分享 2025年12月23日
    000
  • CSS单位和值与样式设置技巧分享

    一、单位和值    1.1 颜色值   在网页中的颜色设置是非常重要,有字体颜色(color)、背景颜色(background-color)、边框颜色(border)等,设置颜色的方法也有很多种:   1、英文命令颜色   前面几个小节中经常用到的就是这种设置方法: p{color:red;}   …

    2025年12月23日
    000
  • 分享纯CSS实现鼠标悬停显示图片效果的实例

    这里来给大家推荐一个纯css实现鼠标悬停显示图片效果的实例分享,以针对鼠标移到tr标签上来添加hover这种最简单的方式来演示,简单明了,需要的朋友可以参考下 最近在做一个网盘的项目,用到了鼠标移上去效果,这个效果可以用js来实现,今天主要分享一下,这个效果如何用纯css实现! 效果如下图: htm…

    2025年12月23日
    000
  • 浅谈css清除浮动clearfix和clear的用法介绍

    下面小编就为大家带来一篇浅谈css清除浮动(clearfix 和clear)的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 本文主要是讲解如何在 html 中使用 clearfix 和 clear,针对那些刚开始了解 css 的童鞋。关于 clearfix 和 …

    好文分享 2025年12月23日
    000
  • 详解CSS中的percentage百分比值使用方法

    一起来了解css中的percentage百分比值使用方法 百分比值是CSS中设计各种元素尺寸以及页面布局的基础手段,这里就带大家来彻底掌握CSS中的percentage百分比值使用,包括percentage转px的方法等,here we go~ 百分比旨在相对于父元素的相同属性的大小。如果用来设置字…

    2025年12月23日
    000
  • CSS中的选择器优先级顺序的详细介绍

    特殊性是什么 在对一个HTML元素应用CSS样式时,常常有很多种方法可以找到元素,比如: 这是一个段落 #container p { color:red } p p { color:green } p { color:yellow } 可见,如果要作用到一个HTML元素的方法有很多,远远不止这些。那…

    好文分享 2025年12月23日
    000
  • 在CSS中Box Model盒模型中的边距图文详解

    盒模型由以下css属性组成: 0.内容(content)1.padding 内边距2.border 边框3.margin 外边距下面有一个最常见的例子,虚线不属于盒模型,用于标识范围。 .box { width: 200px; height: 200px; background-color: gre…

    2025年12月23日
    000
  • 详解Less框架中将CSS强制打包到单个文件中的技巧

    在使用less预编译框架时我们总是希望能高效管理css文件的部署结构,这里我们就来看一个在less框架中将css强制打包到单个文件中的技巧,需要的朋友可以参考下 less 在import 其它less文件的时候会将其合并到单个文件中。但是当引入css 文件时,默认不会将css 合并进来 。使用inl…

    好文分享 2025年12月23日
    000

发表回复

登录后才能评论
关注微信