我正在尝试构建一个中间有一个大 div 的页面,该页面“放置”在左侧和右侧的其他 div 上,代码位于问题的末尾。这三个 div 应该包含在另一个 div 中(称为外部),它的高度应该(几乎)正好是中间 div 的高度。因为中间 div 的高度不是固定的,所以外部 div 也是如此。
尝试使用相对定位将我的中间 div 设置在左侧和右侧的下方。设置中间 div 的 etop 会在中间 div 和外部 div 的下边框之间留下一个空白区域。使用绝对定位会导致外部 div 折叠。
我会很感激任何提示或建议。
副歌
<html>
<head>
<style type="text/css">
#outer {
width:300px;
border:1px solid #000000;
}
#left {
position:relative;
display:inline-block;
float:left;
margin:3px;
width:50px;
border:1px solid #C08080;
}
#right {
position:relative;
display:inline-block;
float:left;
left:185px;
margin:3px;
width:50px;
border:1px solid #C08080;
text-align:right;
}
#middle {
background-color: #FBE6AD;
display: inline-block;
overflow: hidden;
position: relative;
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
left: 50px;
top: -48;
width: 200px;
}
</style>
</head>
<body>
<div id='outer'>
<div id='left'>DIV Left</div>
<div id='right'>DIV Right</div>
<div id='middle'>
DIV Middle<br>
with an<br>
unknown height<br>
which has effect on the outer height.
</div>
</div>
</body>
</html>
它应该如下所示:
但我明白了:
或这个:
解决方案(由 fenix 触发)是:
<html>
<head>
<style type="text/css">
#outer {
border:1px solid #000000;
display:inline-block;
width:300px;
}
#x {
display:table-row;
}
#left {
background-color: #c0c0c0;
position:relative;
display:inline-block;
float:left;
margin:3px -5px 0px 3px;
width:50px;
border:1px solid #C08080;
padding:0px;
}
#right {
background-color: #c0c0c0;
position:relative;
display:inline-block;
float:left;
margin:3px 3px 0px -5px;
width:50px;
border:1px solid #C08080;
text-align:right;
}
#middle {
background-color: rgba(250, 220, 200, 0.8);
display: inline-block;
float:left;
overflow: hidden;
position: relative;
box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.5);
width: 200px;
margin:3px 0px 6px 0px;
z-index:10;
}
</style>
</head>
<body>
<div id='outer'>
<div id='x'>
<div id='left'>DIV Left</div>
<div id='middle'>
DIV Middle<br>
with an<br>
unknown height<br>
which has effect on the outer height.
</div>
<div id='right'>DIV Right</div>
</div>
</div>
</body>
</html>
这结束于: