Вопрос по css, height – Попробуйте этот CSS

2

ользую элемент div, который содержит некоторые комментарии. Я в основном использую jQuery, чтобы добавить больше комментариев, например так:

$(myDiv).append(
 '<li>'
 + '<img width="32px" height="32px" src="mySource"/></a>'
 + '<p>' + myComment + '</p>'
 + '</li>'
);

Проблема в том, что кажется, что высота всего div не обновляется должным образом! Высота элемента div увеличивается, пока я добавляю больше комментариев, но этого недостаточно, поэтому после некоторых комментариев он имеет тенденцию переполняться.

Как вычисляется высота элемента?

Как насчет публикации CSS для вашего DIV? И, вероятно, проверить вашу разметку тоже. casablanca

Ваш Ответ

3   ответа
3

Относительно общего вопроса «Как вычисляется высота элемента», некоторую информацию можно найти здесь:http://www.w3.org/TR/CSS2/visudet.html#Computing_heights_and_margins

Как видите, это немного сложно.

Некоторые выдержки:

Незаменяемые элементы уровня блока в обычном потоке, когда «переполнение» вычисляется как «видимый»

Этот раздел также применяется к незаменяемым элементам на уровне блоков в нормальном потоке, когда «переполнение» не вычисляется как «видимое», а распространяется в область просмотра.

[. , .]

Если 'height' равно 'auto', высота зависит от того, имеет ли элемент дочерние элементы уровня блока и имеет ли он отступы или границы:

Если у него есть только дочерние элементы на уровне строки, высота - это расстояние между верхом самого верхнего линейного блока и нижней частью самого нижнего линейного блока.

Если у него есть дочерние элементы уровня блока, высота - это расстояние между верхней границей верхнего дочернего блока уровня блока, у которого нет полей, свернутых через него, и нижней границей самого нижнего дочернего блока уровня блока, не имеет полей, обрушенных через него.

[. , , ]

Учитываются только дочерние элементы в нормальном потоке (т.е. плавающие блоки и абсолютно позиционированные блоки игнорируются, а относительно позиционированные блоки учитываются без их смещения).

[. , , ]

Незаменяемые элементы уровня блока в обычном потоке, когда «переполнение» не вычисляется до «видимого» (кроме случаев, когда значение свойства «переполнение» было передано в область просмотра).

Если «высота» равна «авто»,высота зависит от потомков элемента.
почему так сложно? juanpastas
1

Это происходит во всех браузерах или только в одном? Расчеты высоты слегка различаются в разных браузерах.

Первое, на что я обращаю внимание, когда страница не рендерится так, как я должен, - это действительность HTML. В вашем коде у вас есть закрытие</a> тег без открывающего. Такое несоответствие достаточно, чтобы отключить несколько браузеров.

Это случилось со мной несколько раз, когда кнопки навигации, кажется, находятся в совершенно другом месте, потому что где-то в моем контенте я забыл закрыть<div> или я где-то добавил дополнительный закрывающий элемент.

0

Вы добавляете в DIV или UL? Это должен быть UL

Попробуйте этот CSS

li{clear:both}

Похожие вопросы