博主信息
博文 5
粉丝 0
评论 0
访问量 3572
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
9月4日作业,实例演示如何消除子元素浮动造成的父元素高度折叠等
卢骏的博客
原创
826人浏览过

9月4日作业:
1. 实例演示如何消除子元素浮动造成父元素高度折叠的影响

当父级元素包含(嵌入)子元素时,如果子元素存在浮动属性,可能会对父级元素产生影响,例如

<div class="box1">
    <div class="box2">
       嵌套的子元素(区块)
    </div>
</div>
.box1 {
    width:300px;
    border:5px dashed red;
      }
.box2 {
    width:inherit;
    height:300px;
    background-color:lightcoral;
    float:left;
    }

如果此时,我们设置box2左浮动,那么box2将会脱离文档流,此时我们会发现box1将无法包含著box2

1.png


针对上述问题,现在有四种解决方案,包括:

a、因为box2浮动后直接脱离了文档流,所以此时box1的高度实际为空,box1无法包住box2,可以将box1高度设置为box2的高度,300px,即可实现包裹效果;

此方法并不建议,因为如果子元素的属性变化,需要反复修改父元素属性;

b、将父元素设置为和子元素一起浮动,例如将box1、box2都设置为float:left,此时box1和box2重叠,外观上看,实现了功能,但如果box1外另有父元素,需要设置每一级的父元素浮动,最后直至body层级,过于复杂且不利于开发;

此方法也不建议使用

c、在子元素中,增加一个同级元素,该同级元素专门用于清除浮动,例如在上面例子box2同级增加一个div class=clear,属性值为clear:both;

此方法完全实现了目的,但因为增加了额外的dom元素,容易造成混乱,尤其是针对后端开发时,因此,同样不建议使用此方法

d、直接给父元素增加overflow属性即可;

例如在上例中,为父级元素增加

.box1 {
    overflow : hidden;
    }

2.png

2. 实例演示三列布局的实现原理( 绝对定位实现, 浮动定位实现)

三列式布局,一般而言,页头和页脚部分通常固定不变,因此大多数的三列布局均只需要调整主体内容部分即可

1.png

如果采用浮动式布局,当子元素设置为浮动后,需要考虑父元素是否能够足够包括住子元素,在本例中,我们一定要在main类中设置overflow属性为hidden,可以更好的实现整体3列式浮动。

2.png

批改状态:合格

老师批语:这些都是最基本的常识, 不管你以后会用到什么更高级的布局技术, 这个都非常重要
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系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+教程免费学