【发布时间】:2013-09-30 21:29:28
【问题描述】:
我有一系列带有标签和值的行,如下所示:
<div class="row">
<div class="rowName">thing 1</div>
<div class="rowValue">325,000</div>
</div>
<div class="row">
<div class="rowName">thing 2 that is longer</div>
<div class="rowValue">4,000</div>
</div>
<div class="row">
<div class="rowName">THING_3_NO_SPACE</div>
<div class="rowValue">150</div>
</div>
这是一个 jsfiddle,看看我到目前为止有什么:http://jsfiddle.net/YYUg6/
我的问题是,如果标签是一个冗长的单词,比如上面的 THING_4,那么它会将值推出到外部容器的宽度之外。
将标签包装到下一行,甚至隐藏溢出都可以,但我无法以合理的方式实现。我可以将其设置为使用 table-layout:fixed,然后左列不会向右推,但前提是我在右列上设置了显式宽度,这是不切实际的,因为它们可能包含从小到大的数字。
我没有与 jsfiddle 中的 div 上使用的 display:table 和 display:table-cell 结婚,所以如果没有它就可以实现所需的外观,那么我完全赞成。我只在右列较大时使用 display:table 使左列变小(因此比长内容与值重叠时要好),但如果没有分词,则不起作用。
有什么想法吗?感谢您的帮助!
【问题讨论】:
-
小提琴有什么问题?
-
嗯,我不应该在 .rowName 中有那个最大宽度,因为值宽度变化如此之大。这是一个没有显示问题的内容。 jsfiddle.net/YYUg6/5
-
有趣的是,max-width 在 Firefox 和 chrome 中可以满足我的要求,但我认为这不是规范,所以我担心它会在以后的版本中中断;据说 max-width 仅适用于块元素,而这些是表格单元。即使它设置为最大 100 像素,最后一个框实际上是 119 像素,似乎完全符合我的要求:使最右边的单元格尽可能大以显示内容,而左边的单元格得到其余部分。如果我能找到正确的方法来做到这一点,而不是依赖一些不太正常的东西。