meine 2 ¢ schnelle globale Lösung:
(function () {
$('.table-responsive').on('shown.bs.dropdown', function (e) {
var $table = $(this),
$menu = $(e.target).find('.dropdown-menu'),
tableOffsetHeight = $table.offset().top + $table.height(),
menuOffsetHeight = $menu.offset().top + $menu.outerHeight(true);
if (menuOffsetHeight > tableOffsetHeight)
$table.css("padding-bottom", menuOffsetHeight - tableOffsetHeight);
});
$('.table-responsive').on('hide.bs.dropdown', function () {
$(this).css("padding-bottom", 0);
})
})();
Erläuterungen: Wenn ein Dropdown-Menü in einer '.table-responsive' angezeigt wird, berechnet es die Höhe der Tabelle und erweitert sie (mit Auffüllung), um der Höhe zu entsprechen, die für die Anzeige des Menüs erforderlich ist. Das Menü kann beliebig groß sein.
In meinem Fall ist dies nicht die Tabelle mit der Klasse '.table-responsive', sondern ein Wrapping-Div:
<div class="table-responsive" style="overflow:auto;">
<table class="table table-hover table-bordered table-condensed server-sort">
Die $ table var im Skript ist also tatsächlich ein div! (nur um klar zu sein ... oder nicht) :)
Hinweis: Ich verpacke es in eine Funktion, damit meine IDE die Funktion reduzieren kann;) aber es ist nicht obligatorisch!