如何在柔性容器中设置间隙(排水沟)?

2024-03-31

我正在尝试创建某种柔性容器的通用组件。该组件由容器及其连续的子组件组成。

如果一行中的孩子太多,没有足够空间的孩子会去第二行。它可以使用 Flexbox 轻松实现,但我也希望能够在元素之间设置装订线。一行的第一个和最后一个元素不应分别具有左边距和右边距。

我使用负边距技术来做到这一点,但这里的问题是,如果容器太大,右边距可能会引发溢出问题。我可以解决这个问题添加overflow: hidden切断负边距,但它会引发容器内项目溢出的问题(下拉菜单等)。

所以现在我正在寻找银弹,可以满足这个要求的实现:

  • 连续有多个项目。项目的宽度可以不同。
  • 如果某些项目没有足够的空间,则会转到下一行。
  • 项目之间有间隙(边距),第一个和最后一个项目分别没有左边距和右边距。
  • 容器内部可以放置溢出的内容(下拉菜单),所以我无法使用overflow: hidden
  • 可以使用CSS grid和flexbox

这是我对这个问题的解决方案:https://jsbin.com/gabumax https://jsbin.com/gabumax

这里是示例中的代码:

.container {
  overflow: hidden;
}

.wrapper {
  margin: -10px;
  display: flex;
  flex-wrap: wrap;
}

.item {
  flex: 0 0 auto;
  padding: 10px;
  background-color: red;
  margin: 10px;
}
<div class="container">
  <div class="wrapper">
    <div class="item">Width of items can vary</div>
    <div class="item">This example works</div>
    <div class="item">But there is a problem</div>
    <div class="item">Dye to overlow:hidden</div>
    <div class="item">It is impossible to place here</div>
    <div class="item">Overflowing content</div>
    <div class="item">Such as dropdowns</div>
  </div>
</div>

它有效,但唯一的缺点是overlow: hidden。因此,我无法在此处放置下拉菜单和其他溢出内容。

有更好的解决办法吗?提前致谢。


Use gap / row-gap / column-gap:

.wrapper {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

查看更多here https://css-tricks.com/snippets/css/a-guide-to-flexbox/#gap-row-gap-column-gap

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在柔性容器中设置间隙(排水沟)? 的相关文章

随机推荐

  • TypeScript 中 ?: 是什么意思?

    我在 Angular 的 TypeScript 声明文件中发现了以下内容 interface IDirective compile templateElement IAugmentedJQuery 什么是 编译后做什么 See 演练 接口
  • HTML 多选不将值发送回 PHP

    我有一个 html 表单中的选择框 它不会将值发送回 php
  • 当应用程序在 Docker 容器中运行时,Swagger UI 给出 ​​404

    在我的项目中 我在 Startup cs 中使用 Swashbuckle 设置了 Swagger public void ConfigureServices IServiceCollection services services AddS
  • Node js中response.send和response.write的区别

    我编写了一个使用 Node js restify 框架的小型 API 该 API 接收请求 实际上是 之后的任何内容 然后将该请求发送到另一台服务器 从服务器获取响应并将响应传递回原始请求源 对于这个 API 我同时使用 Restify 服
  • 使用 dplyr 获取方差为零的列名称

    我试图找到数据中方差为零的任何变量 即恒定连续变量 我想出了如何使用 lapply 来做到这一点 但我想使用 dplyr 因为我试图遵循整洁的数据原则 我可以使用 dplyr 创建一个仅包含方差的向量 但在最后一步我发现值不等于零并返回令我
  • 使用 Powershell Windows 窗体将复选框添加到列表框

    我正在根据我之前的帖子创建一个新问题 在 Powershell Winforms 中更改单个列表框项目的颜色 https stackoverflow com questions 27405945 change the color of in
  • TravisCI 中的 NDK、CMake 和 Android

    我正在尝试为使用一些 C 代码的 Android 项目设置 CI 因此 我需要 Travis Android 映像上未预安装的 NDK 我目前正在通过自己拉动 NDK 来实现这一目标 但是我的 CI 盒子抱怨 CMake 许可证不被接受 奇
  • 具有两列的 LISTAGG 函数

    我有一张这样的桌子 报告 user id Department Position Record id 1 Science Professor 1001 1 Maths 1002 1 History Teacher 1003 2 Scienc
  • 几秒钟后更改 ImageView

    我正在尝试实现一个简单的活动 让用户插入密码 我有一个 gridview 其中包含 9 个要使用的图像和 4 个将作为所选图像的图像视图 单击 gridview 上的项目时 相应的图像将填充所选图像 现在的问题是 我希望 4 个图像视图的行
  • 如何在 Laravel 中设置会话超时?

    是否有一种固有的方法可以将会话设置为在特定时间后过期 我当前的设置似乎将在 30 分钟后过期 我想禁用它或至少增加它 但我在 Laravel 中找不到可以设置此设置的任何位置 In app config session php你有 life
  • 从 Rails 3 控制器返回的凌乱的视图

    在我的 Rails 3 应用程序控制器上 我有以下代码 array Location all each x array lt
  • JavaScript 中有类似 C# 区域的东西吗?视觉工作室 2017

    我正在为一些人工作 他们希望将自己的 JavaScript 库组织成不同的类别 CRUD 函数 表单函数等 他们真的很喜欢 C 中区域的实用性 并且在 JavaScript 文件中要求这样做 有什么建议么 我正在使用 Visual Stud
  • 从 php 标头下载的 Mp3 文件不起作用

    你好呀 好的 事情就这样了 我的服务器上有我的 mp3 文件 每个文件都在其自己的文件夹中 该文件夹中有 mp3 和一个包含以下脚本的 php 文件 问题是 当我点击进入该 php 页面时 标头应该会自动下载 mp3 文件 但当它下载时 它
  • 由于意外的编码更改,Visual Studio 2008 项目文件无法加载

    在我们的团队中 我们在 Visual Studio 2008 中有一个数据库项目 该项目由 Team Foundation Server 进行源代码控制 每隔两周左右 一位同事签入后 项目文件将无法加载到其他开发人员的计算机上 错误信息是
  • MVC @import html 关键字

    我正在尝试使用 但 mvc 在 razor 视图中将其视为 net 代码 CS0103 名称 导入 在当前上下文中不存在 我如何解决它 谢谢 双倍 解决这个问题 更多详情请点击这里 http weblogs asp net scottgu
  • Maven groovy 编译失败且未解释原因

    I run mvn clean compile 并得到以下输出 INFO Scanning for projects INFO INFO INFO Building tendiwa core 1 0 SNAPSHOT INFO INFO I
  • Sais.js 对套接字请求的授权

    我正在尝试构建一个基于 sails js 的聊天应用程序 来自特定聊天的消息的 URL 如下所示 api chat id messages 当我使用 XHR 请求此 url 时 它会提供一个会话 cookie 并且 sails js 会构建
  • 使用和不使用“New”关键字定义数组有什么区别? [复制]

    这个问题在这里已经有答案了 看看这两个简单的程序 方案一 public class GenArray extends Applet byte myArray byte M byte o byte d byte e byte 1 方案2 pu
  • 不同的产品风格是否可以有不同的 build.gradle ?

    我正在工作的项目是为基于 Amazon 的设备以及 Android 构建的 几乎 95 的代码库在这两者之间是通用的 因此 我没有将这两个项目作为不同的项目 而是考虑使用产品风味将这两个项目放在一起 请告诉我是否还有其他更好的解决方案 但我
  • 如何在柔性容器中设置间隙(排水沟)?

    我正在尝试创建某种柔性容器的通用组件 该组件由容器及其连续的子组件组成 如果一行中的孩子太多 没有足够空间的孩子会去第二行 它可以使用 Flexbox 轻松实现 但我也希望能够在元素之间设置装订线 一行的第一个和最后一个元素不应分别具有左边