我需要创建一个水平布局,其中一个块占用所有可用空间,而其他块则缩小以适应其内容。
例如:
<div class="grid">
<div class="expand">Long text label</div>
<div class="shrink">Button</div>
</div>
一个有两行的更复杂的例子(一个实际的网格):
<div class="grid">
<div class="row">
<div class="shrink">...</div>
<div class="expand">...</div>
<div class="shrink">...</div>
<div class="shrink">...</div>
</div>
<div class="row">
<div class="shrink">...</div>
<div class="expand">...</div>
<div class="shrink">...</div>
<div class="shrink">...</div>
</div>
</div>
我的要求:
- 大块即使很短也应该填满所有可用空间
- 小块应适合其内容
- 大块(通常是文本标签)可能比可用空间大一个单词,所以在这种情况下应该截断它
- 如果多字,大块不应该换行
- 小块不应该换行(尽管在多个按钮或图标的情况下,这可以通过每个组件制作一个块来解决)
- 支持多行(即列应对齐)
我的目标是 Android 和 iOS 智能手机。
我试图从这个答案中调整代码,但我无法让它适用于多行。此外,源代码必须是乱序的,这很令人困惑(尽管对我的用例来说并没有阻塞)。这是一个 jsfiddle:http: //jsfiddle.net/k3W8L/