Это зависит от того, чего именно вы хотите достичь. Получение фиксированной вершины и переменной нижней части, где контейнер настолько большой, насколько это необходимо для двух дочерних элементов.
Предполагая, что:
<div id="parent">
<div id="top"></div>
<div id="bottom"></div>
</div>
использование:
#top { height: 2em; }
и нижний div будет настолько большим, насколько это необходимо. Вы можете сделать нижнюю фиксированную высоту и достичь того же.
Но я подозреваю, что вы хотите сделать, чтобы внешний div фиксированной высоты (скажем, 100%). Это становится намного сложнее. Проблема в том, что в CSS нет способа сказать «высота 100% минус 2em» без использования (неуместного) CSS-выражения.
Один из подходов - наложить верх на нижний.
#outer { position: relative; }
#top { position: absolute; height: 2em; top: 0; left: 0; width: 100%; }
#bottm { height: 100%; padding-top: 2em; }
Верхний div фактически перекрывает нижний. Это хорошо, если вы не хотите границы.