2015-06-23 72 views
1

我想用最大高度和初始寬度創建一個div,並且僅當內容達到最大高度值時才增加寬度?沒有JavaScript可以做到嗎?只有當最大高度達到時,纔會增加CSS的寬度

https://fiddle.jshell.net/zn77t0r1/

UPDATE:

如果沒有,如何輕鬆地用JS或jQuery的做呢?

+0

內容的大小是如何增加的?如果您的內容已修復,但您的div縮小,則可以使用媒體查詢檢查頁面的高度。 – gaynorvader

+0

它是一些類的div,但它可以包含可變長度的文本。 –

+1

你可以發佈你的標記和樣式,或創建一個小提琴嗎? – Vucko

回答

1

如果你允許的jQuery,你可以做這樣的事情:

$(document).ready(resizeWidth()); //call function when page is loaded 
$(window).resize(resizeWidth()); //call function when page is resized 

function resizeWidth(){ 
    var maxHeight = $('.container').eq(0).css('max-height'); 
    maxHeight = maxHeight.split('px')[0];//remove px 
    var cWidth = $('.container').eq(0).width(); 
    var currHeight = $('div.container')[0].scrollHeight; 

    while(maxHeight < currHeight) 
    { 
     cWidth += 100; 
     $('.container').eq(0).css('width', cWidth + 'px'); 
     currHeight = $('div.container')[0].scrollHeight; 
    } 

} 

功能不斷加入到100像素的寬度,只要文本高於div的max-height

jsfiddle

3

所以你必須知道你的div的高度是如何增加它的寬度的。

喜歡的東西

If (height >= max-height) //change width 

這是不可能的,只有CSS或HTML。 但如果你不介意使用jQuery,用jQuery很容易。

這應做到:

//call function when page is loaded 
$(document).ready(function(){ 
    resizeWidth(); 
}); 

//call function when page is resized 
$(window).resize(function(){ 
    resizeWidth(); 
}); 

function resizeWidth(){ 

    var maxHeight = 250; // your max-height in px 
    if ($('.container').height() >= maxHeight) { 
     $('.container').css('max-width', '400px'); 
    }else { 
     $('.container').css('max-width', '200px'); 
    } 
} 
+0

好的,讓我們來允許jQuery。 –

+0

我已經更新了小提琴:https://fiddle.jshell.net/zn77t0r1/1/,但它不工作,我認爲代碼不能應付內部的文本,它只設計爲跳過兩種尺寸。 –

+0

我改了一點代碼。我不確定它是否你想要,但我確定你可以玩它,並得到它的權利。乾杯 –

相關問題