Поскольку любой другой браузер (включая IE 7, 8 и 9) правильно обрабатывает position:relative
в ячейке таблицы и только Firefox ошибается, лучше всего использовать JavaScript-шимму. Вам не нужно менять DOM для одного неисправного браузера. Люди используют прокладки все время, когда в IE что-то не так, а во всех других браузерах это правильно.
Вот фрагмент со всем аннотированным кодом. В моем примере JavaScript, HTML и CSS используют адаптивные методы веб-дизайна, но вам это не нужно, если вы этого не хотите. (Отзывчивый означает, что он адаптируется к ширине вашего браузера.)
http://jsfiddle.net/mrbinky3000/MfWuV/33/
Вот сам код, но он не имеет смысла без контекста, поэтому посетите URL-адрес jsfiddle выше. (Полный фрагмент также содержит множество комментариев как в CSS, так и в Javascript.)
$(function() {
// FireFox Shim
if ($.browser.mozilla) {
$('#test').wrapInner('<div class="ffpad"></div>');
function ffpad() {
var $ffpad = $('.ffpad'),
$parent = $('.ffpad').parent(),
w, h;
$ffpad.height(0);
if ($parent.css('display') == 'table-cell') {
h = $parent.outerHeight();
$ffpad.height(h);
}
}
$(window).on('resize', function() {
ffpad();
});
ffpad();
}
});