你如何设置 jquery 选项卡以形成 100% 的高度?
我还需要调整其中的 iframe 的大小以扩展到 100% 的高度。
谢谢你!
要调整 UI 选项卡的大小(至少是最新的 1.7.2 版本),它使用以下代码:
$ (document).ready (function () {
function resizeUi() {
var h = $(window).height();
var w = $(window).width();
$("#tabs").css('height', h-95 );
$(".ui-tabs-panel").css('height', h-140 );
};
var resizeTimer = null;
$(window).bind('resize', function() {
if (resizeTimer) clearTimeout(resizeTimer);
resizeTimer = setTimeout(resizeUi, 100);
});
resizeUi();
}
加上以下CSS:
#tabs {
display: inline-block;
width:325px;
}
您必须根据需要编辑一些数字。
如果它对其他人有任何用处,我会在“显示”和“添加”中添加一些回调,以便始终获得完美的高度。在我的情况下,顶部容器具有类“ui-layout-pane”(因为我使用 jquery 布局),但这应该适用于任何类。
myTab = $("#tabs").tabs({
show: function(e,ui){
var $c = $(ui.panel), h = parseInt($(ui.tab).parent().outerHeight());
while ( $c.length > 0 && !$c.hasClass("ui-layout-pane") ){
h += ( $c.outerHeight(true) - $c.innerHeight() );
$c = $c.parent();
}
h = parseInt($c.innerHeight() - h );
$(ui.panel).height(h);
return true;
},
add: function(e,ui){
$(this).tabs("select",ui.index);
}
});
我认为您不能仅使用 css 可靠地(跨浏览器)做到这一点。
也许您应该使用 jquery 来获取页面的高度并像这样设置每个元素:
$(window).resize(function() {
var wh = parseInt($(window).height());
if ($.browser.opera) {
wh = $.browser.version > "9.5" ? document.documentElement["clientHeight"] : wh;
}
$('#elementid').css("height", wh);
});
您可以使用高度为 100% 的 div 让选项卡内容展开以覆盖整个屏幕高度。
对于 iframe 调整大小,请参见此处。
您是否尝试过使用 CSS 方法设置高度属性:
$("#ID OF YOUR TAB ELEMENT").css("height","100%");