使用css水平+垂直翻转/镜像图像

sam*_*sam 48 html css transform css-filters

我试图翻转图像以4种方式显示它:原始(无变化),水平翻转,垂直翻转,水平翻转+垂直翻转.

要做到这一点,我在下面做,除了水平+垂直翻转,它工作正常,任何想法为什么这不会工作?

我在这里提出了一个问题的小提琴:https://jsfiddle.net/7vg2tn83/

.img-hor {
        -moz-transform: scaleX(-1);
        -o-transform: scaleX(-1);
        -webkit-transform: scaleX(-1);
        transform: scaleX(-1);
        filter: FlipH;
        -ms-filter: "FlipH";
}

.img-vert {
        -moz-transform: scaleY(-1);
        -o-transform: scaleY(-1);
        -webkit-transform: scaleY(-1);
        transform: scaleY(-1);
        filter: FlipV;
        -ms-filter: "FlipV";
}

.img-hor-vert {
        -moz-transform: scaleX(-1);
        -o-transform: scaleX(-1);
        -webkit-transform: scaleX(-1);
        transform: scaleX(-1);
        filter: FlipH;
        -ms-filter: "FlipH";

        -moz-transform: scaleY(-1);
        -o-transform: scaleY(-1);
        -webkit-transform: scaleY(-1);
        transform: scaleY(-1);
        filter: FlipV;
        -ms-filter: "FlipV";
}
Run Code Online (Sandbox Code Playgroud)

pgr*_*ber 64

试试这个:

.img-hor-vert {
    -moz-transform: scale(-1, -1);
    -o-transform: scale(-1, -1);
    -webkit-transform: scale(-1, -1);
    transform: scale(-1, -1);
}
Run Code Online (Sandbox Code Playgroud)

更新小提琴:https://jsfiddle.net/7vg2tn83/1/

它之前没有用,因为你压倒了transform你的css.所以不是两者都做,而是做了最后一个.有点像你做了background-color两次,它会覆盖第一个.


Fra*_*Rem 14

你可以做一个transform: rotate(180deg);水平+垂直翻转.

  • 这仅适用于对称图像。因为你会旋转而不是翻转图像。例如:取字母 (d)。旋转:d | 页。翻转:d | 湾 (3认同)
  • @ warkentien2按照OP的要求将其水平+垂直翻转。 (2认同)

小智 11

要执行反射,您可以使用变换CSS属性以及此格式的rotate()CSS函数:

transform: rotateX() rotateY();
Run Code Online (Sandbox Code Playgroud)

函数rotateX()将沿x轴旋转元素,函数rotateY()将沿y轴旋转元素.我发现我的方法直观,因为人们可以在心理上可视化旋转.在您的示例中,使用我的方法的解决方案将是:

.img-hor {
  transform: rotateY(180deg); // Rotate 180 degrees along the y-axis
}

.img-vert {
  transform: rotateX(180deg); // Rotate 180 degrees along the x-axis
}

.img-hor-vert {
  transform: rotateX(180deg) rotateY(180deg); // Rotate 180 degrees on both
}
Run Code Online (Sandbox Code Playgroud)

JS小提琴演示解决方案是https://jsfiddle.net/n20196us/1/