砌体:从最后一列移除排水沟

Posted

技术标签:

【中文标题】砌体:从最后一列移除排水沟【英文标题】:Masonry: remove gutter from last column 【发布时间】:2013-07-30 14:10:19 【问题描述】:

一直在使用新版本的 Masonry,它似乎运行起来更加顺畅,尤其是对于我正在做的流畅/响应式构建。

不过,我遇到了一个问题 - 我不知道如何移除 .masonry 容器最右侧的排水沟,以使物品与边缘齐平。

这是代码笔示例:http://codepen.io/iamkeir/pen/xlcBj

我可能会设置一个宽度和overflow:hidden 来剪掉最后一个间隙,但并不理想。

同样,我尝试添加padding-left: 1%,但这会改变容器的宽度,因此百分比不再准确。

任何想法/提示将不胜感激!

【问题讨论】:

同事建议将 .masonry 包装在一个容器中,然后在 .masonry 上添加负边距右侧等于排水沟宽度。这可行,但更喜欢修复而不是破解...... :) 【参考方案1】:

我可以用 calc() 做到这一点。使用 0 边距、0 填充、20 像素间距和 1200 像素网格,这是一个左右齐平的 1、2、3 和 4 列的设计。 Calc -10px 会换行,所以我必须在计算中使用 -11px:

        #grid .item 
            float: left;
            padding: 0;
            width: 100%;
            margin: 0;
        

        @media only screen and (min-width: 500px) 
            #grid .item 
                width: calc(50% - 11px);
            
        

        @media only screen and (min-width: 800px) 
            #grid .item 
                width: calc(33% - 11px);
            
        

        @media only screen and (min-width: 1200px) 
            #grid .item 
                width: 285px;
            
        

【讨论】:

【参考方案2】:

@desandro 在推特上发布了解决方案 - 问题在于我的 % 计算应该是:

(container width - (columns * column width)) / number of gutters = gutter width

所以,在我的例子中:(100% - (4 * 24%)) / 3) = 1.33333333333333%

http://codepen.io/desandro/pen/ybluC

【讨论】:

说得有道理,可惜我自己没想到:(【参考方案3】:

您可以尝试使用 wookmark 或 packery 来删除正确的装订线。

【讨论】:

感谢您的意见 - desandro(砌体开发人员)实际上意识到这是我计算百分比的问题。

以上是关于砌体:从最后一列移除排水沟的主要内容,如果未能解决你的问题,请参考以下文章

java移除list中某一列记录,将之后的所有记录序号加1

移除一个项目会导致 React 移除最后一个 DOM 节点,而不是与该项目关联的那个

从购物车中移除商品

Android DiffUtil::onBindViewHolder 返回从列表中移除的位置

Codeigniter 从浏览器 URL 中移除 index.php

easyui datagrid 动态加入移除editor