【发布时间】:2013-08-20 10:12:14
【问题描述】:
我正在尝试在由float: left 提供支持的两列布局的右列中设置 JQuery UI 选项卡。
问题是:标签的标题被调整为与左列高度相同。
HTML:
<div id="zone_content">
<div id="zone_main">
<div id="zone_left">
<p>Stuff</p><p>Stuff</p><p>Stuff</p><p>Stuff</p><p>Stuff</p>
</div>
<div id="zone_tabs">
<ul>
<li><a href="#tabs-1">Tab 1</a></li>
<li><a href="#tabs-2">Another Tab</a></li>
</ul>
<div id="tabs-1">
<p>blah blah blah blah</p>
</div>
<div id="tabs-2">
<p>bloh bloh bloh bloh</p>
</div>
</div>
</div>
</div>
<script>
$(function() {
$("#zone_tabs").tabs();
});
</script>
CSS:
#zone_main {
overflow: auto;
width: 100%;
}
#zone_left {
float: left;
width: 250px;
}
#zone_tabs {
margin-left: 250px;
}
请参阅jsfiddle。
我注意到它可能与this one 是同一个问题,但是虽然在#zone_tabs 上添加float: left; 的答案可以更正标题高度,但它也会将标签向下推到左列末尾之后。 (当左列足够大时会这样做:在 jsfiddle 中为 250px;如果在指定的两个位置都将其减小到 100px,则选项卡会找到它们的预期位置。)
那么,谁能帮助我,解释一下为什么会发生这一切?
版本:Chrome 23 或 Firefox 23、JQuery 1.8.2、JQuery UI 1.9.1
【问题讨论】:
-
只需从#zone_tabs 中删除左侧边距并添加左侧浮动。当然,如果你的容器,#zone_main,宽度小于 250px(#zone_left 宽度)+#zone_tabs 宽度,它会将标签推到左列下。
-
@MihaiAlex:它像你说的那样工作,但在我的实际情况下,#zone_left 的宽度是 500px 并且它再次中断(标签被推到 #zone_left 下),通过玩弄 jsfiddle 可以看到。 #zone_main 的宽度为 100%,未指定。
-
...并且标签中的文本比示例中的长,这也导致了问题:jsfiddle.net/sbZ6C
标签: jquery css jquery-ui css-float jquery-ui-tabs