多列等高布局

作者: ghwaphon | 来源:发表于2017-04-16 21:09 被阅读643次

之所以会出现多列等高布局,是因为在网页设计中可能会出现以下状况。

1.png

出现这种情况的原因也很简单,就是各个 div 标签中的 p 所占高度不同,而且我们并没有明确的给 div 一个高度。

之所以没有给 div 指定高度,是因为我们事先并不知道这个标签会占多高,而且就算我们知道,直接为所有 div 硬性的设置一个高度也是没有灵性的做法。

所以我们该怎么办呢?其实核心代码只有三行,如下所示

.container {
    overflow: hidden;
}

div.item {
    padding-bottom: 500px;
    margin-bottom: -500px;
}

设置完以上代码,现在的情况就变成了这样。

2.png

下面来解释它的工作原理,首先, padding-bottom: 500px 会让三个盒子拉伸的非常高,然后利用 margin-bottom: -500px 将各个元素切割掉 500px,最后父元素将超出的部分隐藏,就出现了这个效果。

你可能对切割这个概念非常模糊,所以我推荐你去看以下文章,相信你看完之后就明白了。

《CSS布局奇淫巧计之-强大的负边距》

《负值之美:负margin在页面布局中的应用》

利用 FlexBox

不得不说,上面的方法很好用,不过我们还能够更简洁一点,简洁的让你不敢相信!其实,我们只需要为父布局设置一行 display: flex 就可以了!

而且,之前在没有利用 flex 的时候,我们为了让三个元素保持在同一行,还不得不为每个 div.item 设置浮动属性。

那么为什么 display: flex 就可以完成以上那么多代码才能够完成的任务呢?这依赖于 align-items 属性,它的默认值是 stretch,也就是在辅轴上将所有子项目拉伸为同一高度(或宽度)以保持对齐。

如果你对 flex 了解还不是很了解,那么建议去阅读以下文章。

《A Complete Guide to Flexbox》

相关文章

  • 页面架构

    布局解决方案 水平居中布局 垂直居中布局 水平垂直都居中的布局 多列布局 多列等分布局 多列等高布局 在多列布局的...

  • 多列等高布局

    flex布局 table

  • 多列等高布局

    之所以会出现多列等高布局,是因为在网页设计中可能会出现以下状况。 出现这种情况的原因也很简单,就是各个 div 标...

  • 如何实现多列等高布局?

    其实现原理就是给每一列添加相对应用的容器,并进行相互嵌套,并在每个容器中设置背景色。这里需要提醒大家你有多少列就需...

  • display:table-cell

    一、垂直居中 二、左右布局 三、三列布局 四、等高布局

  • 圣杯布局(holy grail)总结

    什么是圣杯布局? 根据 wikipedia词条,圣杯指多列等高的网页布局。因为目前的实现方法都存在局限,而又很难找...

  • 前端面试每日 3+1 —— 第354天

    今天的知识点 (2020.04.04) —— 第354天 (我也要出题) [html] 列举几种多列等高布局的方法...

  • css布局

    左边定宽,右边宽度自适应 等高自适应,两列布局

  • 多列等高实现

    需求 无法提前获知最高列的长度时实现多列等高对齐的方法 兼容最好的方法--padding补偿法 原理:用paddi...

  • CSS3开发常用核心技能

    基础网页布局 布局分类 一列布局 两列布局 三列布局 多列布局 一列布局: 二列布局: 三列布局: ⚠️ midd...

网友评论

    本文标题:多列等高布局

    本文链接:https://www.haomeiwen.com/subject/xqfzattx.html