Div не расширяется даже с содержимым внутри - программирование
Подтвердить что ты не робот

Div не расширяется даже с содержимым внутри

У меня есть стек div внутри друг друга, все из которых имеют идентификатор, который указывает только CSS.

Но по какой-то причине окружающий тег DIV только расширяет его значение помазанной высоты, а не по умолчанию автоматически, что означает, что, хотя содержимое внутри, DIV поддержки поддерживает только определенную высоту. Мне нужно, чтобы он отрегулировал высоту до размера того, что внутри него (так как будут отображаться данные пользователя, которые будут отображаться в пунктах с более чем 500 словами).

Вот мой HTML

<div id="albumhold">

    <div id="albumpic">Pic here</div>

    <div id="infohold">

    <div id="albumhead">Name | Date</div>
    <div id="albuminfo">Information</div>

</div>

И CSS для HTML-кода:

#albumhold {
    width: 920px;
    padding: 10px;
    height: auto;
    border: 1px solid #E1E1E1;
    margin-left: auto;
    margin-right: auto;
    background-color: #E1E1E1;
    background-image: url(../global-images/albumback.png);
    background-position: top center;
    background-repeat: repeat-x;
}

#albumpic {
    display: block;
    height: 110px;
    width: 110px;
    float: left;    
    border: 1px solid #000;
}

#infohold {
    width: 800px;
    background-color: #CCC;
    float: right;
    height: 20px;
}

#albumhead {
    width: 800px;
    height: 20px;
    text-indent: 10px;
    border: 1px solid #000;
    color: #09F;    
}

#albuminfo {
    margin-top: 5px;
    width: 800px;
    float: right;
    color: #09F;
    word-wrap:break-word;
}

Помощь приветствуется.

4b9b3361

Ответ 1

Плавающие элементы не занимают никакого вертикального пространства в их содержащем элементе.

Все ваши элементы внутри #albumhold плавают, кроме #albumhead, который не похож на itd, занимая много места.

Однако, если вы добавите overflow: hidden; в #albumhold (или какой-нибудь другой CSS, чтобы очистить поплавки внутри него), он расширит высота, чтобы охватить ее плавающих детей.

Ответ 2

Существует два решения:

  • Используйте clear:both после последнего пропущенного тега. Это работает хорошо.
  • Если у вас установлена ​​фиксированная высота для вашего div или обрезание содержимого в порядке, перейдите к: overflow: hidden

Ответ 4

Поместите <br clear="all" /> после того, как последний плавающий div работал лучше для меня. Благодаря Brent Fiare и Paul Waite для информации, которая плавает divs, не будет расширяться высота родительского div! Это меня заводило!; -}

Ответ 5

Добавьте <br style="clear: both" /> после того, как последний обработанный div работал у меня.

Ответ 6

У вас есть фиксированная высота на .infohold, поэтому div.albumhold будет добавлять только к высоте .infohold(20px) +.albumpic(110px) плюс любые дополнения или поля, которые я туда не добавил.

Попробуйте удалить фиксированную высоту на .infohold и посмотреть, что произойдет.

Ответ 7

div не будет расширяться, если внутри него есть другие плавающие элементы div, поэтому удалите float из внутренних элементов div, и он будет расширяться.

Ответ 8

Вы не набрали finaltag из div с id = "infohold.