gpt4 book ai didi

cross-browser - 从具有 min-height 属性的父级继承的子级 div 的高度

转载 作者:技术小花猫 更新时间:2023-10-29 10:31:22 26 4
gpt4 key购买 nike

如果这是一个老问题或已知问题,我很抱歉,但我无法在线找到答案。如果我有代码

<style>
html, body { height: 100%; width: 100%;}
#div1 {height:50%; min-height:200px;background-color:red;}
#div2 {height:100%; background-color:black;}
</style>
<body>
<div id="div1"><div id="div2"></div></div>
</body>

然后在 firefox 中,黑色内部 div 会随着屏幕缩小而缩小并停在 200px 高度处。然而,在 webkit 浏览器中,红色的外部 div 停止了,但内部 div 继续缩小,就好像它在没有 min-height 属性的父 div 中一样。

是否有一个简单的修复方法可以使 webkit 版本与 firefox 渲染一致?如果将 min-height:inherit 放在内部 div 上,则可以正常工作,但如果一个 div 中有许多 div,则需要在每个子 div 上使用 min-height:inherit。有没有更优雅的解决方案?

最佳答案

是的,这是一个 WebKit 错误,bug 26559 .

height in % static-or-relative-positioned elements 是相对于包含 block 的规定 height 属性计算的,而不是计算出的高度考虑了 min-heightmax-height。宽度不会发生同样的情况。

您可以在 CSS 2.1 中看到它的来源。其中指出必须显式设置包含 block 的高度才能使 % 起作用。但它没有明确说明“明确”是什么意思!浏览器认为这意味着必须将 height 属性设置为非自动值,这很公平,除了 height 现在不是 height 的全部.其他浏览器允许 min-height/max-height 影响要使用的高度,但不允许它表示“显式”。 WebKit 通过在计算中使用 only height 而不是最小/最大来走得更远(这绝对不是规范强制要求的)。

作为变通方法,您可以尝试绝对定位,这不会受到影响。相对定位外部 div,绝对定位内部 at left: 0;顶部:0;宽度:100%;高度:100%

关于cross-browser - 从具有 min-height 属性的父级继承的子级 div 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3808512/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com