2011-06-20 4 views
0

Я добавляю элементы в контейнер div, высота которого сначала «авто». Я ожидаю, что его высота будет обновляться по мере добавления дочерних элементов. Но на самом деле нет. Может кто-нибудь мне помочь? Я просто хочу, чтобы высота контейнера была обновлена ​​в соответствии с высотой детей.Почему высота контейнера не обновлялась?

Я использовал инструмент для отладки хрома, высота контейнера div меньше высоты детских div. Дети divs плавают: слева.

+0

Не меняется ли размер при вставке элемента? Или это просто свойство height, которое не обновляется? –

+1

У вас есть пример? – Kyle

+1

Мы не можем помочь, если вы не показываете какую-либо структуру. Какие дети вы добавляете? Плавают ли они? – JohnP

ответ

5

Если вы добавляете детей с плавающей точкой в ​​div, вам нужно иметь overflow:auto; для родителя.

Вы также можете использовать другой элемент для очистки поплавка clear:both.

Это связано с тем, что элементы флотации вынимаются из потока документов.

Вот пример, который показывает вам несколько методов, которые можно использовать: http://jsfiddle.net/Tn5c3/

The CSS

#a, #b { 
    padding: 10px; 
    margin:10xp 
} 

#a { 
    background: #aa0000; 
} 
#b { 
    background: #00aa00; 
    overflow: auto; 
} 
p { 
    background: #0000aa; 
    padding: 5px; 
} 

.clear { 
    clear:both; 
    height: 50px; 
} 

The JS

$('#bb').click(function() { 
    addChild($('#b')); 
}); 

$('#ba').click(function() { 
    addChild($('#a')); 
}); 


function addChild(parent) { 
    var child = $('<p>floated para</p>').css({ 
     'float': 'left' 
    }); 
    parent.append(child); 
} 

HTML-

<button id='ba'>Add to A</button> 
<button id='bb'>Add to B</button> 


<div id='a'></div> 
<div class='clear'></div> 
<div id='b'></div> 
+0

Обратите внимание, что DIV с идентификатором 'a' не предназначен для работы. Вы можете легко заставить его работать, переместив в него 'clear' div и изменив JS-вызов' append' на 'preend' (ясный div должен прийти последним) – JohnP

+0

спасибо, он работает! – Dagang

+0

Я хочу знать, есть ли побочный эффект, если мне нужно установить переполнение родительского div: auto? – Dagang

Смежные вопросы