【发布时间】:2020-12-04 06:15:51
【问题描述】:
我已经编写了一些 JavaScript 来实现这一点,但它的性能降低了我的组件速度并且它不干净,所以我正在努力寻找更有效的 CSS 解决方案来优化它。我已经在网上搜索过,没有任何效果。
所以基本上我们有这个模板(简化):
<div class="container">
<div class="box"></div>
<div class="container">
<div class="box"></div>
<div class="box"></div>
</div>
</div>
所有 3 个.box 都占用 1/3(即calc(100% / 3))并连续渲染。
如果至少有一个box 的内容溢出它的专用空间- 所有3 个都假设在列中呈现(即flex-direction: column)。有没有什么方法可以使用flexboxes 而不使用 JavaScript 来实现这一点?
注意:这个块是在一个响应式组件(下拉菜单)中呈现的,即 100% 的网格单元。它可能会占用 100% 的屏幕以及 10% 的屏幕。所以我不能在这里使用任何媒体查询。
【问题讨论】:
-
你能提供一个你有的解决方案吗?我很难想象你想要完成什么。你能加一个sn-p吗?
-
我拥有的解决方案是 angular 组件的一部分,它使用一些捆绑的逻辑来获取组件的 ViewChild,它在渲染之前是 nativeElement.offsetWidth 。为了简化,它是这样的:verticalLayout = ((box2Width + box3Width) > containerWidth) ?真:假
-
无论如何,我很快就会添加一个 plunkr。
标签: javascript html css flexbox