我正在尝试设置一个2列布局,其中左侧区域是固定的,主要内容是流畅的。我在这里看到了几个答案,这些答案往往有效。但是,当我在“left”区域中使用“jsTree”并在主/内容区域中使用jQuery UI选项卡时,会出现一些奇怪的行为。
HTML
<div id="main">
<div id="left">
<div id="tree">
</div>
</div>
<div id="right">
<ul>
<li><a href="#a">A</a></li>
<li><a href="#b">B</a></li>
<li><a href="#c">C</a></li>
</ul>
<div id="a">
<h3>A is here</h3>
</div>
<div id="b">
<h3>B is here</h3>
</div>
<div id="c">
<h3>C is here</h3>
</div>
</div>
</div>
CSS
#left {
float: left;
width: 200px;
overflow: auto;
}
#right {
margin: 0 0 0 200px;
}
的javascript
$(document).ready(function() {
$('#right').tabs();
$('#tree').jstree({
"plugins" : [ "json_data", "themes"],
"json_data" : {
"data" : [
{
"data" : "A node",
"children" : [ "Child 1", "Child 2" ]
},
{
"attr" : { "id" : "li.node.id" },
"data" : {
"title" : "Long format demo",
"attr" : { "href" : "#" }
}
}
]
},
});
});
我遇到的问题是,当我展开树(左侧)时,右边的标签开始变得时髦。包含标签的区域(我相信的元素)垂直增长。
答案 0 :(得分:3)
.ui-helper-clearfix
执行此操作:
.ui-helper-clearfix::after {
clear: both;
content: '.';
display: block;
height: 0px;
visibility: hidden;
}
问题是clear:both
。您可以通过以下方式获得所需的清除而不会丢失全宽度块显示:
#right .ui-helper-clearfix {
clear: none;
overflow: hidden;
}
用clear:both
clear-fix 取代overflow:hidden
clear-fix 。
答案 1 :(得分:1)
小部件标签页头有明确的解决方法。 updated fiddle。您可以使用非浮动布局修复此问题,或者像这样覆盖css:
#right .ui-helper-clearfix { display: inline-block; }
这使得标题不会扩展容器的整个宽度。
答案 2 :(得分:0)
您需要做的就是简单地调整您的CSS,如下所示:
#left {
float: left;
width: 23%;
overflow: auto;
}
#right {
float: left;
width: 75%;
display: block;
}
这也可以解决标签容器不会扩展全宽的问题。虽然您可以将#right的宽度百分比调整为您喜欢的任何内容。