css中清除浮动方法介绍

 

 代码如下 复制代码
   <style>
            .container {
                border: 3px solid #000;
                width: 600px;
                background-color: #eee;
                margin-bottom:50px;
            }
           
            .floatedbox {
                float: left;
                border: 3px solid #bbb;
                width: 125px;
                height: 125px;
                background-color: #fff;
                margin-right: 1em;
                padding: 0 10px;
            }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="floatedbox">
                <p>
                    floated box
                </p>
            </div>
            <h3>Container 1</h3>
            <p>
                (<em>without</em>
                easy clearing)
            </p>
        </div>
    </body>
</html>

去网上查了一下,这就是著名的浮动问题。我们需要做的就是将浮动效果给清除。
咋个解决方法
网上有好多解决办法,但是普遍是在这三类中:
在浮动的div外层,增加含有clear:both样式定义的div元素
使用overflow:auto,但是这个传说中会引起一些很杯具的效果
使用after伪元素进行处理,同时对于IE使用hack
首先第二种,既然传说中会杯具,那么我肯定不用。而第一种,对于我这种有类似html洁癖的人也肯定不会使用,平白无故增加一个div标签,实在感觉有些划不来,还有些恶心。
所以我彩after伪元素来处理,具体处理后的代码如下:

 代码如下 复制代码

 

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>简易浮动清除</title>
        <style>
            .container {
                border: 3px solid #000;
                width: 600px;
                background-color: #eee;
                margin-bottom:50px;
            }
           
            .floatedbox {
                float: left;
                border: 3px solid #bbb;
                width: 125px;
                height: 125px;
                background-color: #fff;
                margin-right: 1em;
                padding: 0 10px;
            }
           
            .clearfix:after{
                content:".";
                display:block;
                height:0;
                clear:both;
                visibility:hidden;
            }
           
            * html .clearfix{height:1%;}
        </style>
    </head>
    <body>
        <div class="container">
            <div class="floatedbox">
                <p>
                    floated box
                </p>
            </div>
            <h3>Container 1</h3>
            <p>
                (<em>without</em>
                easy clearing)
            </p>
        </div>

    <div class="container">
            <div class="floatedbox">
                <p>
                    floated box
                </p>
            </div>
            <h3>Container 1</h3>
            <p>
                (<em>without</em>
                easy clearing)
            </p>
        <div style="clear:both;"></div>
        </div>
   
        <div class="clearfix container">
            <div class="floatedbox">
                <p>
                    floated box
                </p>
            </div>
            <h3>Container 1</h3>
            <p>
                (<em>without</em>
                easy clearing)
            </p>
        </div>
    </body>
</html>

问题得以解决。网上还有人说在div标签后面加上一个“点”感觉不爽,而且还要使用visibility来隐藏。所以建议使用如下代码替代:

 代码如下 复制代码

.clearfix:after{content:"";display:block;height:0;clear:both;}

这样我们的问题就解决了。

时间: 2024-09-24 07:30:57

css中清除浮动方法介绍的相关文章

css中清除浮动的例子

左图右文形式,这是手机页面经常碰到的一种情况,记得第一次写的时候,好纠结,因为不会,排版的时候,老是写不出和效果图一样的效果,最近发现,原来是使用了float元素,导致这个页面最外层的标签撑不起来(手机页面一般不将宽度和高度定死),这个时候,突然想起可以清除浮动  clear:both; 下面放出代码 css: .cell-content {display: block;margin-bottom: 10px;background: #eee;} .cell-content:hover,.cel

网页设计中清除浮动的最优方法

Overflow也可以用来清除浮动方法真的很简单,只要为需要清浮动的标签加上overflow这个属性. CSS代码:ul{ list-style:none; height:auto; margin:0;p adding:0; background-color:#436973; } li{ float:left; width:80px; height:80px; background-color:#83B1DF; } .demo{ clear:both; border:1px solid #FF0

Python中字符串对齐方法介绍

  这篇文章主要介绍了Python中字符串对齐方法介绍,本文介绍Python字符串内置方法ljust.rjust.center的用法,需要的朋友可以参考下 目的 实现字符串的左对齐,右对齐,居中对齐. 方法 字符串内置了以下方法:其中width是指包含字符串S在内的宽度,fillchar默认是空格,也可以指定填充字符 代码如下: string.ljust(s, width[, fillchar]) string.rjust(s, width[, fillchar]) string.center(

Javascript中的call()方法介绍

 这篇文章主要介绍了Javascript中的call()方法介绍,本文讲解了Call() 语法.Call() 参数.Javascript中的call()方法.Call()方法的实例等内容,需要的朋友可以参考下     在Mozilla的官网中对于call()的介绍是: 代码如下: call() 方法在使用一个指定的this值和若干个指定的参数值的前提下调用某个函数或方法. Call() 语法 代码如下: fun.call(thisArg[, arg1[, arg2[, ...]]])   Cal

css清除浮动方法和代码

  对于一个前端设计者,经常用CSS设计页面,对于清除浮动似乎是一个再基础不过的技巧了,但是清除浮动也是有很多方法和代码的,今天分享一个流行且在很多大项目上已被采用的CSS清除浮动的代码. 这个代码来源于positioniseverything ,通过after伪类:after和IEhack来实现,完全兼容当前主流浏览器. 上述代码是一种标准模式,效果和兼容性都是相当出色的,不过有些朋友总担心代码太多所造成的影响,可以这样优化一下,不影响清除效果,也是很不错的:

css页面浮动与清除浮动的介绍

一.float:主要目的是为了实现文本绕排图片的效果.            也成了创建多栏布局最简单的方式. <imgsrc= " " /> <p>文本内容段落内容文本内容段落内容文本内容段落内容文本内容段落内容文本内容段落内容</p> [1]文本绕排图片 P {margin:0;border:solid1px;} img {float:left;} [2]创建多栏布局 P {margin:0;border:solid1px;width:200px

DIV+CSS中浏览器兼容方法及div+css的使用技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 相信很多的朋友在div+css的页面制作当中都会遇到这个问题,由于IE系列浏览器对于HTML标签和CSS样式表的解释与其他浏览器会有所区别,所以在制作页面的时候经常会出现一些小BUG,和网页错位等现象,下面站长好站为大家讲解一写,在div+css中如何兼容各大浏览器. 首先我们先要检查相应的HTML标签,如果你的标签错误,无论你如何修改CSS

CSS规范 闭合浮动元素介绍

css|浮动|规范 按照CSS规范,浮动元素(floats)会被移出文档流,不会影响到块状盒子的布局而只会影响内联盒子(通常是文本)的排列.因此当其高度超出包含容器时,一般父容器不会自动伸长以闭合浮动元素.但是有时我们却需要这种自动闭合行为,具体如何处理呢? 有一种做法就是在父容器内再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器.这种方法浏览器兼容性好,没有什么问题,缺点就是需要额外的(而且通常是无语义的)标签,所以我个人不大喜欢.后来又有了一种新的方式,使用 :after 伪类

css float清除浮动实现代码

定义和用法 如果浮动非替换元素,则要指定一个明确的宽度:否则,它们会尽可能地窄. 注释:假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止. 默认值: none 继承性: no 版本: css1 网页特效 语法: object.style.cssfloat="left" 实例 把图像向右浮动: img { float:right; } tiy 浏览器支持 所有主流浏览器都支持 float 属性. 注释:任何的版本的 intern