Flexbox 布局实例 —— 实现等高列布局的解决方案

阅读时长 6 分钟读完

什么是 Flexbox 布局

Flexbox 布局是一种新的布局方式,其全称为弹性布局,也叫做伸缩布局(Flexible Box),简称 flex 布局。它通过对容器和容器内的子元素进行定义块级或者行级元素的分配,实现页面元素间的自适应排列调整。

它的出现解决了传统布局方式所面对的很多问题,比如垂直居中、等高布局等。而且相比于传统布局方式,Flexbox 布局更加灵活、快捷、高效。Flexbox 布局目前已被主流浏览器大多数支持。

如何实现等高列布局

等高列布局是一种通常应用于网页中,要求多个元素列高度相同的布局方式,通过这种布局方式来达到美化页面的目的。而传统布局方式中要实现等高列布局是比较困难的,而且通常需要使用到 JavaScript 来动态计算元素的高度。但是,使用 Flexbox 布局来实现等高列布局就会变得十分简单和高效。

下面是一个使用 Flexbox 布局来实现等高列布局的示例代码,你可以通过演示区改变预设的数量和内容,查看弹性盒子布局的动态效果:

-- -------------------- ---- -------
--------- -----
----- ----------
  ------
    ----- --------------- --
    ----- --------------- ---------------------------- ------------------ --
    -------------- ---- -- --------------------
    -------
      ---- -
        ------- --
      -
      ---------- -
        ------ ----
        ------- ---- -----
        -------- -----
        ---------------- -------
      -
      ----- -
        ------ ----
        ------- - -----
        ----------------- --------
        -------- -----
      -
      ----- -- -
        ---------- ------
        -------------- -----
      -
    --------
  -------
  ------
    ---- ------------------
      ---- -------------
        --------------
        ---
          -----------------------------------
          -----------------------------------
          -----------------------------------
        ----
      ------
      ---- -------------
        --------------
        ---
          -----------------------------------
          -----------------------------------
          -----------------------------------
          -----------------------------------
        ----
      ------
      ---- -------------
        --------------
        ---
          -----------------------------------
          -----------------------------------
          -----------------------------------
          -----------------------------------
          -----------------------------------
        ----
      ------
    ------
  -------
-------

如何解决等高列布局中的问题

实践中我们通常会发现,有时候想要对其中的列进行个性化的排列时,采用普通的 Flex 布局方式可能会出现一些问题。这时候我们可以采用常用的一些技巧来解决这些问题。下面我们来一一介绍。

使用内边距解决等高列布局的问题

在等高列布局中,如果希望在外层数量不够的情况下,内层内容可以自适应,我们通常会将类似于内边距等属性设置到子元素中,如下所示:

这样即可在不改变外层高度的前提下,实现内层多个内容自适应的效果。

使用 min-height 和 flex 布局解决等高列布局的问题

在等高列布局中,如果希望在数量较少时保证高度一直,通常可以通过设置 min-height 和 flex 布局属性来实现。具体实现代码如下:

-- -------------------- ---- -------
---------- -
  -------- -----
  ---------------- --------------
-

----- -
  ---------- -- -- ------- --
  ----------- ------
  -------- -----
  ---------------- ------- -- ---- --
  --------------- ------- -- ------ --
-

这样,即可在数量少时保证高度不会出现偏差的情况。

使用组合方式解决等高列布局的问题

在等高列布局中,如果希望保持列的数量并不改变的情况下,我们可以通过代码的组合方式来实现相应的效果。具体实现方式如下:

这样就可以在等高列布局中保持布局的数量不变的情况下,达到相应的效果。

总结

Flexbox 布局在实现等高列布局时,无论是在方便性、简洁性还是灵活性方面都具有极大的优势,可以针对业务需求对 Flexbox 布局进行相应的变形实现,如内边距解决问题、min-height 和 flex 布局解决等高布局的问题,以及采用组合方式解决等高列布局。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/647004ea968c7c53b0e2c812

纠错
反馈