如何使用CSS翻转任何背景图片?可能吗?
currenty我使用这个箭头图像中background-image
的li
CSS中
开启:visited
我需要水平翻转此箭头。我可以这样做来制作另一个箭头图像,但我只是好奇地知道是否有可能在CSS中翻转图像:visited
如何使用CSS翻转任何背景图片?可能吗?
currenty我使用这个箭头图像中background-image
的li
CSS中
开启:visited
我需要水平翻转此箭头。我可以这样做来制作另一个箭头图像,但我只是好奇地知道是否有可能在CSS中翻转图像:visited
Answers:
您可以使用CSS将其水平翻转...
a:visited {
-moz-transform: scaleX(-1);
-o-transform: scaleX(-1);
-webkit-transform: scaleX(-1);
transform: scaleX(-1);
filter: FlipH;
-ms-filter: "FlipH";
}
如果您想垂直翻转...
a:visited {
-moz-transform: scaleY(-1);
-o-transform: scaleY(-1);
-webkit-transform: scaleY(-1);
transform: scaleY(-1);
filter: FlipV;
-ms-filter: "FlipV";
}
来源。
-webkit-transform: scaleX(-1);
就足够了吗?
<a>
,我只想翻转背景图像。您提供的代码是翻转整个元素的方法
span
,然后将其翻转。
<li><a href="#"><span>text</span></a></li>
它也将文本翻转,因此与您给定代码相反的内容将文本翻转,以便我可以li a span { }
在CSS中为它编写翻转代码
在看到Alex的答案出现翻转的线索后,我发现仅翻转背景而不是整个元素的方法。谢谢亚历克斯的回答
的HTML
<div class="prev"><a href="">Previous</a></div>
<div class="next"><a href="">Next</a></div>
的CSS
.next a, .prev a {
width:200px;
background:#fff
}
.next {
float:left
}
.prev {
float:right
}
.prev a:before, .next a:before {
content:"";
width:16px;
height:16px;
margin:0 5px 0 0;
background:url(http://i.stack.imgur.com/ah0iN.png) no-repeat 0 0;
display:inline-block
}
.next a:before {
margin:0 0 0 5px;
transform:scaleX(-1);
}
-webkit-transform:scaleX(-1);
铬
根据w3schools:http: //www.w3schools.com/cssref/css3_pr_transform.asp
Internet Explorer 10,Firefox和Opera中支持transform属性。Internet Explorer 9支持替代方法-ms-transform属性(仅2D转换)。Safari和Chrome支持替代方法-webkit-transform属性(3D和2D转换)。Opera仅支持2D变换。
这是2D转换,因此它可以在Chrome,Firefox,Opera,Safari和IE9 +上使用供应商前缀工作。
使用的其他答案:在阻止其翻转内部内容之前。我在页脚上使用了它(以垂直镜像标题中的图像):
HTML:
<footer>
<p><a href="page">Footer Link</a></p>
<p>© 2014 Company</p>
</footer>
CSS:
footer {
background:url(/img/headerbg.png) repeat-x 0 0;
/* flip background vertically */
-webkit-transform:scaleY(-1);
-moz-transform:scaleY(-1);
-ms-transform:scaleY(-1);
-o-transform:scaleY(-1);
transform:scaleY(-1);
}
/* undo the vertical flip for all child elements */
footer * {
-webkit-transform:scaleY(-1);
-moz-transform:scaleY(-1);
-ms-transform:scaleY(-1);
-o-transform:scaleY(-1);
transform:scaleY(-1);
}
因此,您最终将元素翻转,然后重新翻转其所有子元素。也适用于嵌套元素。
值得一提的是,对于基于Gecko的浏览器,:visited
由于造成了隐私泄漏,因此您无法将其关闭。参见http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/
您可以翻转垂直和水平的同时
-moz-transform: scaleX(-1) scaleY(-1);
-o-transform: scaleX(-1) scaleY(-1);
-webkit-transform: scaleX(-1) scaleY(-1);
transform: scaleX(-1) scaleY(-1);
借助transition属性,您可以轻松翻页
-webkit-transition: transform .4s ease-out 0ms;
-moz-transition: transform .4s ease-out 0ms;
-o-transition: transform .4s ease-out 0ms;
transition: transform .4s ease-out 0ms;
transition-property: transform;
transition-duration: .4s;
transition-timing-function: ease-out;
transition-delay: 0ms;
实际上,它会翻转整个元素,而不仅仅是background-image
SNIPPET
function flip(){
var myDiv = document.getElementById('myDiv');
if (myDiv.className == 'myFlipedDiv'){
myDiv.className = '';
}else{
myDiv.className = 'myFlipedDiv';
}
}
#myDiv{
display:inline-block;
width:200px;
height:20px;
padding:90px;
background-color:red;
text-align:center;
-webkit-transition:transform .4s ease-out 0ms;
-moz-transition:transform .4s ease-out 0ms;
-o-transition:transform .4s ease-out 0ms;
transition:transform .4s ease-out 0ms;
transition-property:transform;
transition-duration:.4s;
transition-timing-function:ease-out;
transition-delay:0ms;
}
.myFlipedDiv{
-moz-transform:scaleX(-1) scaleY(-1);
-o-transform:scaleX(-1) scaleY(-1);
-webkit-transform:scaleX(-1) scaleY(-1);
transform:scaleX(-1) scaleY(-1);
}
<div id="myDiv">Some content here</div>
<button onclick="flip()">Click to flip</button>