Html 如何转置背景图像
有没有办法用CSS转置背景图像?(我所说的“转置”是指源图像中的每个像素x,y最终成为背景中的像素y,x。) 范例 源图像: 转置图像:Html 如何转置背景图像,html,css,background-image,Html,Css,Background Image,有没有办法用CSS转置背景图像?(我所说的“转置”是指源图像中的每个像素x,y最终成为背景中的像素y,x。) 范例 源图像: 转置图像: 如果我理解您的问题,您希望将图像旋转90度。沿x方向的像素变为沿y方向的像素。在CSS3中,这是一个转换 #myParentElement { -webkit-transform: rotate(90deg) scaleX(-1) /* updated to add flip */; -ms-transform: rotate(90deg) s
如果我理解您的问题,您希望将图像旋转90度。沿x方向的像素变为沿y方向的像素。在CSS3中,这是一个转换
#myParentElement
{
-webkit-transform: rotate(90deg) scaleX(-1) /* updated to add flip */;
-ms-transform: rotate(90deg) scaleX(-1);
transform: rotate(90deg) scaleX(-1);
filter: FlipH;
-ms-filter: "FlipH";
}
要对背景图像执行此操作,需要将CSS转换应用于具有背景图像的元素的父元素。对元素应用另一个变换,使其内容不被变换
#myParentElement
{
-webkit-transform: rotate(90deg) scaleX(-1);
-ms-transform: rotate(90deg) scaleX(-1);
transform: rotate(90deg) scaleX(-1);
filter: FlipH;
-ms-filter: "FlipH";
}
#myElement
{
-webkit-transform: rotate(-90deg) scaleX(-1);
-ms-transform: rotate(-90deg) scaleX(-1);
transform: rotate(-90deg);
filter: FlipH;
-ms-filter: "FlipH";
}
如果我理解你的问题,你想把图像旋转90度。沿x方向的像素变为沿y方向的像素。在CSS3中,这是一个转换
#myParentElement
{
-webkit-transform: rotate(90deg) scaleX(-1) /* updated to add flip */;
-ms-transform: rotate(90deg) scaleX(-1);
transform: rotate(90deg) scaleX(-1);
filter: FlipH;
-ms-filter: "FlipH";
}
要对背景图像执行此操作,需要将CSS转换应用于具有背景图像的元素的父元素。对元素应用另一个变换,使其内容不被变换
#myParentElement
{
-webkit-transform: rotate(90deg) scaleX(-1);
-ms-transform: rotate(90deg) scaleX(-1);
transform: rotate(90deg) scaleX(-1);
filter: FlipH;
-ms-filter: "FlipH";
}
#myElement
{
-webkit-transform: rotate(-90deg) scaleX(-1);
-ms-transform: rotate(-90deg) scaleX(-1);
transform: rotate(-90deg);
filter: FlipH;
-ms-filter: "FlipH";
}
事实上,在使用因子
-1
围绕Y轴缩放图像,然后应用-90度的旋转变换后,可以获得结果图像。试试这个:
div.transposed {
-webkit-transform-origin:left top;
-webkit-transform:scaleY(-1) rotate3d(0,0,1,-90deg);
}
请注意,我们必须旋转-90deg
而不是90deg
,因为我们以前使用scaleY
,它会将Y轴的正方向从上到下(向下)到下到上(向上)。事实上,scaleY(-1)
等于rotateX(180度)
,在3D中,这意味着Z轴的正方向将反转(而不是从屏幕向外,而是向内),因此旋转角度应该是-90度
,而不是我们可能认为的90度
请在基于webkit的浏览器上测试演示。事实上,在使用因子-1
围绕Y轴进行缩放,然后应用-90deg
的旋转变换后,可以获得结果图像。试试这个:
div.transposed {
-webkit-transform-origin:left top;
-webkit-transform:scaleY(-1) rotate3d(0,0,1,-90deg);
}
请注意,我们必须旋转-90deg
而不是90deg
,因为我们以前使用scaleY
,它会将Y轴的正方向从上到下(向下)到下到上(向上)。事实上,scaleY(-1)
等于rotateX(180度)
,在3D中,这意味着Z轴的正方向将反转(而不是从屏幕向外,而是向内),因此旋转角度应该是-90度
,而不是我们可能认为的90度
请在基于webkit的浏览器上测试演示。如果您所说的“转置”是指,它类似于“旋转270度并垂直反射”或“旋转90度并水平反射”
在这里,您可以找到“旋转背景”问题的完整解决方案:
旋转后,您可以通过transform:scaleY(-1)
或transform:scaleX(-1)
反射图像,如果“转置”的意思是,它类似于“旋转270度并垂直反射”或“旋转90度并水平反射”
在这里,您可以找到“旋转背景”问题的完整解决方案:
旋转后,您可以通过transform:scaleY(-1)
或transform:scaleX(-1)
反射图像使用此代码将元素上的背景旋转90度,而不会影响元素本身:
#myelement {
height: 164px;
overflow: hidden;
position: relative;
width: 79px;
}
#myelement:before {
background: url("http://i.stack.imgur.com/gMRiV.png") no-repeat;
content: "";
height: 79px;
left: -42px;
position: absolute;
top: 42px;
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
width: 164px;
z-index: -1;
}
以及html代码:
<div id="myelement">test</div>
测试
例如:
使用此代码在不影响图元本身的情况下,将图元上的背景旋转90度:
#myelement {
height: 164px;
overflow: hidden;
position: relative;
width: 79px;
}
#myelement:before {
background: url("http://i.stack.imgur.com/gMRiV.png") no-repeat;
content: "";
height: 79px;
left: -42px;
position: absolute;
top: 42px;
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
width: 164px;
z-index: -1;
}
以及html代码:
<div id="myelement">test</div>
测试
例如:
一张描述“转置”的图片很好理解你的意思。根据你的解释,你的意思是将其旋转90°?是的,他似乎想将其逆时针旋转90°。@Bartdude将其翻转45度。我认为它可以通过90度旋转和v/h翻转来完成。你可以通过旋转270度来完成相同的转换。一个描述“转置”的图像将很好地理解你的意思。从你的解释来看,你的意思是将其旋转90度?是的,他似乎想将其逆时针旋转90度。@Bartdude将其绕45度轴翻转。我认为它可以通过90度旋转和v/h翻转来完成。你可以通过旋转270度来完成相同的转换。我认为如果它也围绕垂直/水平轴翻转,这就可以实现。是否可以添加该操作?我不是舒尔您需要所有这些供应商前缀,如果您检查caIuse:您将看到自FF 16起未使用-moz-
,自Opera 12起未使用-o-
。所以我认为你需要的只有-webkit-
和-ms-
似乎仍然不起作用。我认为这两个转换应该出现在同一个“css语句”(或者不管它叫什么)中,否则第二个会覆盖第一个。尽管如此,+1,因为这是第一次,如果更正,将更加独立于浏览器。谢谢。然后将背景附加到父元素,子元素将文本或无背景信息恢复正常。如果我错了,请纠正我,但我要说的是(例如)-webkit transform:scaleX(-1)代码>似乎覆盖,而不是附加到-webkit transform:rotate(-90度)代码>但是如果你把它全部放在一个语句中-webkit转换:rotate(-90deg)scaleX(-1)代码>然后它就工作了。我想如果它也绕垂直/水平轴翻转,这就可以了。是否可以添加该操作?我不是舒尔您需要所有这些供应商前缀,如果您检查caIuse:您将看到自FF 16起未使用-moz-
,自Opera 12起未使用-o-
。所以我认为你需要的只有-webkit-
和-ms-
似乎仍然不起作用。我认为这两个转换应该出现在同一个“css语句”(或者不管它叫什么)中,否则第二个会覆盖第一个。尽管如此,+1,因为这是第一次,如果更正,将更加独立于浏览器。谢谢。将背景附加到父元素