2013-04-16 50 views
-1

我有什麼:CSS力換行符

HTML:

<div class="container"> 
    <div class="text"> 
     Some long text 
    </div> 
    <div class="extendable"> 
     <img> 
    </div> 
</div> 

CSS:

.container { 
    float: right; 
    min-width: 10em; 
    padding-left: 1em; 
    .text { 
     padding: 0.3em; 
    } 
} 

每塊都有動態的寬度和高度。
http://jsfiddle.net/vZ4eA/

我想要什麼:
.text不應該是能夠擴展.container如果內容變得太大。應該有一個強制換行符。
.extendable另一方面應該使container更大,如果內容超過寬度(表現正常)。

+0

萬一'.container'變寬,你是不是希望'.text'也變寬來水平填充它? – Ejaz

+0

@Ejay是'。.container'變得非常寬,'.text'應該擴展。 – Nikom

回答

1

您需要在上設置固定寬度10然後使用word-break:break-all;

使用jQuery,您可以將.text的寬度設置爲.extendable的寬度。

var exWidth = $('.extendable').css('width'); 
$('.text').css('width', exWidth); 

http://jsfiddle.net/vZ4eA/16/

編輯:CSS只有

你可以嘗試把.text.extendable

在這裏看到:http://jsfiddle.net/vZ4eA/18/

編輯2:CSS:

從這個答案https://stackoverflow.com/a/7231607/1399670我已經更新了小提琴滿足您的要求提供一些幫助。

http://jsfiddle.net/vZ4eA/20/

1

您可以使用max-width文本連同nowrap

.text{ 
padding: .3em; 
border: 1px solid red; 
max-width: 200px; 
word-break: break-all; 
display: block; 

} 

Working Example

編輯:

要到下面的評論的一個響應,max-width也許應該是一個動態值爲了與容器的動態寬度一起工作。你可以很容易地實現與javascriptjQuery

jQuery的這種行爲

我建議你看看this plugin處理您div

$("#div").resize(function(e){ 
    $(".text").css({"max-width" : $(this).css("max-width") }); 
}); 
+0

然後,如果'.container'小於這個最大寬度,它仍然會延長,如果'.extendable'大於這個寬度,它將不會延長。 – Nikom

+0

@NikoM。我編輯過,這是你想要的嗎?如果沒有,請讓我知道。 –

+0

結果肯定是我想要的。事情是,我不想使用JavaScript進行初始樣式調整。特別是對於那樣簡單的東西... – Nikom

0

唯一的方法重新大小我能想到的應用這裏將設置最大寬度.text

+0

將不起作用,「.container」寬度可能會更改 – Ejaz

0

你可能不得不爲.container調整大小以動態更新的.text的最大寬度;特別是在頁面加載和視口大小調整時。你可以這樣做using jQuery