div本身就是它内容的高度。
我希望div包含两个子节点:另一个div(或左对齐的图像)和无序列表(ul)。内部div(或图像)将匹配父div的高度,父div高度将符合列表的高度(可包含任何合理数量的项目)。
我不确定如何设置父div的高度以匹配列表的高度,并使内部div与外部div的高度匹配。通过CSS正确完成。
我们很乐意接受替代解决方案,这只是我试图解决设计目标的一种方式。
答案 0 :(得分:4)
ul
。height: 100%
,我正在使用Star hack。如果您需要100%有效的CSS,则可以使用conditional comments或Star plus hack。<强> CSS:强>
#iContainer {
background: #ccc;
overflow: hidden;
position: relative
}
#iContainer div {
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
*height: 100% /* just for you, IE7 */
}
#iContainer img {
height: 100%
}
#iContainer ul {
float: right
}
<强> HTML:强>
<div id="iContainer">
<div><img src="https://dummyimage.com/500x700/f0f/fff" /></div>
<ul>
<li>list 1</li>
<li>list 2</li>
<li>list 3</li>
<li>list 4</li>
<li>list 5</li>
<li>list 6</li>
<li>list 7</li>
<li>list 8</li>
</ul>
</div>
The Big Pink Image:
答案 1 :(得分:3)
这会做你想做的事吗?
http://jsfiddle.net/Mutant_Tractor/CQG8s/
它使用一个小的(纯JS)脚本来测量页面加载时的列表高度,然后通过.style.height
方法动态设置div的高度:)
答案 2 :(得分:0)
如果您希望div与其容器的高度相匹配,请将其高度设置为100%。如果您希望div占用尽可能多的空间,请将其高度设置为auto(默认值)。
所以,听起来你正在寻找的布局是
<style type="text/css">
.scaledimage{height:100%;float:left}
.list{float:left;}
</style>
<div class="container">
<div class="scaledimage"></div>
<div class="list"></div>
<div>