如何制作一个可拉伸以适合包装物品的弹性盒容器? [复制]

2024-02-20

我想要一个flex-direction: column;Flexbox 容器的宽度会增长以适合包含的元素。

在此代码笔中: http://codepen.io/justinmc/pen/ZYwWMz

灰色的 div 是 Fl​​exbox 容器,红色的 div 包含在内部,并通过 Flexbox 排列在列中。灰色 div 需要扩展/收缩其宽度以完美包含红色子 div。这可能吗?

.container {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  max-height: 290px;
  align-content: flex-start;
  padding: 2px;
  background: grey;
}
.child {
  background: red;
  width: 100px;
  height: 100px;
  margin: 2px;
}
<div class="container">
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
  <div class="child"></div>
</div>

“解决方案”

我轻率地使用术语“解决方案”,因为这是insanely没有像托马斯建议的固定行就很难做到(即不将 HTML 更改为更传统的样式),或者一般来说没有一些高度的黑客攻击。此外,除非已完成 2 行并且包含的​​ div 的大小无法可靠地减小,否则高度会减半;注释掉 child 7 看看会发生什么。然后,当您也取消注释 8 时,会发现它恢复到“正常”。

我已经搞砸了一个小时左右,我能想到的最好的就是这个小提琴。 https://jsfiddle.net/7dk55801/3/


我想提供一些背景知识

默认flex-flow is row nowrap,这设置了一定的宽度x关于幸运地接受该规则的元素。看来在这种情况下改变flex-flow to column does not重置宽度x定义在该元素上。元素占用宽度x就好像它是flex-flow: row nowrap(自己尝试一下)。

由此产生了一大堆宽度继承问题,我们无法设置flex-basis属性(我相信它的行为并不像这样)所以我们需要将所有内容包装在另一个元素中.container我们可以定义宽度,并将实际的列样式放在.row元素代替。然而,.container也不会缩水。最多我们可以正确定义列的宽度.container(ing) 元素都做自己的事情。

因此我们需要一个伪元素::after提供正确宽度的背景,包括一些margin and calc()黑客模拟填充。

我可以输入更多内容,但我认为这根本不是一个可行的解决方案,实际上只是一个“证明”,证明它无法很好地完成。

如果您想添加更多行,则必须将宽度从 2 (1/2) 的 50% 更改为 3 (1/3) 的 33% 等...它并不像编辑 HTML 本身那样可缩放。

总而言之,有一个仅适用于 2 行的演示,但目前这对于当前的 HTML 标记结构来说似乎不太合理。

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

如何制作一个可拉伸以适合包装物品的弹性盒容器? [复制] 的相关文章

  • onMouseEnter 和 onMouseLeave 未按预期运行

    我正在尝试为我的组件模拟悬停效果 然而 onMouseEnter Leave 事件没有按预期工作 现在我试图让它简单地 console log 一个字符串来检查它是否正常工作 但什么也没有发生 目的是我可以在悬停时更改其背景颜色 我尝试通过
  • 如何让左浮动和右浮动在同一条线上?

    问题 The left part nav ul li which float left and the right part nav search which float right are not in a line it should
  • 跨浏览器方法使子 div 适合其父级的宽度

    我正在寻找适合孩子的解决方案div进入它的父母width 我在这里看到的大多数解决方案不跨浏览器兼容 eg display table cell IE 不支持 lt 8 解决方案就是不声明width 100 默认为width auto 对于
  • 如何将 OTF/TTF 文件转换为 EOT 格式?

    我需要使用 font face 功能 并且我的字体是 OTF TTF 格式 而 Microsoft 浏览器仅支持 EOT 格式 我尝试使用微软工具WEFT 但它不起作用或者我不明白它是如何工作的 还有其他方法可以将我的字体转换为 EOT 格
  • 如何使用 CSS 或 javascript 创建圆角

    复制 使用 CSS 创建圆角的最佳方法是什么 https stackoverflow com questions 7089 what is the best way to create rounded corners using css 7
  • CSS 按钮将线性渐变背景转换为透明背景

    我有一个带有线性渐变背景 橙色边框和一些文本的按钮 当我将鼠标悬停在按钮上时 我希望背景变得透明 而不更改按钮的其他属性 我尝试将不透明度转换为 0 但显然 这会隐藏边框和文本 我也尝试过转换背景 但它不起作用 因为我没有要转换到的端点 因
  • 向上/向下滚动到带有固定按钮的部分

    我想构建一个用于向上 向下滚动到页面部分标签的脚本 我的源代码如下所示 HTML div class move div class previous UP div div class next DOWN div div section Fi
  • 如何修复连接的可排序对象位置错误的可拖动助手(部分由浮动/相对定位的父元素引起)?

    Preface 我遇到一个问题 当使用放置在浮动 相对定位的父元素中的可拖动元素 可排序元素时 可拖动帮助器偏移不正确 浮动父元素是 Bootstrap 列 其中多个可排序列表放置在一列中 可拖动列表放置在另一列中 Example 这是一个
  • 如何防止 Safari 滚动溢出:隐藏的 iframe?

    使用 Safari 您可以通过设置 style overflow hide 来禁用大多数 iframe 滚动 在 iframe 上 但是 如果您单击 iframe 并移动鼠标 内容无论如何都会滚动 Example 滚动内容 html
  • Angular4 - 滚动到锚点

    我正在尝试对同一页面上的锚元素进行简单的滚动 基本上 用户点击 尝试 按钮 它就会滚动到页面下方 ID 为 登录 的区域 现在 它正在与一个基本的id login a href login a 但它正在跳转到该部分 理想情况下 我希望它滚动
  • CSS Font-Face url 不起作用?

    我在使用 font face 选择器时遇到了一些问题 我有以下问题 font face font family MuseoSans 700 src url http mysite co uk clients reload Images st
  • 背景颜色的不透明度,但不是文本的不透明度[重复]

    这个问题在这里已经有答案了 如何使背景的跨浏览器 包括 Internet Explorer 6 透明div而文本仍然不透明 我需要在不使用任何库 例如 jQuery 等 的情况下完成此操作 但如果您知道有一个库可以实现此目的 我很想知道 这
  • 使用无图像按钮有哪些优点?

    讨论关于这个答案 https stackoverflow com questions 520640 how can i use googles new imageless button how could i reverse enginee
  • IE10中的图像插值

    这是我的用例 我有一个采用响应式设计的网页 该页面垂直分成两半 我想在右侧显示图像 呈现为 PNG 或 JPG 的 PDF 页面 调整窗口大小后 图像的大小应立即更改 我以为我已经解决了这个问题 我将服务器上的图像渲染得足够大 以适应最大可
  • IE8 中空 div 层的 z-index 问题

    我在 IE8 中遇到 z index 问题 其他尚未测试 以下 JS 创建一些 html css document write img src border 0 document write div style background col
  • Firefox CSS 大纲错误?

    在 Chrome 和 IE9 上 我指定的 CSS 轮廓完全符合我的要求 并充当我正在设计的元素周围的第二个边框 但在 Firefox 上 轮廓会向外扩展 以便包含我生成的 after 伪元素以及主元素 这是一个错误 还是预期的 有什么好的
  • iOS 键盘显示后分屏宽度

    我刚刚开始研究 Cordova 应用程序对分屏多任务处理的支持 到目前为止 该应用程序在模拟器中的 iPad 上显示和调整大小都很好 但是当我单击编辑字段并显示软件键盘时 100 宽度的值开始返回整个屏幕 而不是给出的窗口 初始显示 到目前
  • CSS 动画自定义属性/变量

    一段时间以来我一直在努力让它发挥作用 关键是内部 div 将具有某种形状 并且可能会不止一个 这就是为什么我使用nth child选择器 这个内部 div 应该显示然后再次隐藏一段时间 问题是 我想在一个动画中为所有 后来的 多个内部 di
  • 将下拉按钮和下拉菜单放在中心?

    div class dropup center block div
  • 我如何用 javascript/jquery 进行两指拖动?

    我正在尝试创建当有两个手指放在 div 上时拖动 div 的功能 我已将 div 绑定到 touchstart 和 touchmove 事件 我只是不确定如何编写这些函数 就像是if event originalEvent targetTo

随机推荐

  • 调整highlight.sector() 宽度和位置 - R 中的和弦图(circlize 包)

    我需要一些帮助来调整突出显示的部分chordDiagram 来自 circlize 包 我正在处理渔业上岸数据 渔船从一个港口出发 母港PORT DE 并将他们的捕获物降落在另一个港口 登陆港PORT LA 我正在处理扇贝活重 吨 上岸量S
  • 如何在 vim 中搜索没有前面“\r”的“\n”?

    如果 Vim 看到不一致的行结尾 则不会转换文件格式 我怎样才能找到那些 零宽度后向断言 如何在 vim 中搜索没有前面 r 的 n r
  • JAVA Quartz - 如果上一个作业仍在运行,则跳过作业并等待下一个计划时间

    我有一个 Java 解决方案 使用Quartz 2 2 3 我所拥有的是 我的工作类别已注释 DisallowConcurrentExecution为了避免并发 所以同一个作业不能每次运行一次 OK 它是一个 CRON 每 1 小时运行一次
  • R:使用paste()定义列名

    问题很简单 但我找不到解决方案 我想创建一个新的数据框 定义列的名称paste0 理想情况下 我想做这样的事情 其中一个不起作用 mydataframe lt data frame id 1 paste0 Here my column na
  • 当使用自定义动画的片段替换事务正在运行时暂停活动时出现幽灵行为

    我正在使用片段事务在按下按钮时在组件之间切换 为了使整体体验更好 我添加了自定义动画 将旧片段从左侧动画化 将新片段从右侧动画化 启动此事务的代码如下所示 supportFragmentManager beginTransaction se
  • 如何在 C# 中格式化日期时间,如“Oct. 10, 2008 10:43am CST”

    有没有一种干净的方法将 DateTime 值格式化为 Oct 10 2008 10 43am CST 我需要它带有正确的缩写和小写的 am 或 pm 等 我自己做过 但它很丑 所以我正在寻找不同的方法 Thanks 由于 tt 格式字符串说
  • PHP 绑定文本域失败

    我正在尝试在运行 PHP 7 1 的 CentOS 服务器上设置 PHP 国际化 这是我的目录结构 home project public html locale japanese LC MESSAGES messages po home
  • Django 检查字段是否为空?

    我从数据库中检索了一个对象 该对象有一个外键字段 其属性blank True 我如何检查它是否实际上留空 谢谢您的帮助 blank True只是告诉管理站点该字段可以留空 除非你设置null True同样 如果您尝试输入空白值 您的数据库也
  • 对具有多个条件的列表进行排序 Ruby on Rails

    我希望能够根据 4 个不同的标准对列表中的 12 支球队进行排名 我将有一个名为 Teams 的数据库表 每个团队将有各种列 例如 matches won matches lost 等 我想根据 matches won 按顺序显示它们 这很
  • 你能在 Mongoose 中为子文档定义实例方法吗?

    如果我在 Mongoose 中有一个架构 其定义如下 var subSchema new Schema some String var topSchema new Schema subs subSchema var topModel mon
  • MATLAB 绘图轴所在框中缺少黑线

    在 MATLAB 中绘制图形时 我注意到保存轴的黑盒部分丢失了 左侧和底部 我尝试过发出 box off box on 命令没有成功 你知道我可以做什么来获得轴上相应的黑线吗 Note 我正在使用 OpenGL 渲染器 set 0 Defa
  • Angular 通用元标记在页面源中不可见

    当我查看在我的角度通用项目的构造函数中设置标题和元标记的页面时 标题显示在选项卡中 当我单击 检查元素 并转到时 我可以在 html 中看到元标记和标题到 html 文档的头部 但是 如果您仅单击 查看页面源代码 则不会显示标签 也不会显示
  • 自定义dateutil.parser世纪推理逻辑

    我正在处理具有两位数年份的旧文本文件 其中默认世纪逻辑dateutil parser似乎效果不太好 例如 珍珠港袭击事件并未发生dparser parse 12 7 41 返回 2041 12 7 回滚到 1900 年代的内置世纪 阈值 似
  • 左移 (<<) 是 C++11 中负整数未定义行为吗?

    左移是负数吗intC 11 中未定义的行为 这里的相关标准段落来自 5 8 2 E1 让我困惑的部分是 否则 如果 E1 具有有符号类型和非负值 且 E1 2E2 可以用结果类型表示 那么这就是结果值 否则 行为是未定义的 这是否应该被解释
  • 简单的iframe不显示在github页面上

    我定期嵌入iframes在我的 github io 页面中 但这个失败了 我不明白为什么 The iframe 嵌入此页面的多个位置 并且没有出现 https seinecle github io codapps generated htm
  • 从外部触发 Perfect 工作流程

    我目前有一个在 EC2 实例上本地运行的 Prefect 工作流程 我可以通过 UI 在 localhost 8080 上触发我的工作流程 有没有办法通过 REST API 或其他方式在外部触发 Prefect 工作流程 例如 AWS La
  • Errno 13,尝试读取文件时权限被拒绝

    我创建了一个小的 python 脚本 我正在尝试读取 txt 文件 但我的访问被拒绝 解决了 13 号错误 这是我的代码 import time import os destPath C Users PC Desktop New folde
  • Nancy 测试在其他程序集中找不到路线

    我有以下规格 使用 Machine Specifications 或 mSpec public class when a user logs in successfully static Browser browser static Bro
  • 通过 godaddy SMTP 发送电子邮件的正确设置是什么?

    我在电子邮件和 Office 下使用 GoDaddy 专业电子邮件 不是工作区电子邮件 对于我的网站 我想使用 PHPMailer 向用户发送电子邮件 我已根据 GoDaddy 电子邮件服务器信息使用了所有凭据 根据 GoDaddy 的说法
  • 如何制作一个可拉伸以适合包装物品的弹性盒容器? [复制]

    这个问题在这里已经有答案了 我想要一个flex direction column Flexbox 容器的宽度会增长以适合包含的元素 在此代码笔中 http codepen io justinmc pen ZYwWMz 灰色的 div 是 F