【发布时间】:2020-02-07 06:47:39
【问题描述】:
我正在尝试使用一个角度组件,该组件可以根据要显示的 div 元素的数量动态定位和调整 div 元素的大小。 This is what I have achieved so far。
编辑:如果您查看我的 stackblitz 示例,我正在使用 display: flex (因此是弹性盒)。我遇到的问题是如何确保 row 最多只有 3 个 div,然后换行到下一行 div 的长度总是一样的吗?
.
编辑 2:我的目标是当有一两个 div 的长度 div 是容器的一半。这就是为什么我把“尺子”放在 下图中的顶部。如果有超过 2 个 div 的长度 的 div 应该是容器长度的 1/3。还有一排 在换行到下一行之前应该填充三个 div。
特定集合中的所有 div 具有相同的宽度和高度。
我知道如何通过在宽度上使用calc() 来解决问题,但是我必须将 div 变量的数量传递给我的 css 文件。我也知道使用Multiple conditions in ngClass - Angular 4 是一个选项,但如果我没有任何其他选项,我想使用它。
我怎样才能实现我想要仅通过 css 实现的目标(如果可能)?如果不能只使用 css,我很乐意接受任何其他建议。
【问题讨论】:
-
你有没有考虑过使用像 bootstrap 这样的风格包?还是使用
display: flex?还是使用指令而不是完整的组件? -
我在stackblitz中的当前示例我正在使用
display: flex。 -
当然,使用 flexbox:css-tricks.com/snippets/css/a-guide-to-flexbox
-
@DaneBrouwer 我目前的实现是静态的而不是动态的。如果我将 div 元素减少到一个,它将无法按我的意愿工作。从我所看到的来看,我认为我将不得不在多个条件下使用 ng-class。我的问题不是 flexbox 不工作,而是。我的问题是我试图让它动态化。
-
@YulePale Found a link that might be useful