Css学习之清除浮动的方法详解

本文和大家分享的主要是css中浮动清除相关内容,一起来看看吧,希望对大家学习css http://www.maiziedu.com/course/web/有所帮助。

当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响(甚至破坏)布局的现象。这个现象叫浮动溢出,为了防止这个现象的出现而进行的CSS处理,就叫CSS清除浮动。

#div {

background-color: blueviolet;

}

#div p {

width: 100px;

height: 100px;

background-color: red;

float: right;

}

<div id="div">

<p>float: right;</p>

</div>

清除浮动方法:

方法一:使用带clear属性的空元素或者给浮动元素后面的元素添加clear属性。

在浮动元素后使用一个空元素如<div class="clear"></div>,并在CSS中赋予.clear{clear:both;}属性即可清理浮动。亦可使用<br class="clear" />或<hr class="clear" />来进行清理。

#div {

background-color: blueviolet;

}

#div p {

width: 100px;

height: 100px;

background-color: red;

float: right;

}

.clear{

clear: both;

}

<div id="div">

<p>float: right;</p>

<div class="clear"></div>

</div>

优点:简单,代码少,浏览器兼容性好。

缺点:需要添加大量无语义的html元素,代码不够优雅,后期不容易维护。

方法二:使用CSS的overflow属性

给浮动元素的容器添加overflow:hidden;或overflow:auto;可以清除浮动,另外在 IE6 中还需要触发 hasLayout ,例如为父元素设置容器宽高或设置 zoom:1。

在添加overflow属性后,浮动元素又回到了容器层,把容器高度撑起,达到了清理浮动的效果。

#div {

background-color: blueviolet;

overflow: hidden;

}

#div p {

width: 100px;

height: 100px;

background-color: red;

float: right;

}

<div id="div">

<p>float: right;</p>

</div>

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

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

#div {

background-color: blueviolet;

float: right;

}

#div p {

width: 100px;

height: 100px;

background-color: red;

float: right;

}

<div id="div" class="clearfix">

<p>float: right;</p>

</div>

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

结合 :after 伪元素(注意这不是伪类,而是伪元素,代表一个元素之后最近的元素)和 IEhack ,可以完美兼容当前主流的各大浏览器,这里的 IEhack 指的是触发 hasLayout。

给浮动元素的容器添加一个clearfix的class,然后给这个class添加一个:after伪元素实现元素末尾添加一个看不见的块元素(Block element)清理浮动。

#div {

background-color: blueviolet;

}

#div p {

width: 100px;

height: 100px;

background-color: red;

float: right;

}

.clearfix:after{

content: ".";

display: block;

height: 0;

clear: both;

visibility: hidden;

zoom: 1;/* 触发 hasLayout */

}

<div id="div" class="clearfix">

<p>float: right;</p>

</div>

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

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

这种方法可能你见得比较少,但给浮动元素的容器也添加上display:inline-block确确实实可以解决这个清除浮动的问题。

浮动元素的容器里没有添加 width:100%; 那么 添加了display:inline-block 浮动元素的容器是紧紧的包裹着子元素的,而不是像块级元素那么完为100%,所以这里你可以根据自己的实践需求进行设置。

#div {

background-color: blueviolet;

display: inline-block;

width: 100%;

}

#div p {

width: 100px;

height: 100px;

background-color: red;

float: right;

}

<div id="div" class="clearfix">

<p>float: right;</p>

</div>

无width:100%: 添加width:100%:

来源:博客园

时间: 2024-08-15 06:59:02

Css学习之清除浮动的方法详解的相关文章

Spring4.0MVC学习资料,Controller中的方法详解和使用(四)

在以前,mvc的框架,基本上就是struts框架了.但是现在不一样了.springmvc出来了.spring的mvc框架不亚于struts了,springmvc出来了,我们有了更多的选择. Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,可以选择是使用内置的 Spring Web 框架还可以是 Struts 这样的 We

Spring4.0MVC学习资料,ApplicationContext中的方法详解(三)

做为java开源的一部分,spring框架一直排在老大的位置.Spring4.0 是 Spring 推出的一个重大版本升级,进一步加强了 Spring 作为 Java 领域第一开源平台的地位.Spring4.0 引入了众多 Java 开发者期盼的新特性,如泛型依赖注入.SpEL.校验及格式化框架.Rest风格的 WEB 编程模型等.这些新功能实用性强.易用性高,可大幅降低 JavaEE 开发的难度,同时有效提升应用开发的优雅性.为了方便开发,Spring的ApplicationContext类,

css学习_css清除浮动

若元素没有设置宽高,那元素实际宽高是被内容撑起来, 若元素自己有设置宽高,那实际面积于自己的盒子模型有关 1.清除浮动的本质 清除浮动主要是为了解决父级元素因为子级浮动而引起的内部高度为0的问题. (当父元素没有设置高度时,子元素又全浮动了,此时子元素脱离文档流而不占据位置,那就会出现父元素高度为0底下的盒子会跑上来.) 2.清除浮动的方法 a.额外标签法(很少用,不想添加下无意义的标签) b.父级添加overflow方法(overflow:hidden) c.利用after伪元素清除浮动 注意

css-浮动与清除浮动的原理详解(清除浮动的原理你知道吗)

float元素A的特点: 脱离文档流 靠向left或right float元素会和块盒子重叠 准确来说,是块盒子和A重叠,但块盒子内容会浮动在A周围 不会和inline元素重叠 <div class="parent"> <div class="box"></div> <p> 孟子曰:"君子有三乐,而王天下不与存焉.父母俱存,兄弟无故①,一乐也:仰不愧于天,俯不怍②于人,二乐也:得天下英才而教育之,三乐也.君子

javascript学习总结之Object.assign()方法详解

最近再写ES6的文章时候发现自己对Object.assign()方法不太了解,之前也没有接触过所以就就查阅了相关的资料,为了自己以后肯能会用到以及对知识进行巩固,所以在这里记录下自己学习的点点滴滴,毕竟好记性不如然笔筒,废话不多说,直接上干货. 官方解释:Object.assign方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法:Object.assign(target,...sources) 参数: target:目标对象 sources:源对象 返回值:

Python学习之异常重试解决方法详解

本文和大家分享的是在使用python 进行数据抓取中,异常重试相关解决办法,一起来看看吧,希望对大家学习python有所帮助. 在做数据抓取的时候,经常遇到由于网络问题导致的程序保存,先前只是记录了错误内容,并对错误内容进行后期处理. 原先的流程: defcrawl_page(url): pass deflog_error(url): pass url = "" try: crawl_page(url) except: log_error(url) 改进后的流程: attempts =

python学习第四周之内置方法详解

1.python的内置方法有很多,用的时候可以自行百度,我只写几个我感兴趣的(任性.) 2.(1)bin(),将十进制转变为二进制 >>> bin(2) '0b10' (2)chr(),查看数字所对应的字母, >>> chr(98) 'b' (3)ord(),查看字母对应的数字 >>> ord('a') 97 (4)hex(),转换成十六进制 >>> hex(255) '0xff' (5)oct(),转成成八进制 >>&g

彻底理解浮动float CSS浮动详解 清除浮动的方法

我们把网页的常用的布局格式分为以下三种: 1.标准流. 所谓的标准流就是,行内元素自己单独一行,而块级元素是上下显示的. 以前我们学习的都是标准流.   注意:标准流使我们网页布局中最稳定的一种结构 2. 浮动流 使我们学习的脱离标准流的第一种方式.会影响我们标准流的排列.所以,我们布局的时候,能用标准流做的,就不用浮动做. 3. 定位流 定位流也是脱离标准流的一种模式.它完全脱离标准流,不会对标准流有影响. 浮动(float) 我们要浮动的目的: 我们浮动的目的,就是可以把多个块级元素放到想要

css清除浮动的方法总结

在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了,下面总结8种清除浮动的方法,测试已通过 ie chrome firefox opera,需要的朋友可以参考下 清除浮动是每一个 web前台设计师必须掌握的机能.css清除浮动大全,共8种方法. 浮动会使当前标签产生向上浮的效果,同时会影响到前后标签.父级标签的位置及 width height 属性.而且同样的代码,在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了.解决浮动引起的问题有多种方法,但有些方法在浏览器兼容性方面还有问