我在css中有一个svg作为背景图像,我想翻转它。 (scale(-1, 1)
)
当我尝试正常转换时,它不会成为中心,看起来很奇怪。
有没有办法在没有JS的情况下围绕中心翻转整个SVG?
这是一个使用HTML的演示,而不是CSS背景图片: https://codepen.io/anon/pen/bRVqwz
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 20'><path d='M2,20l-2-2l8-8L0,2l2-2l10,10L2,20z'/></svg><br />
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 20'><path d='M2,20l-2-2l8-8L0,2l2-2l10,10L2,20z' transform="scale(-1, 1)"/></svg>
svg {
width: 50px;
height: 50px;
}
答案 0 :(得分:3)
首先,要了解如何翻转SVG,您需要了解viewBox
的工作原理(根据Mozilla MDN):
viewBox属性的值是由空格和/或逗号分隔的四个数字min-x,min-y,width和height的列表,它们指定用户空间中应该映射到边界的矩形由给定元素建立的视口,考虑属性preserveAspectRatio。
所以,如果你想翻转你的svg,首先需要transform: scaleX(-1)
。
然后,您需要将[min-x]
的负数转移到[width]
。
例如:
原始SVG:viewBox='0 0 12 20'
翻转SVG:viewBox='-12 0 12 20'
答案 1 :(得分:0)
您可以尝试使用x和y transform="rotate(180 5 10)"
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 20'><path d='M2,20l-2-2l8-8L0,2l2-2l10,10L2,20z' transform="rotate(180 5 10)"/></svg>