设置多个模块(div)高度始终保持一致

实现目的

假设你的页面中有几列高度非固定的模块,他们的顶部是对齐的,而他们的高度会随着其内容的增删而变化,你又希望让他们无论如何都能保持高度一致,也就是说高度自适应且保持一致,这时就可以使用以下方法。

具体方法

1.首先给他们设置一个外包裹层。

效果如图:


1

具体如下
html:

<div class="content-wrap">------------外包裹层
    <div class="subcontent">------------每一列
        [站外图片上传中……(9)]
        <div class="text">
            <p></p>
        </div>  
    </div>
    <div class="subcontent">------------每一列
        [站外图片上传中……(10)]
        <div class="text">  
            <p></p>
        </div>
    </div>
    <div class="subcontent">------------每一列
        [站外图片上传中……(11)]         
        <div class="text">  
            <p></p> 
        </div>  
    </div>
</div>

css部分就不说了,无亮点

2.然后给每一个模块设置尽可能大的padding-bottom,这样就隐含的将其父类包裹层高度撑大了,因为包裹层的高度默认是随内部变化而变化的。

效果图:


2

通过底部可以看出他们的高度还是不一致的。但是可以发现,包裹层的高度相当于模块中高度最高的那个。

2-1

css:

.subcontent{
    padding-bottom:10000px;
}

3.最后通过设置margin-bottom(负值)来抵消掉撑长的padding-bottom,可以这样理解,正的margin-bottom使包裹层向下伸,那么负的margin-bottom就会使得包裹层向上【卷】。通过设置负的margin-bottom,使得包裹层向上【卷】,其卷的水平线是一致,但是基线是根据高度最高的那一个模块来决定的(原因已经说过了,包裹层的高度相当于模块中高度最高的那个),最终使得三者高度一致。

3

可以这样理解:
1.三根绳子水平并排放置,长度分别为:50cm,20cm,30cm并且他们的头部在同一水平线上;


4-1

2.然后将他们每一个延长100cm,这样他们现在的高度分别是:150cm,120cm,130cm;


4-2

3.紧接着拿一把剪刀从底部开始向上剪100cm;
4-3

4.这时他们的长度分别为:50cm,20+30cm,30+20cm。
4-4

结束

that all

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,033评论 1 92
  • 01. 颅脑CT扫描采用的听眶线是()。 (1.0 分) A. 外耳孔与外眼眦的连线 B. 外耳孔上缘与眶下缘的连...
    我们村我最帅阅读 3,693评论 0 6
  • 从小热爱外语,现在学习俄语英语两个专业,还希望在未来能够学习更多的外语,考四级之前并没有过多地复习,四级成绩677...
    TenderWildHeart阅读 6,205评论 14 57
  • PostCSS介绍 PostCSS本身是一个功能单一的工具,提供了用JavaScript处理CSS的方法。它负责把...
    尾巴尾巴尾巴阅读 358评论 0 0
  • 第一篇博文就这样拉拉杂杂开始了。 该系列参考廖雪峰的git教程,可自寻其PDF版学习,谨以此记录我的学习成长之路。...
    帅番茄阅读 946评论 0 0

友情链接更多精彩内容