используя display: table-cell с позицией: исправлено

0

Я сделал один контейнер <div>, а внутри него два <div>: один - ширина 80%, а другой - 20% и должен быть position:fixed.

По какой-то причине общая ширина контейнера <div> больше, чем окно браузера.

как только я удаляю position:fixed справа <div> все в порядке, но мне нужно, чтобы <div> был position:fixed.

Вот мой код:

HTML

<div class="test">
    <div class="leftSummary"></div>
    <div class="rightTasks"></div>
</div>

CSS

.test {
    width: 100%;
    display: table;
}
.leftSummary {
    width: 80%;
    display: table-cell;
}
.rightTasks {
    width: 20%;
    min-width: 275px;
    display: table-cell;
    vertical-align: top;
    position: fixed;
}
  • 0
    какое разрешение у вашего экрана? это может быть на 20% меньше, чем 275 пикселей вашей минимальной ширины.
  • 0
    Я хочу, чтобы правильный div был 20% или min-width: 275 в любом случае.
Показать ещё 3 комментария
Теги:

2 ответа

3

Здесь есть основная проблема. После того, как вы установили position: fixed на .rightTasks, свойство display вычисляется для block вместо table-cell.

Это изменит макет, и вам нужно переосмыслить свою разметку.

Ссылка: http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo

Кроме того, элементы с position: fixed расположены относительно порта представления, а не элемент блока, который их содержит. Таким образом, ширина 20% относится к порт представления, а не к родителю .test.

Если вы проверите элемент .rightTasks, вы увидите, что ширина составляет 20% от ширины порта просмотра, а не 20% ширины таблицы. Если вы установите ширину таблицы на 50%, эффект станет более очевидным.

0

Вы не должны использовать min-width.

Демо-версия

РЕДАКТИРОВАТЬ

Если вы хотите использовать min-width с position: fixed, вы должны использовать top и right css. Если вы не хотите сталкиваться с проблемой, связанной с браузером, вы должны использовать reset.css

Демо-версия

  • 0
    Я удаляю min-width: 275px, но все же замечаю, что меняется.
  • 0
    Я отредактировал свой ответ. Вы смотрели первое живое демо? В этом не проблема.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню