博主信息
博文 9
粉丝 1
评论 0
访问量 10732
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
css如何清除浮动,浮动定位与绝对定位实现一个三列布局 2019年9月4日
江水的博客
原创
1475人浏览过

1、如何消除子元素浮动而造成父元素高度折叠的影响 示例:

实例

<div class="box1">
        <div class="box2">子元素块</div>
        <!--该元素专门用与清除浮动-->
        <div class="clear"></div>
    </div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

/* 设置子元素的父级box1 */
.box1{
    width: 200px;
    border:5px dashed red;
}
/* 子元素的样式设置,子元素继承父元素的宽度 */
.box2{
    width: inherit;
    height: 200px;
    background-color: aqua;
}
/* 子元素浮动后,父级元素会包不住子元素 */
.box2{
    float: left;
}
/***解决方案一、为父元素在添加高度***/
/* .box1{
    height: 200px;
} */
/***解决方案二、父元素也添加一个浮动***/
/* .box1{
    float: left;
} */
/***解决方案三、在该子元素下面,在添加一个div,专门用来清除浮动***/
/* .clear{
    clear: both;
} */
/***解决方案三、为父元素添加一个overflow属性***/
.box1{
    overflow: hidden;
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

当没添加浮动时显示效果如图1所示,添加浮动过后如图2所示:

1.png 2.png

                      图一                                                                       图二

从上图可以看出,当我们添加浮动之后,父元素的高度就折叠了,要想解决这个问题的话,有很多种方法可以实现,通常的做法就是给对应的父级元素添加一个overflow属性将值设为hidden。

2、三列布局的实现原理(绝对定位和浮动定位)示例如下:

实例

 <div class="container">
        <div class="header">头部区域</div>
        <div class="main">
            <div class="left">左侧区域</div>
            <div class="content">内容区域</div>
            <div class="right">右侧区域</div>
        </div>
        <div class="footer">底部区域</div>
    </div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

.container{
    width:1300px;
    /* 实现居中效果 */
    margin:0 auto;
}
.header,.footer{
    height: 60px;
    background-color: #999;
}
.main{
    /* background-color: green; */
    margin:10px 0;
    position: relative;
    /*overflow: hidden;清除浮动*/
}
/* 绝对定位实现三列布局 */
.left{
    width: 200px;
    min-height: 600px;
    background-color:lightblue;
    position: absolute;
    top:0;
    left: 0;
}
.content{
    width: 900px;
    min-height: 600px;
    background-color:gold;
    /* 自动挤压,让内容区域显示出来 */
     margin:0  200px;
}
.right{
    width: 200px;
    min-height: 600px;
    background-color:lightsalmon;
    position: absolute;
    right: 0;
    top:0;
    
}
/*浮动定位实现三列布局*/
.left{
    width: 200px;
    min-height: 600px;
    background-color:lightblue;
    float: left;
}
.content{
    width: 900px;
    min-height: 600px;
    background-color:gold;
    float: left;/左浮动/
  
}
.right{
    width: 200px;
    min-height: 600px;
    background-color:lightsalmon;
    float: right;/*右浮动*/
    
}
/* .footer{
    clear: both;
} */

运行实例 »

点击 "运行实例" 按钮查看在线实例

两种方式的最终效果图,都是一样的,如下图所示:

col.png

总结:

如果一个子元素一旦设置了浮动,该元素的父级高度就会折叠,要想解决这个问题,就需要清除浮动,一共有四种方法,第一种就是给父元素设置高度,显然这种不太合适,第二种就是给父元素也加一个浮动,然而当该子元素有很多父级的话,需要给每一个父级都加一个浮动属性,这种也不适合,第三种就是在该子元素下面添加一个块级元素,专门用来清除浮动,而这种在页面渲染时很不友好,第四种也是最常用的一种,也比较简单,只需要给该元素的父级加上一个overflow属性即可

三列布局的实现是通过绝对定位与浮动定位来实现,通常不建议使用浮动来做,因为浮动会对后面元素有影响而对于前面没影响,所以浮动要慎用。

批改状态:合格

老师批语:合格
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学