El cortafuegos corporativo bloquea las imágenes, por lo que supongo que lo que está buscando en base a otros comentarios.
EDIT: Ahora que puedo ver lo que buscas, he actualizado mi violín en consecuencia. Incluyendo el código a continuación para completar.
Escribiría una función para calcular el tamaño del diálogo, restar la altura del div fijo y establecer la altura del div dinámico a este valor calculado. A continuación, enlazaré una llamada a esta función con el evento de cambio de tamaño del cuadro de diálogo. Here es un violín, puede necesitar algunos ajustes para su diseño exacto, pero debe estar cerca.
Una cosa que vale la pena observar es que algunos navegadores pueden no calcular correctamente mientras están en medio de un evento de desplazamiento/cambio de tamaño, haciendo que los cálculos ocurran después de que el evento de cambio de tamaño se complete con setTimeout resuelve los problemas, aunque hace que el cambie un poco nervioso mientras el cambio de tamaño está en progreso. Vea esto question y responda para más detalles.
function SetDivHeight() {
var $DynamicDiv = $('div.dynamic');
var $FixedDiv = $('div.fixed');
var $Container = $(window); //Update for containing element
/*Calculate the adjustment needed to account for the margin and
border of the dynamic div.*/
var HeightAdjustment = $DynamicDiv.outerHeight(true) - $DynamicDiv.height();
/*Get the values of the top and bottom margins which overlap
between the two divs.*/
var DynamicBottomMargin = parseInt($DynamicDiv.css('marginBottom'));
var FixedTopMargin = parseInt($FixedDiv.css('marginTop'));
/*Adjust for the overlapping top/bottom margin by subtracting
which ever is smaller from the adjustment value.*/
if (DynamicBottomMargin >= FixedTopMargin) {
HeightAdjustment -= FixedTopMargin;
} else {
HeightAdjustment -= DynamicBottomMargin;
}
/*subtract the height of the fixed div from the height of the
container, subtract the calculated height adjustment from that
value, and set the result as the height of the dynamic div.*/
$DynamicDiv.height(($Container.height() - $FixedDiv.outerHeight(true)) -
HeightAdjustment);
/*May need to use $Container.innerHeight instead, if container
is not a window element.*/
}
var t;
function QueueSetDivHeight() {
if (t) {
clearTimeout(t);
}
t = setTimeout(function() {
SetDivHeight();
}, 0);
}
$(document).ready(function() {
SetDivHeight();
$(window).resize(QueueSetDivHeight);
//Bind to resize of container element instead/as well
});
Esa es claramente la manera correcta de hacerlo. Felicidades por encontrarlo. Es increíble que nadie más lo haya pensado. Quizás StackOverflow ya no sea el mejor lugar para las respuestas, solo mire todas las respuestas inútiles publicadas aquí ... – Timwi
Y solo por diversión, aquí hay un violín http://jsfiddle.net/cPwqN/3/ que tiene un tamaño automático de los elementos de la parte superior y de la base, usando un poco de JavaScript para establecer el alto del medio. –
De un vistazo esto está funcionando en IE 8 y 7, pero sospecho que 7 comenzaría a desmoronarse a medida que se agrega contenido adicional. La mayoría de mi base de usuarios todavía está en 7 (ninguno de nosotros se ha movido a 9), y los errores de 7 con el posicionamiento fueron la razón por la que primero resolví cómo hacer este tipo de cosas con JavaScript/JQuery. – Rozwel