CSS: "transform: scale();"容器子项的错误位置

标签 css css-position transform scale

我有一个包含长内容的容器元素,该元素已缩放:

.container {
  transform: scale(0.9);
}

在这个容器中,我有一个子 div,它曾经是一个弹出窗口。它绝对定位在前 50%

.popup {
  width: 300px;
  height: 200px;
  position: absolute;
  left: 50%;
  top: 50%;
}

但不幸的是,当容器缩放时,这个 50% 不起作用。如果它出现在页面底部,我需要使用 ~240%

你现在有一些关于在缩放元素的子元素上应用定位的细节吗?

演示: http://labs.voronianski.com/test/scaled-positioning.html

最佳答案

添加到.wrap:

.wrap {
  ...
  position: relative;
  /*some prefix*/-transform-origin: 0 0;
}

您需要重新定位 .popup(现在引用框架是 .wrap,而不是 html 元素),但在 Chrome 中,缩放切换在此更改后工作正常。

参见:When using CSS Scale in Firefox, element keeps original position

关于CSS: "transform: scale();"容器子项的错误位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18943773/

相关文章:

css - 如何使外部事件框动态扩展和空心圆对齐

javascript - .hover 在鼠标离开时不起作用

html - 固定标题和窗口调整大小

html - 使用 CSS、HTML 和 Bootstrap 将位置响应元素放置在屏幕底部

android - 在 Android 上裁剪图像的透视变换

javascript - D3 - 使用 D3 的 SVG 符号缩放

html - 如何使页脚接触边缘?

css - 如何让div与一个 "position: fixed"容器重叠并垂直滚动固定容器内容

jquery - 仅在 IE10 Metro 模式下出现奇怪的过渡行为

html - 调整浏览器大小时元素丢失位置