html - CSS 相对最高百分比在 Chrome 中不起作用

标签 html css

我想要地平线日出的效果。

我发现当父级的高度为auto时, 相对最高百分比的 child 在 Chrome 中不起作用。 但在 Firefox 中没问题。

案例可以简单的demo: https://jsfiddle.net/ja6Lngx4/

#A {
  position:relative;
  top:50%; left:50%;
}

<div style="width:200px;background:#aaa;">
<div id="A">123</div>
<div>ABC</div>
</div>

我知道如果指定了 parent 的高度, 百分比最高的将生效, 但也要求 parent 的高度必须适合内容。

我们只能通过 CSS 实现吗? 还是必须用 Javascript 来做?

最佳答案

不,您只能在 Javascript 中执行此操作,因为 Chrome 不会更改布局计算优先级,即使子项的顶部不会影响父项的尺寸。顶部百分比被视为高度百分比。

在 Javascript 中,您可以使用 getBoundingClientRect() 获取父级相对于整个视口(viewport)的尺寸(以 px 为单位),并使用该信息设置子级的动画。

关于html - CSS 相对最高百分比在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59385619/

相关文章:

html - 将文本换行到表格单元格内的新行

javascript - 如何在 iframe 中设置动态创建的元素的样式?

html - 如何自动调整框的大小以适应内容——使用 jQuery Mobile

javascript - 如果 url 等于链接的 href,则添加一个类

html - 在右侧放置许多不同的 div 元素,每个元素的高度和宽度均为 100%(全屏)

javascript - contenteditable 中的空格导致换行

java - 解决主机/端口查找的更好设计是什么

html - 为 Ionic App 设计带有关闭图标的小图片库

CSS 半固定元素 - 后续问题

html - Flexbox 在摘要标签中不起作用