2013-07-31 42 views
0

這裏是我迄今作爲演示的例子:如何使div填充剩餘空間,並在必要時轉到下一行?

link to demo

而這裏的,我現在使用的CSS:

body { 
    background-color: darkgrey;  
} 

.container { 
    background: #ccc; 
    max-width: 300px; 
    overflow: hidden; 
} 
.label { 
    float: left; 
} 
.filler { 
    overflow: hidden; 
    display: block; 
} 
.filler input { 
    min-width: 150px; 
    width: 100%; 
    border: none; 
} 

我試圖完成是一種快速的方式來添加標籤(幾乎完全類似於stackoverflow上的標籤系統),同時讓輸入始終位於最後輸入的標籤div之後。到目前爲止,我已經完成了這一點,除了最後一個標籤被推到下一行時。

我真的很喜歡非JavaScript解決方案,但如果任何人有一個優雅的JavaScript解決方案,我願意接受它!

+0

我決定只是有一個固定寬度的輸入,並向左漂浮。 –

+0

感謝您的建議,但! –

回答

0

使用display: inline-block,而不是float: left

CSS

.label { 
    display: inline-block; 
} 
.filler { 
    overflow: hidden; 
    display: inline-block; 
} 

Demo

+0

雖然這確實解決了不繼續到下一行的問題,但它不會填充剩餘的水平空間。我想我現在可能需要包含一些javascript。 –

0

我知道這是不是一個代碼解決方案,但也許現有的插件可以提供幫助。例如:jQuery Tags Input Plugin?我確信還有其他的,但可能重用,除非你的用例有很大的不同?

(我本來只是增加了一個評論,但我的代表處ins't足夠高,但:))

+0

我的用例沒有明顯的不同,但是我需要一些特定的功能,我覺得很多插件不會提供。雖然我可能會對一些研究做一些研究,看看有沒有可擴展的研究,或者會以某種形式爲我提供我所需要的。 :) –

1

試試這個:

.label { 
    display: inline-block; 
} 

這裏是小提琴:http://jsfiddle.net/vGWCR/

+0

這仍然不能解決沒有填補線上剩餘空間的問題。如果沒有必要,也可以強制增加一行。 –