以百分比表示的最小高度属性不起作用[重复]

Posted

技术标签:

【中文标题】以百分比表示的最小高度属性不起作用[重复]【英文标题】:Min-height property in percents doesn't work [duplicate] 【发布时间】:2013-06-19 16:52:47 【问题描述】:

这是文档的基本外观:

<body>
<div id="content_holder">
<div class='all_links'>
</div>
  <div class="item">
        <div class="notice"></div>
    </div>
</div>
<div id="bottom_nav">
</div>
</body>

还有 CSS:

html, body 
    margin: 0;
    padding: 0;
    min-height: 100%;
    

body
overflow-y:scroll;
min-width: 1024px;


#content_holder
    min-height: 100%;


.item 
width: 800px;
position: relative;
top: 100px;
left: 50%;
margin-left: -400px;
text-align: center;
min-height: 100%;

在这个特定页面上html, body, .item 属性关于 min-height 的问题不能以百分比显示。

在其他页面上一切正常。 .item 的父级是 body。我不明白这里有什么问题。 当我使用 Chrome 开发工具检查高度时,此页面上的正文高度为 360 像素,当然,这比应有的低两倍。

为什么?

UPD:fiddle

我发现,height 属性不适用于 #content_holder,而适用于 body

【问题讨论】:

有什么理由拒绝投票? 如果你为这个问题制作了一个 jsFiddle 会有所帮助:jsfiddle.net 这是一个非常令人困惑的问题。 请以jsfiddle.net为例。这将非常有帮助。 @RiccardoPasianotto,你是什么意思混淆?有什么提示可以改进这个问题吗? 【参考方案1】:

height 以百分比设置在任何元素上时,它的直接父元素必须指定height(不是百分比,而是pxem)。 该规则的一个奇怪的例外是&lt;html&gt; 元素,如果给定它height: 100%,则直接子元素可以将height 作为百分比(即&lt;body&gt; 元素)。 至于设置min-height: 100%,这会将初始大小设置为 100% 高度并允许元素超过该高度。 我很确定min-height 也遵循与height 相同的上述规则——对于以百分比设置min-height 的任何元素,它的直接父元素必须指定height(不是作为百分比),除了&lt;html&gt; 元素设置为height 作为百分比。 但是,如果一个元素将height 设置为pxem 值,并且其直接子元素将height 设置为百分比,则孙元素的height 可以设置为百分比,依此类推...

【讨论】:

【参考方案2】:

只需将min-height: 100% 更改为height: 100%

您网页的高度将为浏览器屏幕的 100% 或内容高度的 100%,以较大者为准。

【讨论】:

是的,但如果内容实际上超过 100% 高度? 主体默认为 100% w/h。我认为没有理由在 css 中使用它。 谢谢,我投了赞成票,但整个问题是将 body 和 html 设置为 100%,并将 #content_holder 的最小高度设置为 100% 刚刚找到这个并设置body html height:100%; 成功了。

以上是关于以百分比表示的最小高度属性不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

iOS 13:调整 UITabBar 高度不起作用 [重复]

HTML,正文高度 100% 不起作用

背景位置百分比不起作用[重复]

边距顶部/底部百分比在 Firefox 中不起作用 [重复]

关于height:100%

小程序 给最外层view设置百分之百高度不起作用