Jawaban dari Micheal lebih akurat. Bisakah Anda memperbarui jawaban yang benar? Karena jawaban yang Anda tandai benar bukanlah cermin melainkan rotasi 180 derajat.
Sanket Sahu
@PeteWilson,? Apakah ✂ char begitu umum? Untuk apa itu digunakan?
Pacerier
4
Ketahuilah bahwa rotasi berbeda tergantung pada penerapan emoji. Di Apple emoji setelnya mengarah ke bawah.
Akkumulator
Jawaban:
429
Anda dapat menggunakan transformasi CSS untuk mencapai ini. Pembalikan horizontal akan melibatkan penskalaan div seperti ini:
Ini tentu saja merupakan jawaban yang paling sesuai dengan standar, sayangnya kita belum hidup di dunia di mana ini benar-benar berfungsi untuk semua kasus penggunaan.
Chris Sobolewski
Bisakah Anda menyertakan awalan browser yang sebenarnya dalam jawaban Anda, dengan awalan bukan awalan terakhir? CSS yang Anda berikan tidak berfungsi.
Serrano
@SerranoPereira memang, terima kasih atas sarannya. Jawaban diubah.
metodologi tindakan
Ini harus menjadi jawaban yang benar karena ini adalah cermin sungguhan. Jawaban yang dipilih hanyalah sebuah putaran yang dalam kasus asimetris apapun tidak akan memberikan bayangan cermin.
Kedua parameter tersebut adalah sumbu X, dan sumbu Y, -1 akan menjadi cermin, tetapi Anda dapat menskalakan ke ukuran apa pun yang Anda suka sesuai dengan kebutuhan Anda. Bisa terbalik dan mundur (-1, -1).
Jika Anda tertarik dengan opsi terbaik yang tersedia untuk dukungan lintas browser pada tahun 2011, lihat jawaban lama saya .
Secara teknis ini bukan cermin. itu diputar. Jadi itu hanya akan bekerja dengan beberapa jenis elemen
borisrorsvort
4
Saya memiliki beberapa masalah di Chrome sampai saya menambahkan display: inline-block ke span saya (menggunakan font pictos)
Clarence Liu
1
Mengingat bahwa ketika pertanyaan ini diajukan, transformasi browser tidak didukung secara luas, saya berpendapat bahwa ini adalah jawaban yang benar. Faktanya, transformasi tidak didukung hingga IE 9, jadi saya berpendapat bahwa ini MASIH jawaban yang benar, setidaknya untuk beberapa saat lagi.
Chris Sobolewski
Jawaban ini salah, ini bukan cermin. Ini hanya berfungsi dalam satu kasus ini karena simbol yang diberikan dalam contoh asimetris vertikal.
gregtczap
Meskipun ini sendiri berguna, ini bukanlah jawaban untuk pertanyaan yang diajukan. Saya menemukan pertanyaan ini melalui mesin pencari karena saya ingin membalik gambar secara horizontal. Ini tidak simetris seperti gunting OP.
Anda harus selalu meletakkan properti yang memenuhi standar (tidak diawali) di urutan terakhir, sehingga ketika standar diadopsi oleh browser, ia akan menggunakan versi berbasis standar dan bukan versi yang diawali (lama, buggier). Dalam hal ini, itu berarti "transform: matrix (-1, 0, 0, 1, 0, 0);" harus menjadi properti terakhir . (
Mengedit
7
Saya tidak tahu apakah ini harus pada jawaban yang benar atau pertanyaan tetapi saya ingin memberi tahu pengguna fontawesome / bootstrap tentang properti fa-flip-horizontaldanfa-flip-vertical
lol
1
Jawaban nyata yang bagus. Namun tampilan: blok; belum tentu dibutuhkan.
Gilly
6
ya ... tampilan: blok; atau diperlukan blok-sebaris
dGo
Ini sangat membantu untuk menjaga orientasi teks yang benar dari bagian belakang sebuah elemen ketika diputar sepanjang sumbu Y. Misalnya:backface-visibility: visible; transform-origin: center center; transform-style: preserve-3d; transform: matrix(-1, 0, 0, 1, 0, 0) rotateY(180deg) ;
Solusi ini tampaknya berfungsi di semua browser termasuk IE6 +, menggunakan scale(-1,1)(mirror yang tepat) dan properti filter/ yang sesuai -ms-filterbila diperlukan (IE6-8):
/* Cross-browser mirroring of content. Note that CSS pre-processors
like Less cough on the media hack.
Microsoft recommends using BasicImage as a more efficent/faster form of
mirroring, instead of FlipH or some kind of Matrix scaling/transform.
@see http://msdn.microsoft.com/en-us/library/ms532972%28v=vs.85%29.aspx
@see http://msdn.microsoft.com/en-us/library/ms532992%28v=vs.85%29.aspx
*//* IE8 only via hack: necessary because IE9+ will also interpret -ms-filter,
and mirroring something that's already mirrored results in no net change! */@media \0screen {
.mirror {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(mirror=1)";
}
}
.mirror {
/* IE6 and 7 via hack */
*filter: progid:DXImageTransform.Microsoft.BasicImage(mirror=1);
/* Standards browsers, including IE9+ */-moz-transform: scale(-1,1);
-ms-transform: scale(-1,1);
-o-transform: scale(-1,1); /* Op 11.5 only */-webkit-transform: scale(-1,1);
transform: scale(-1,1);
}
EDIT: Sepertinya tidak berfungsi di Opera… sayangnya. Tetapi berfungsi dengan baik di Firefox. Saya kira mungkin diperlukan untuk secara implisit mengatakan bahwa kita melakukan semacam translate3dmungkin? Atau semacam itu.
Bagi mereka yang bertanya-tanya, ini adalah transformasi 3D. Saya pikir ini pasti lebih mudah dibaca / dimengerti daripada metode skala dan matriks yang diberikan sebelumnya.
gregtczap
Saya tidak melihat bagaimana rotasi adalah cermin - yang hanya akan tampak demikian dalam satu kasus khusus.
sel tajam
@celsharp itu ada di sumbu Y, jadi Anda melihat gambar / elemen dari belakangnya, jadi, dicerminkan.
jeromej
1
Hanya menambahkan demo kerja untuk flip cermin horizontal dan vertikal.
box-reflect adalah properti khusus webkit. tapi saya tidak berpikir itu memiliki -moz- setara .. Periksa posting ini ..
mithunsatheesh
juga pemisah :tidak boleh;
mithunsatheesh
0
Satu lagi contoh bagaimana karakter bisa dibalik. Tambahkan awalan vendor jika Anda membutuhkannya, tetapi untuk saat ini semua browser modern mendukung properti transformasi yang tidak diperbaiki. Satu-satunya pengecualian adalah Opera jika mode Opera Mini diaktifkan (~ 3% pengguna dunia).
Jawaban:
Anda dapat menggunakan transformasi CSS untuk mencapai ini. Pembalikan horizontal akan melibatkan penskalaan div seperti ini:
-moz-transform: scale(-1, 1); -webkit-transform: scale(-1, 1); -o-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1);
Dan flip vertikal akan melibatkan penskalaan div seperti ini:
-moz-transform: scale(1, -1); -webkit-transform: scale(1, -1); -o-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1);
DEMO:
span{ display: inline-block; margin:1em; } .flip_H{ transform: scale(-1, 1); color:red; } .flip_V{ transform: scale(1, -1); color:green; }
<span class='flip_H'>Demo text ✂</span> <span class='flip_V'>Demo text ✂</span>
sumber
-moz-transform: scale(-1, 1); -webkit-transform: scale(-1, 1); -o-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1);
Kedua parameter tersebut adalah sumbu X, dan sumbu Y, -1 akan menjadi cermin, tetapi Anda dapat menskalakan ke ukuran apa pun yang Anda suka sesuai dengan kebutuhan Anda. Bisa terbalik dan mundur
(-1, -1)
.Jika Anda tertarik dengan opsi terbaik yang tersedia untuk dukungan lintas browser pada tahun 2011, lihat jawaban lama saya .
sumber
Cermin nyata:
.mirror{ display: inline-block; font-size: 30px; -webkit-transform: matrix(-1, 0, 0, 1, 0, 0); -moz-transform: matrix(-1, 0, 0, 1, 0, 0); -o-transform: matrix(-1, 0, 0, 1, 0, 0); transform: matrix(-1, 0, 0, 1, 0, 0); }
<span class='mirror'>Mirror Text<span>
sumber
fa-flip-horizontal
danfa-flip-vertical
backface-visibility: visible; transform-origin: center center; transform-style: preserve-3d; transform: matrix(-1, 0, 0, 1, 0, 0) rotateY(180deg) ;
Anda juga dapat menggunakan
.your-class{ position:absolute; -moz-transform: scaleX(-1); -o-transform: scaleX(-1); -webkit-transform: scaleX(-1); transform: scaleX(-1); filter: FlipH; }
atau
.your-class{ position:absolute; transform: rotate(360deg) scaleX(-1); }
Perhatikan bahwa pengaturan
position
keabsolute
sangat penting! Jika Anda tidak ingin menyetelnya, Anda harus menyetelnyadisplay: inline-block;
sumber
Saya menyusun solusi ini dengan menjelajahi Internet termasuk
Solusi ini tampaknya berfungsi di semua browser termasuk IE6 +, menggunakan
scale(-1,1)
(mirror yang tepat) dan propertifilter
/ yang sesuai-ms-filter
bila diperlukan (IE6-8):/* Cross-browser mirroring of content. Note that CSS pre-processors like Less cough on the media hack. Microsoft recommends using BasicImage as a more efficent/faster form of mirroring, instead of FlipH or some kind of Matrix scaling/transform. @see http://msdn.microsoft.com/en-us/library/ms532972%28v=vs.85%29.aspx @see http://msdn.microsoft.com/en-us/library/ms532992%28v=vs.85%29.aspx */ /* IE8 only via hack: necessary because IE9+ will also interpret -ms-filter, and mirroring something that's already mirrored results in no net change! */ @media \0screen { .mirror { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(mirror=1)"; } } .mirror { /* IE6 and 7 via hack */ *filter: progid:DXImageTransform.Microsoft.BasicImage(mirror=1); /* Standards browsers, including IE9+ */ -moz-transform: scale(-1,1); -ms-transform: scale(-1,1); -o-transform: scale(-1,1); /* Op 11.5 only */ -webkit-transform: scale(-1,1); transform: scale(-1,1); }
sumber
Untuk kompatibilitas lintas browser, buat kelas ini
.mirror-icon:before { -webkit-transform: scale(-1, 1); -moz-transform: scale(-1, 1); -ms-transform: scale(-1, 1); -o-transform: scale(-1, 1); transform: scale(-1, 1); }
Dan tambahkan ke kelas ikon Anda, yaitu
<i class="icon-search mirror-icon"></i>
untuk mendapatkan ikon penelusuran dengan pegangan di sebelah kiri
sumber
Anda dapat menggunakan 'transformasi' untuk mencapai ini. http://jsfiddle.net/aRcQ8/
css:
-moz-transform: rotate(-180deg); -webkit-transform: rotate(-180deg); transform: rotate(-180deg);
sumber
Ada juga
rotateY
untuk cermin sungguhan:transform: rotateY(180deg);
Yang, mungkin, lebih jelas dan bisa dimengerti.
EDIT: Sepertinya tidak berfungsi di Opera… sayangnya. Tetapi berfungsi dengan baik di Firefox. Saya kira mungkin diperlukan untuk secara implisit mengatakan bahwa kita melakukan semacam
translate3d
mungkin? Atau semacam itu.sumber
Hanya menambahkan demo kerja untuk flip cermin horizontal dan vertikal.
.horizontal-flip { -moz-transform: scale(-1, 1); -webkit-transform: scale(-1, 1); -o-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .vertical-flip { -moz-transform: scale(1, -1); -webkit-transform: scale(1, -1); -o-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); }
<div class="horizontal-flip"> Hello, World <input type="text"> </div> <hr> <div class="vertical-flip"> Hello, World <input type="text"> </div>
sumber
untuk inilah saya berhasil
<span class="navigation-pipe">></span>
display:inline-block; -moz-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=4);
hanya perlu tampilan: blok sebaris atau blok untuk memutar. Jadi pada dasarnya jawaban pertama bagus. Tapi -180 tidak berhasil.
sumber
Anda bisa mencoba kotak-refleksi
box-reflect: 20px right;
lihat kompatibilitas kotak-mencerminkan properti CSS? untuk lebih jelasnya
sumber
:
tidak boleh;
Satu lagi contoh bagaimana karakter bisa dibalik. Tambahkan awalan vendor jika Anda membutuhkannya, tetapi untuk saat ini semua browser modern mendukung properti transformasi yang tidak diperbaiki. Satu-satunya pengecualian adalah Opera jika mode Opera Mini diaktifkan (~ 3% pengguna dunia).
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Text rotation</title> <style type="text/css" media="screen"> .scissors { display: inline-block; font-size: 50px; color: red; } .original { color: initial; } .flipped { transform: rotateZ(180deg); } .upward { transform: rotateZ(-90deg); } .downward { transform: rotateZ(90deg); } </style> </head> <body> <ul> <li>Original: <span class="scissors original">✂</span></li> <li>Flipped: <span class="scissors flipped">✂</span></li> <li>Upward: <span class="scissors upward">✂</span></li> <li>Downward: <span class="scissors downward">✂</span></li> </ul> </body> </html>
sumber
direction: rtl;
mungkin itulah yang Anda cari.sumber
Itu berfungsi dengan baik dengan ikon font seperti 's7 stroke icons' dan 'font-awesome' :
.mirror { display: inline-block; transform: scaleX(-1); }
Dan kemudian pada elemen target:
<button> <span class="s7-back mirror"></span> <span>Next</span> </button>
sumber