这实际上是Pinterest布局.然而,在线查找的解决方案是以列形式包装的,这意味着容器会无意中水平增长.这不是Pinterest布局,它对动态加载的内容不能很好地工作.

我想要做的是一堆固定宽度和不对称高度的图像,水平布置,但是当满足固定宽度容器的限制时,将其包装在新行中:

flexBox可以做到这一点吗,还是要诉诸于像石工这样的JS解决方案?

解决方法

FlexBox是一个“一维”布局系统:它可以沿着水平或垂直线对齐项目.

真正的网格系统是“二维”:它可以沿着水平和垂直线对齐项目.换句话说,单元格可以跨越列和行,这是flexBox无法做到的.

这就是为什么flexBox的建造网格容量有限.这也是W3C开发另一种CSS3技术,Grid Layout(见下文)的原因.

在具有flex-flow的flex容器中:行换行,flex项必须包装到新行.

这意味着flex项目不能包含在同一行中的另一个项目下.

注意上面div#3如何包装在div#1之下,创建一个新行.它不能包裹在div#2之下.

因此,在每列中保留了不是行中最高的项目创建的空白空间,创建了不好的空白.

图片来源:Jefree Sujit

列包装解决方案

如果切换到flex-flow:column wrap,flex项将垂直堆叠,并且可以实现类似网格的布局.然而,一个列方向的容器有三个潜在的问题:

>它水平扩展容器,而不是垂直扩展(像Pinterest布局).
> It requires the container to have a fixed height,so the items know where to wrap.
>在撰写本文时,它在所有主要浏览器中都有缺陷,其中the container doesn’t expand to accommodate additional columns.

结果,在许多情况下,列方向容器可能不可行.

其他解决方案

>添加容器

在上面的第一张图片中,考虑将物品2和3包装在单独的容器中.这个新容器成为第1项的兄弟.完成.

一个值得强调的缺点:如果要使用order属性在媒体查询中重新排列布局,则此方法可能会消除该选项.
> Desandro Masonry

Masonry is a JavaScript grid layout library. It
works by placing elements in optimal position based on available
vertical space,sort of like a mason fitting stones in a wall.

source: 07008

> How to Build a Site that Works Like Pinterest

[Pinterest] really is a cool site,but what I find interesting is how these pinboards are laid out… So the purpose of this tutorial is to re-create this responsive block effect ourselves…

source: 070010

> CSS Grid Layout Module Level 1

This CSS module defines a two-dimensional grid-based layout system,optimized for user interface design. In the grid layout model,the children of a grid container can be positioned into arbitrary slots in a predefined flexible or fixed-size layout grid.

source: 070012

javascript – Flex项目是否可以与其上方的项目紧密对齐?的更多相关文章

  1. 使用Html5多媒体实现微信语音功能

    这篇文章主要介绍了使用Html5多媒体实现微信语音功能,需要的朋友可以参考下

  2. HTML5页面无缝闪开的问题及解决方案

    这篇文章主要介绍了HTML5页面无缝闪开方案,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. ios – 将容器带到视图前方

    我怎样才能解决这个问题?

  4. ios – 如何使用XCode 6.4下载和替换AppGroup容器

    我知道如何使用XCode6的Devices窗口下载和替换特定iOS应用程序的文件系统容器.但是对于我正在开发的应用程序,我需要能够下载和替换共享的AppGroup容器以进行调试.这将使我能够模拟AppGroup文件夹内容中的情况以进行测试.任何人都可以告诉我如何做到这一点?

  5. ios – 在UITableView上移动UIView – 触摸顶部UIView仍然选择表行

    =======用一些代码编辑:这是我在容器B中所做的代码.这是B帧的一个非常直接的动画.self.view是ContainerB的UIView.所有视图都在屏幕上通过故事板.其他容器是B的子视图.请让我知道你想看到的其他代码.解决方法嗯……不确定这是否适用于您的情况,但尝试在容纳所有其他容器的更大容器中管理您的动画.我的意思是,创建一个包含A,B,O及其子视图的ContainerZ,并尝试从Z中设置B的位置动画,检查B是否在A前面.

  6. ios – 与容器视图通信的最佳实践是什么?

    我最近经常使用容器VC,我一直想知道主Vc和容器VC之间的最佳通信方式是什么.现在我正在使用通知,但我宁愿使用更好的东西.如何获取指向容器VC的指针,以便至少可以使用委托?

  7. ios – 编程嵌入UIViewController?

    我有一个带有一个容器视图的UIViewController的Storyboard设置,以便我可以在其中嵌入另一个UIViewController.在某种情况下,我需要更改嵌入式视图控制器.在我的故事板中,我的容器视图不能有两个区段.这导致我以编程方式进行.我的容器视图在我的故事板,没有连接的嵌入.现在从这一点开始,我如何以编程方式嵌入我所选择的UIViewController对象?

  8. 为什么Pinterest自定义共享网址不会在iOS Safari上创建丰富的引脚?

    解决方法使用iPhone5S与iOS9.2.1,这些页面在Chrome和Safari上看起来完全相同:

  9. ios – 使用Swift访问非默认的Cloudkit容器

    我有一个IOS8应用程序,它成功地将记录写入其默认的Cloudkit容器.现在我希望在OSX下的不同应用程序中读取和处理这些记录.我已经设置了具有iCloud访问权限的新应用程序,并选中了“指定自定义容器”选项.这已成功找到原始应用程序和我的容器没有错误要在Capabilities界面上修复.我的所有搜索都告诉我“同一个开发人员签署的两个应用程序可能共享同一个容器”但我找不到的任何教程文档都告诉我

  10. ios – 嵌入在容器视图中的UINavigationController,显示大小错误的表视图控制器

    我正在尝试找到解决这种情况的方法:我有一个UITabBarController它的一个segue连接到一个容器视图控制器(BannerViewController),我用来嵌入一个UINavigationController,导航控制器推送其他容器视图控制器(EventListContainerviewController),每个包含一个tableview控制器.这是我的故事板上的一个屏幕问题是最

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部