当前位置: 首页 > 面试题库 >

如何使浮动div的父级高度为100%?

邹坚壁
2023-03-14
问题内容

这是HTML:

<div id="outer">
    <div id="inner"></div>
    Test
</div>

这是CSS:

#inner {
  float: left;
  height: 100%;
}

使用Chrome开发人员工具检查后,内部div的高度为0px。

我如何强制其为父div高度的100%?


问题答案:

为了使#outer高度基于其内容并#inner基于其高度,使两个元素都绝对定位。

可以在css height属性的规范中找到更多详细信息,但本质上,如果的height为,则#inner必须忽略#outerheight , 除非_绝对定位。然后,高度将为0, _除非 将其自身绝对定位。#outer``auto #outer``#inner #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以伪造我怀疑您想要的自动换行。例如,在下面,填充#outer的宽度为#inner+3。方便地进行(因为整个要点是将#inner高度提高到100%)#inner,因此不需要在下面包装文字,因此看起来就像#inner是浮动的。

<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>

我删除了之前的答案,因为它基于对您的目标的太多错误假设。



 类似资料:
  • 问题内容: 我的页面结构为: 现在,DIV将具有更多内容,因此DIV的高度将根据子DIV的增加而增加。 但是问题是身高没有增加。如何使它的高度等于父代的高度? 问题答案: 对于元素,添加以下属性: 然后针对这些:

  • 问题内容: 我的CSS中包含以下内容。所有边距/边距/边界均全局重置为0。 现在,当我将HTML编写为 页面正确呈现。但是,当我检查元素时,显示为高。我会一直期待它扩大,直到年底和…为什么会出现这种情况? 同样,页面呈现良好。这种行为使我感到困惑。 问题答案: 浮动内容不会影响其容器的高度。元素不包含不浮动的内容(因此,没有什么可以阻止容器的高度为0,就好像它是空的一样)。 在容器上进行设置将通过

  • 问题内容: 我有一个具有以下结构的网站: 导航在左侧,内容div在右侧。内容div的信息是通过PHP获取的,因此每次都不同。 无论加载哪个页面,如何垂直缩放导航使其高度与内容div的高度相同? 问题答案: 注意 :此答案适用于不支持Flexbox标准的旧版浏览器。 我建议您看看使用Cross-Browser CSS和NoHacks的等高列。 基本上,以与浏览器兼容的方式使用CSS做到这一点并不是一

  • 问题内容: 我的CSS中包含以下内容。所有边距/边距/边界均全局重置为0。 现在,当我将HTML编写为 页面正确呈现。但是,当我检查元素时,显示为高。我会一直期待它扩大,直到年底和…为什么会出现这种情况? 同样,页面呈现良好。这种行为使我感到困惑。 问题答案: 浮动内容不会影响其容器的高度。元素不包含不浮动的内容(因此,没有什么可以阻止容器的高度为0,就好像它是空的一样)。 在容器上进行设置将通过

  • 问题内容: 我有2个div并排。我不知道它们的高度,它根据内容而改变。有没有一种方法可以确保它们始终保持相同的高度,即使其中一个拉伸时也只能使用CSS? 我做了一个小提琴来展示。我希望红色和蓝色的div高度相同… 这是CSS: 问题答案: 您可以尝试使用float来代替使用float。但是,您可能会发现某些较旧的浏览器不了解此规则。见下文:

  • 问题内容: 我有一个带两个孩子的容器。第一个孩子有给定的身高。如何让第二个孩子占据容器的“自由空间” 而不给其指定高度? 在示例中,粉红色也应占据白色空间。 与此问题类似:如何使div占据剩余高度? 但是我不想摆 绝对的位置 。 问题答案: 可以通过多种方式扩展子级以填充剩余的空间,具体取决于您希望获得的浏览器支持以及是否具有定义的高度。 样本 格网 CSS的布局提供了另一种选择,尽管它可能不如F