我在这里,因为其他类似的问题无法解决我的特殊问题。
我需要right div
始终保持100%的高度,parent
高度取决于left div
高度,这取决于内部的内容。
这是html:
<div class="container clearfix">
<div class="left"></div>
<div class="right"></div>
</div>
这是CSS:
.container{
min-height: 10px;
width: auto;
height: auto;
background-color: #eeeeee;
}
.left{
position: relative;
float: left;
min-height: 100px;
width: 50px;
background-color: #dddddd;
}
.right{
min-height: 20px;
position: relative;
float: left;
height: 100%;
width: 50px;
background-color: #dddddd;
}
.
.clearfix:after
{
content: ".";
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.clearfix {
display: inline-block;
}
注意:
我正在使用clearfix
如果您可以在jsfiddle
这是jsFiddle http://jsfiddle.net/C9Kmx/32/
答案 0 :(得分:14)
制作正确的div position:absolute;
并制作父div position:relative;
,然后height:100%;
将适用于正确的div。确保您也相应地调整其x位置和宽度。在这个例子中,我给它一个left:50px
,以确保它出现在左栏的右侧。
JSFiddle http://jsfiddle.net/e9mvD/
答案 1 :(得分:4)
您可以在此布局中使用table-cell
属性的display
值,并删除float
,如下所示:
.left, .right{
display:table-cell;
}
答案 2 :(得分:3)
您可以使用flexbox和一些创造力来实现这一目标。
RequestOptions
.container {
display: flex;
background: black;
padding: 5px;
width: 300px
}
.left {
height: 200px;
flex: 1 0 0px;
background: blue;
}
.right {
flex: 1 0 0px;
overflow: auto;
background: green;
}
.column {
display: flex;
flex-direction: column;
width: 20%;
}
答案 3 :(得分:1)
为正确的div提供position:fixed
和height:100%
。这将解决您的问题。
答案 4 :(得分:1)
通过阅读您对其他解决方案的评论,我很清楚,只有您的解决方案是在代码中实现一些JS。但是,这不是问题。
答案 5 :(得分:0)
尝试将容器的高度设为固定值
这也将解决问题。刚试过jsFiddle
.container
{
min-height: 10px;
width: auto;
height: 100px;
background-color: #eeeeee;
}
答案 6 :(得分:0)
.parent{
position: relative;
width: 100px;
height: auto;
}
.child{
width: 50px;
height: 100px;
background-color: red;
}
.child_absolute{
position: absolute;
left: 50px;
top: 0;
bottom: 0;
width: 50px;
background-color: blue;
}
<div class="parent">
<div class="child"></div>
<div class="child_absolute"></div>
</div>