CSSを使用して背景画像を反転するには?出来ますか?
私はこの矢印画像を使用していcurrenty background-image
のli
CSSに
オン:visited
この矢印を水平に反転する必要があります。矢印の別の画像を作成するためにこれを行うことができますが、CSSで画像を反転できることを知りたくてたまらない:visited
CSSを使用して背景画像を反転するには?出来ますか?
私はこの矢印画像を使用していcurrenty background-image
のli
CSSに
オン:visited
この矢印を水平に反転する必要があります。矢印の別の画像を作成するためにこれを行うことができますが、CSSで画像を反転できることを知りたくてたまらない:visited
回答:
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
ただし、アイコンをaに配置し、それを反転させることができます。
<li><a href="#"><span>text</span></a></li>
すると、テキストも反転するので、テキストのフリップを解除するためのギブコードの反対になるのでli a span { }
、CSSでのフリップ解除コードを記述できます
アレックスの答えを裏返す手がかりを見た後、要素全体ではなく背景のみを裏返す方法を見つけました。あなたの答えをありがとうアレックス
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);
}
こちらの例を参照してくださいhttp://jsfiddle.net/qngrf/807/
-webkit-transform:scaleX(-1);
クローム用
w3schoolsによると:http : //www.w3schools.com/cssref/css3_pr_transform.asp
変換プロパティは、Internet Explorer 10、Firefox、およびOperaでサポートされています。Internet Explorer 9は、代替の-ms-transformプロパティをサポートしています(2D変換のみ)。SafariとChromeは、代替の-webkit-transformプロパティ(3Dおよび2D変換)をサポートしています。Operaは2D変換のみをサポートしています。
これは2D変換であるため、Chrome、Firefox、Opera、Safari、IE9 +でベンダープレフィックスを使用して動作するはずです。
他の回答が:beforeを使用して、内部コンテンツを反転させないようにしました。これをフッターで使用しました(ヘッダーの画像を垂直方向にミラーリングするため)。
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
スニペット
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>