Dengan menggunakan CSS, bagaimana saya bisa menerapkan lebih dari satu transform
?
Contoh: Berikut ini, hanya terjemahan yang diterapkan, bukan rotasi.
li:nth-child(2) {
transform: rotate(15deg);
transform: translate(-20px,0px);
}
css
css-transforms
Ben
sumber
sumber
transform: scale(1,1.5) rotate(90deg);
, rotasi akan terjadi sebelum skala.Saya menambahkan jawaban ini bukan karena itu mungkin akan membantu tetapi hanya karena itu benar.
Selain menggunakan jawaban yang ada menjelaskan cara membuat lebih dari satu terjemahan dengan merantai mereka, Anda juga dapat membuat matriks 4x4 sendiri
Saya mengambil gambar berikut dari beberapa situs acak yang saya temukan saat googling yang menunjukkan matriks rotasi:
Rotasi di sekitar sumbu x:
Rotasi di sekitar sumbu y:
Rotasi di sekitar sumbu z:
Saya tidak dapat menemukan contoh terjemahan yang baik, jadi anggap saya ingat / mengerti benar, terjemahan:
Lihat lebih banyak di artikel Wikipedia tentang transformasi serta tutorial Pragamatic CSS3 yang menjelaskannya dengan baik. Panduan lain yang saya temukan yang menjelaskan matriks rotasi acak adalah catatan Egon Rath tentang matriks
Perkalian matriks bekerja antara matriks 4x4 ini tentu saja, jadi untuk melakukan rotasi diikuti oleh terjemahan, Anda membuat matriks rotasi yang sesuai dan mengalikannya dengan matriks terjemahan.
Ini dapat memberi Anda sedikit lebih banyak kebebasan untuk melakukannya dengan benar, dan juga akan membuat sangat mustahil bagi siapa pun untuk memahami apa yang dilakukannya, termasuk Anda dalam lima menit.
Tapi, Anda tahu, itu berhasil.
Sunting: Saya baru menyadari bahwa saya melewatkan menyebutkan mungkin penggunaan yang paling penting dan praktis dari ini, yaitu untuk secara bertahap membuat transformasi 3D yang kompleks melalui JavaScript, di mana banyak hal akan lebih masuk akal.
sumber
Anda juga dapat menerapkan beberapa transformasi menggunakan lapisan markup tambahan, misalnya:
Ini bisa sangat berguna ketika menjiwai elemen dengan transformasi menggunakan Javascript.
sumber
transform-style: preserve-3d
Anda dapat menerapkan lebih dari satu transformasi seperti ini:
sumber
Suatu saat nanti, kita dapat menulis seperti ini:
Ini akan menjadi sangat berguna ketika menerapkan kelas individu pada suatu elemen:
Sintaks ini didefinisikan dalam spesifikasi CSS Transforms Level 2 yang sedang berlangsung , tetapi tidak dapat menemukan apa pun tentang dukungan browser saat ini selain kenari krom. Semoga suatu hari nanti saya akan kembali dan memperbarui dukungan browser di sini;)
Temukan info di artikel ini yang mungkin ingin Anda periksa tentang solusi untuk peramban saat ini.
sumber
Mulai saja dari sana bahwa di CSS , jika Anda mengulangi 2 nilai atau lebih, selalu yang terakhir diterapkan, kecuali menggunakan
!important
tag, tetapi pada saat yang sama hindari menggunakan!important
sebanyak yang Anda bisa, jadi dalam kasus Anda itulah masalahnya, jadi yang kedua transform menimpa yang pertama dalam hal ini ...Jadi bagaimana Anda dapat melakukan apa yang Anda inginkan? ...
Jangan khawatir , mentransformasikan menerima beberapa nilai sekaligus ... Jadi kode di bawah ini akan berfungsi:
Jika Anda suka bermain-main dengan transform, jalankan iframe dari MDN di bawah ini:
Lihat tautan di bawah untuk info lebih lanjut:
<< CSS transform >>
sumber
Transform Putar dan Terjemahkan dalam satu baris css: -Bagaimana?
sumber