2013-09-27 26 views
0

我有這樣一個系列的標籤和值的行:固定寬度行,dynamicaly大小的列,用破字包裝

<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,然後左列不會向右推,但只有在右列設置明確的寬度時纔是實用的,因爲這些列可以包含小到大的數字。

我沒有與顯示器結婚:table和display:table-cell在jsfiddle的div上使用,所以如果所需的外觀可以在沒有這個的情況下實現,那麼我就是爲了它。我只使用display:table來使右列較大時左列變小(所以它比長內容會重疊值更好),但如果沒有任何分詞時它不起作用。

任何想法?謝謝你的幫助!

+0

什麼是問題,什麼是在小提琴? – isherwood

+0

嗯,我不應該有.rowName中的最大寬度,因爲值的寬度變化非常顯着。這是沒有顯示問題的一個。 http://jsfiddle.net/YYUg6/5/ – Cameron

+0

有趣的是,最大寬度做我想在Firefox和鉻,但我認爲這不是規範,所以我怕它會在以後的版本中打破;據推測,最大寬度僅適用於塊元素,而這些是表格單元格。儘管設置爲最大100px,但最後一個框實際上是119像素,看起來正是我想要的:使最右側的單元格大到需要顯示內容,剩下的單元格就剩下了。如果只有我能找到正確的方式來做到這一點,而不是依靠不正確的工作。 – Cameron

回答

0

好吧,我也拉閘得到這個我怎麼想的那樣,除了可悲的事實,我不得不在HTML切換「列」的順序,使浮子按照我的期望工作。不得不改變HTML結構以適應樣式,這讓我感到難過,但我想這就是現實世界的方式。

所以我改變了值和標籤的順序,將值浮動到右邊,刪除了所有的顯示:表垃圾,它工作正常。這裏有一個更新的小提琴看它的行動:http://jsfiddle.net/YYUg6/10/

<div class="wrapper"> 
    <div class="right">325,000</div> 
    <div class="left">thing 1</div> 
</div> 
<div class="wrapper"> 
    <div class="right">4,000</div> 
    <div class="left">thing 2 that is longer</div> 
</div> 
<div class="wrapper"> 
    <div class="right">150</div> 
    <div class="left">THING_3_NO_SPACE_IN_HERE</div> 
</div> 

.wrapper { 
    width: 150px;  
} 
.wrapper, .right, .left { 
} 
.right { 
    float: right; 
    text-align: right; 
    padding-left: 10px; 
} 
.left { 
    word-wrap: break-word; 
    overflow: hidden; 
}