多种解决浮动的方法

来源:互联网 发布:mac上安装jenkins 编辑:程序博客网 时间:2024/04/28 15:40

所谓的浮动就是元素的属性floa:left或者right。元素浮动会使自己脱离文档流。我的理解就是在DOM中没有了自己位置。看例子吧:

1<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>1</title>

<style type="text/css">

        .div1 {
            background: #000080;
            border: 1px solid red;
            height: 200px; /*解决代码*/
        }
      .div2 {
            background: #800080;
            border: 1px solid red;
            height: 100px;
            margin-top: 10px;
        }


        .left {
            float: left;
            width: 20%;
            height: 200px;
            background: #DDD;
        }
      .right {
            float: right;
            width: 30%;
            height: 80px;
            background: #DDD;
        }
    </style>
</head>
<body>
    <div class="div1">
        <div class="left">Left</div>
        <div class="right">Right</div>
    </div>
    <div class="div2">
        div2 
    </div>
</body>
</html>

第一种:left和right div浮动使父节点div1没有东西撑开,高度为0;div2就顶上来了。所以在div1加上一个height:200px固定宽度。就可以解决了。

缺点:只适合高度固定的布局,要给出精确的高度,如果子节点的高度和父级div不一样时,会产生问题 。

2.<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>2</title>
    <style type="text/css">
        .div1 {
            background: #000080;
            border: 1px solid red;
        }


        .div2 {
            background: #800080;
            border: 1px solid red;
            height: 100px;
            margin-top: 10px;
        }


        .left {
            float: left;
            width: 20%;
            height: 200px;
            background: #DDD;
        }


        .right {
            float: right;
            width: 30%;
            height: 80px;
            background: #DDD;
        }
        /*清除浮动代码*/
        .clearfloat {
            clear: both;
        }
    </style>
</head>
<body>
    <div class="div1">
        <div class="left">Left</div>
        <div class="right">Right</div>1313
        <div class="clearfloat"></div>
    </div>
    <div class="div2">
        div2 
    </div>
</body>
</html>

2.    添加一个空div(clearfloat),利用css中一个属性clear:both清除浮动,让父级div能自动获取到高度 

缺点:如果页面浮动布局很多,就要增加很多空div,会使代码产生冗余,而且在美观上也很差。 

3.<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>3</title>
    <style type="text/css"> 
.div1{background:#000080;border:1px solid red;} 
.div2{background:#800080;border:1px solid red;height:100px;margin-top:10px} 
.left{float:left;width:20%;height:200px;background:#DDD} 
.right{float:right;width:30%;height:80px;background:#DDD} 
/*清除浮动代码*/ 
.clearfloat:after{display:block;clear:both;content:"";visibility:hidden;height:0} 
.clearfloat{zoom:1} 
</style> 
</head>
<body>
    
    <div class="div1 clearfloat">
        <div class="left">Left</div>
        <div class="right">Right</div>
    </div>
    <div class="div2">
        div2 
    </div>

</body>

</html>

  3。利用伪类的方式(最好用):在父级div加上一个一块区域,其实原理也是都差不多,就是让div1有了一个高度。挺好用的就是不容易理解.

简单的理解就当是在这个div上面盖上了一个透明的div。很多大型网站都是这么用的。包括bootstrap里面写专门写了一个clearfix的class。


0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 十个月宝宝咳嗽有痰怎么办崔玉涛 怀孕五个月胎儿脐带绕颈怎么办 6个月宝宝白天睡眠不好怎么办 22个月宝宝身高才79公分怎么办 宝宝十个月了还没长牙怎么办 腰椎间盘突出翻身都困难了怎么办 上课很困怎么办犯困快速清醒的绝招 孩子上小学放学早父母上班怎么办 想玩滑冰鞋的手受伤了怎么办? 美团酒店商家入住没审核通过怎么办 顺丰离职人员被列入黑名单怎么办 洗了衣服晾起来衣服被拉长了怎么办 宝宝拉肚子半个月了还不好怎么办 宝宝咳嗽半个月了还不好怎么办 顾客试了一大堆衣服不买怎么办 宝宝屁屁用尿布捂的红的怎么办? 车被别人撞了人跑了怎么办 在无锡小孩超龄上不了学怎么办 我把共享单车二维码弄坏了怎么办 车里坐垫整上柴油了怎么办 双人骑自行车车坐压往后仰了怎么办 穿高帮钉鞋踢人造草出现水泡怎么办 耐克大吕布鞋面上的标志起来怎么办 国三柴油车环保查尾气超标怎么办 手上被玻璃手上扎进玻璃丝怎么办 月子腰疼怎么办能养过来吗 躺太久屁股长一粒一粒的痒怎么办啊 乳腺癌两年后手臂疼胳膊肿怎么办 胳膊疼就和抻筋是的怎么办 四岁胳膊扭了肿了怎么办 干燥综合症使皮肤变黑色了怎么办 刚生的小孩脖子上有淋巴结怎么办 地包天矫正期间嘴歪了怎么办 5个月的宝宝歪胫怎么办 三个多月的宝宝有点斜颈怎么办 5月宝宝有点斜颈偏向左侧怎么办 外斜术后变周期性内斜怎么办 右腰劳损休息一个多月还痛怎么办 宝宝鼻子不通气用嘴呼吸怎么办 窦性心律过速怎么办st-t改变 跑步机跑带上撒油跑起来滑怎么办