Учитывая ваши настройки, я бы сделал следующее (имена классов подразумеваются вашим вопросом, а не взяты из связанного источника):
div.outer {
position: relative;
max-height: $length(y);
overflow: hidden;
}
div.innerFixed {
position: absolute;
bottom: 0;
height: $length(y);
overflow: hidden; /* just in case, to keep things from
blowing out into all manner of crazy */
}
div.innerFlex {
max-height: $length(y);
overflow: auto;
}
Эти правила не относятся к свойствам поля, которые будут влиять на применяемые вами значения высоты. Объединенные значения высоты (с включенными значениями блоков) .innerFixed
и .innerFlex
должны равняться значению высоты контейнера.
Если вы хотите получить все Zen и перевернуть вертикальную композицию, вы сделаете это, поменяв bottom
на top
на .innerFixed
и присвоив margin-top
или padding-top
.innerFlex
.
Что-то еще, что я заметил, это то, что у вас есть
div.outer { float: left; }
... Но с учетом того, что вам нужно от этого элемента (и для установки правильного приоритета содержимого), я бы вместо этого предложил, чтобы вы сначала поместили большой столбец в исходном порядке и применили
div.mainContent {
float: right;
width: $length(x);
}
div.outer { /* i.e., the column that started the discussion */
margin-right: length(x);
}
с пониманием того, что margin-right
последнего несколько больше, чем width
первого (больше, чтобы учесть водосток между двумя элементами). Попробуйте, вам понравится.