2012-08-09 193 views
6

好的,所以我希望做的是創建一個DIV,它會根據其中的內容自動調整大小,但它應該使用盡可能小的寬度。我不知道如何做到這一點。因此,如果我有一個DIV標籤,有3個字符,毫無疑問低於200像素寬,我想要的是div爲200px然後。如果有更多的文本,我希望它自動調整大小以便文本適合。最小寬度,最大寬度的CSS使用最小寬度

**這是可能的只是*** CSS *?****

** UPDATE **

讓我看看我能解釋這更好。我有一個DIV:

+++++++++++++++++++++++++++++++++ 
|-------------------------------| 
|-----text this longer text-----| 
|-------------------------------| 
+++++++++++++++++++++++++++++++++ 

什麼,我希望有發生的情況是,如果文本改變它仍然是至少200像素寬。就像這樣:

+++++++++++++++++++++++++++++++++ 
|-------------------------------| 
|-------------text--------------| 
|-------------------------------| 
+++++++++++++++++++++++++++++++++ 

但如果它甚至更長的文本,然後在第一個例子中,將繼續過去的200像素寬的向外擴展:

++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
|----------------------------------------------------| 
|-----text this longer texttext this longer text-----| 
|----------------------------------------------------| 
++++++++++++++++++++++++++++++++++++++++++++++++++++++ 

不過,我有一個限制(有限的空間量)它可以去,所以我需要把它的最大寬度。這是否有意義,還是我需要更多地澄清事情?

+0

你可能必須使用javascript。 – starbeamrainbowlabs 2012-08-09 19:57:24

回答

7

問題是由於<div>是塊級元素,它們不會自動調整大小以適應其內容,儘管它們的寬度可以明確定義。內聯元素(如<span>)會自動調整大小以適合其內容,但他們不接受通過CSS定義寬度。解決方法是讓您的<div>表現得像表格單元格一樣。這裏有一個例子:

CSS:

.widthlim { 
    min-width: 200px; 
    max-width: 1000px; 
    background-color: red; /*This is just for us to be able to see the width*/ 
    display: table-cell; 
    word-wrap: break-word; 
    word-break: break-word; 
} 

HTML:

Example 1:<br/> 
<div class = "widthlim"> 
Hello 
</div> 
Example 2:<br/> 
<div class = "widthlim"> 
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello 
</div> 
Example 3:<br/> 
<div class = "widthlim"> 
Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello 
</div> 

(注意我們有<div>年代以前添加<br/>是因爲他們不再完全塊級) 。
以下是渲染時的外觀: The above example rendered 這似乎適用於Firefox,Chrome和IE8(對於IE8,您需要指定DOCTYPE)。我希望這有助於!

+0

美麗!非常感謝你!正是我想要做的。 – user1470118 2012-08-10 15:36:45

1

如果我明白你問什麼正確,<div> s爲塊元素,這意味着在默認情況下,他們會採取了整條生產線 - 100%的屏幕寬度的。嘗試使用<span>元素。

希望有所幫助,但我們可以幫助你更多,如果你指定你想要做什麼或實現什麼樣的行爲。

1

你可以用幾種不同的方式「縮小」div。最簡單的可能是display: inline;,但浮動的行爲也會像你描述的那樣。

查看詳情和更多方法http://haslayout.net/css-tuts/CSS-Shrink-Wrap

如果你想最小寬度爲200像素(矛盾的第一款),可以使用min-width: 200px;display: inline-block例如一起。