【问题标题】:Using CSS Transform Scale to match the parent element使用 CSS Transform Scale 匹配父元素
【发布时间】:2014-03-05 23:29:45
【问题描述】:

我有一个元素需要缩放到父元素的 100%。因为该元素包含基于像素的动画以及可以缩放的图像,所以我不能使用百分比。有没有办法使用 css 转换比例来做到这一点?

【问题讨论】:

  • 我想有一个技巧可以防止使用百分比时会发生的问题。你能解释一下吗?您想确保您的图片没有以错误的纵横比或更高的质量比例缩放吗?
  • 动画是通过使用 css sprite 来实现的。对该元素大小的任何更改都会破坏动画。 spritely.net
  • 你能发布一些代码让我们试试吗? Scale is always percentual,不是吗? (在这种情况下,它扩展到 200%)
  • 哦,实际上可以使用可扩展的 img 实现相同的功能,但我想您不想修改库!将来必须将其添加到库中;)
  • jsfiddle.net/aV9R3 只是想发布这个以防万一有人遇到类似问题。

标签: scale css-transforms


【解决方案1】:

相对 css 变换 值是相对于自身(边框)。例如一些绝对居中 sn-p:

width: 100px;
height: 200px;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);

在 Firefox 中,您可以尝试对父元素进行一些修改:

background-image: -moz-element(#yourElementToScale);
background-size: contain;

但通常在纯 CSS 中不使用宽度/高度百分比是不可能的。如果您想使用 javascript,只需按以下因素进行缩放:

var scaleX = parentElement.offsetWidth / element.offsetWidth;
var scaleY = parentElement.offsetHeight / element.offsetHeight;

将此比例因子应用为变换可能如下所示:

transform: scale(scaleX, scaleY);

【讨论】:

    猜你喜欢
    • 2013-08-02
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2017-04-14
    • 2013-10-21
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多