Переполнение CSS: скрытые ограничения ширины div

Итак, я столкнулся с этой проблемой, когда переполнение: скрытое в div в контейнере ограничит ширину div, когда он должен быть плавным. Итак, в основном у меня есть структура, подобная этой:

<div id="container">
    <div id="leftColumn">
        //content
    </div>
    <div id="rightColumn">
        //content
    </div>
</div>

В этой ситуации div leftColumn имеет фиксированную ширину, а rightColumn должен быть плавным и заполнять оставшуюся ширину. Проблема в том, что когда я добавляю overflow: hidden в правую колонку (она имеет цвет фона), ширина уменьшается до минимальной ширины, которую я дал ей. Есть ли способ расширить его до оставшейся ширины? Вот что у меня есть для CSS в настоящее время:

#container {
    margin: 0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    min-width: 800px;
}

#leftColumn {
    margin: 0px 0px 0px 0px;
    padding: 10px 10px 10px 10px;
    width: 230px;
    position: relative;
    float: left;
}

#rightColumn {
    margin: 0px 0px 0px 250px;
    padding: 10px 10px 10px 10px;
    min-width: 530px;
    overflow: hidden;
    background: #fff;
}

Мысли?


person seanmcgary    schedule 27.01.2011    source источник


Ответы (2)


У меня работает (FF 3.6.13). Проверьте и посмотрите, есть ли что-то еще на странице (стили или элементы), которые могут мешать. Также проверьте разные браузеры. И если вы вручную меняете страницу при тестировании, обязательно сделайте полное обновление в браузере (Ctrl-F5), чтобы убедиться, что новые стили загружаются.

person Yaakov Ellis    schedule 27.01.2011
comment
Итак, я запустил Firefox, и он отлично работает, но по какой-то причине он ломается в Chrome (бета-версия 9.0.597.83), и я не знаю, почему... - person seanmcgary; 30.01.2011

Это работало точно так, как вы описали в моей скрипке... сжимаясь до min-width с применением overflow : hidden.

Я ненавижу вложенные элементы div без необходимости, но потенциально это сценарий, в котором это может сработать для вас?

http://jsfiddle.net/cVNaJ/

Я превратил ваш правый столбец в «оболочку», где содержимое overflow : hidden содержится в дочернем div, названном в честь оригинала. Может быть, это поможет?

person jlmakes    schedule 27.01.2011