Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 468|回复: 0

css清除浮动定位造成的异常

[复制链接]
  • TA的每日心情
    奋斗
    4 天前
  • 签到天数: 802 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726006
    发表于 2021-7-11 13:16:34 | 显示全部楼层 |阅读模式

    清除浮动是为了解决高度塌陷的问题:内层有好几个div有宽有高,并且选择了浮动定位,但是外层的div却并没有设置宽高。在非IE浏览器(如Firefox)下,当容器的高度为auto,且容器的内容中有浮动(float为left或right)的元素,在这种情况下,容器的高度不能自动伸长以适应内容的高度,使得内容溢出到容器外面而影响(甚至破坏)布局的现象。这个现象叫浮动溢出,为了防止这个现象的出现而进行的CSS处理,就叫CSS清除浮动。

    没有清除浮动前:高度为0

    清除浮动后:有了高度

     

    常见解决方案:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <style>
        *{
            padding: 0;
            margin: 0;
            border: 0;
            outline: 0;
        }
        p{
            line-height: 150%;
        }
        /*清除浮动方法3 全局 for FF/chrome/opera/IE8== */
        :after {clear:both;content:'.';display:block;width: 0;height: 0;visibility:hidden;}  
    
        .test{
            
            background: rgb(164, 206, 188);
            margin: 0 auto;
            width: 150px;
    
            /*清除浮动方法2  clear:overflow*/
            /*height: auto;
            overflow: auto;
            zoom:1;*/
        }
        .div1{
            float:left; 
            width:50px;
            height:50px;
            text-align: center;
            line-height: 50px;
            border-bottom: 1px #ddd solid;
        }
    </style>
    <body>
    
        <div class="test">
            <div class="div1">1</div>
            <div class="div1">2</div>
            <div class="div1">3</div>
            <!-- 清除浮动方法1  clear:both -->
            <!-- <div style="clear:both;"></div> -->
        </div>
    
    </body>
    </html>

     

     

    当然,你也可以直接给外层加个宽高 == 简单粗暴又有效

    或者,内层选择html5的分列显示,也是很好的方案

    再或者,直接用一些框架的栏栅结构

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-11-15 07:40 , Processed in 0.057713 second(s), 29 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表