这是HTML:
<div id="outer"> <div id="inner"></div> Test </div>
这是CSS:
#inner { float: left; height: 100%; }
使用 Chrome 开发人员工具检查后,内部 div 的高度为 0px。
如何强制它为父 div 高度的 100%?
为了#outer让高度基于其内容,并以此为基础#inner,使两个元素都绝对定位。
#outer
#inner
更多细节可以在CSS 高度属性的规范中找到,但本质上,如果高度为,则#inner必须忽略高度, 除非 绝对定位。然后高度将为 0, 除非 它本身是绝对定位的。#outer``#outer``auto #outer``#inner #inner
#outer``#outer``auto
#outer``#inner
<style> #outer { position:absolute; height:auto; width:200px; border: 1px solid red; } #inner { position:absolute; height:100%; width:20px; border: 1px solid black; } </style> <div id='outer'> <div id='inner'> </div> text </div>
但是…通过#inner绝对定位,float将忽略设置,因此您需要#inner明确选择宽度,并添加填充#outer以伪造我怀疑您想要的文本换行。比如下面的 padding就是+3#outer的宽度。#inner方便(因为重点是让#inner高度达到 100%)没有必要在下面包裹文本#inner,所以这看起来就像#inner是浮动的。
float
<style> #outer2{ padding-left: 23px; position:absolute; height:auto; width:200px; border: 1px solid red; } #inner2{ left:0; position:absolute; height:100%; width:20px; border: 1px solid black; } </style> <div id='outer2'> <div id='inner2'> </div> text </div>
我删除了我之前的答案,因为它基于对您目标的太多错误假设。