Saya telah menggunakan transformasi CSS3 untuk memutar gambar dan kotak teks dengan batas di situs web saya.
Masalahnya adalah bahwa perbatasan terlihat bergerigi di Chrome, seperti game (resolusi rendah) tanpa Anti-Aliasing. Di IE, Opera dan FF terlihat jauh lebih baik karena AA digunakan (yang masih terlihat jelas tetapi tidak terlalu buruk). Saya tidak dapat menguji Safari karena saya tidak memiliki Mac.
Foto dan teks yang diputar itu sendiri terlihat baik-baik saja, hanya perbatasan yang terlihat bergerigi.
CSS yang saya gunakan adalah ini:
.rotate2deg {
transform: rotate(2deg);
-ms-transform: rotate(2deg); /* IE 9 */
-webkit-transform: rotate(2deg); /* Safari and Chrome */
-o-transform: rotate(2deg); /* Opera */
-moz-transform: rotate(2deg); /* Firefox */
}
Apakah ada cara saya dapat memperbaikinya, misalnya dengan memaksa Chrome menggunakan AA?
Contoh di bawah ini:
Jawaban:
Jika ada orang yang mencari ini nanti, trik yang bagus untuk menghilangkan tepi bergerigi pada transformasi CSS di Chrome adalah menambahkan properti CSS
-webkit-backface-visibility
dengan nilaihidden
. Dalam tes saya sendiri, ini benar-benar memuluskan mereka. Semoga itu bisa membantu.sumber
padding: 1px; -webkit-background-clip: content-box;
padding: 1px;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-background-clip:content-box;background-clip:content-box;
Jika Anda menggunakan
transition
alih-alihtransform
,-webkit-backface-visibility: hidden;
tidak berfungsi. Tepi bergerigi muncul selama animasi untuk file png transparan.Untuk mengatasinya saya menggunakan:
outline: 1px solid transparent;
sumber
Menambahkan batas transparan 1px akan memicu anti-aliasing
Atau, tambahkan bayangan kotak transparan 1px.
sumber
outline: 1px solid transparent;
bekerja dengan baik untuk saya. Solusi lain di atas tidak bekerja dengan cukup baik.outline: 1px solid transparent;
memicu anti-aliasing juga di Firefox 52 (yang memiliki masalah Chrome yang sama)Coba transformasi 3d. Ini bekerja seperti pesona!
sumber
preserve-3d
;rotate
masih dapat digunakan tanpa mengubah kerotateZ
) tidak.Jawaban pilihan (tidak ada jawaban lain) tidak berfungsi untuk saya, tetapi ini berhasil:
img {outline:1px solid transparent;}
sumber
Saya mengalami masalah dengan gradien CSS3 dengan -45deg. The
background
miring, itu buruk bergerigi mirip tapi lebih buruk dari posting asli. Jadi saya mulai bermain dengan keduanyabackground-size
. Ini akan meregangkan kerutan, tetapi masih ada di sana. Kemudian selain itu saya membaca bahwa orang lain juga mengalami masalah dengan kenaikan 45deg jadi saya menyesuaikan dari-45deg
ke-45.0001deg
dan masalah saya terpecahkan.Dalam CSS saya di bawah ini,
background-size
awalnya30px
dandeg
untuk latar belakang gradien tepat-45deg
, dan semua keyframe30px 0
.sumber
Anda mungkin bisa menutupi jagging menggunakan kotak-bayangan kabur . Menggunakan -webkit-box-shadow alih-alih box-shadow akan memastikan itu tidak memengaruhi browser non-webkit. Anda mungkin ingin memeriksa Safari dan browser webkit seluler.
Hasilnya agak lebih baik, tetapi masih jauh kurang bagus dengan browser lain:
sumber
Hanya berpikir bahwa kami akan memasukkan solusi kami juga karena kami memiliki masalah yang sama persis pada Chrome / Windows.
Kami mencoba solusinya dengan @stevenWatkins di atas, tetapi masih memiliki "loncatan".
Dari pada
Kami menggunakan:
Bagi kami ini berhasil 🎉
sumber
Menambahkan berikut pada div di sekitar elemen yang dimaksud memperbaiki ini untuk saya.
Tepi bergerigi muncul di sekitar jendela video dalam kasus saya.
sumber
Bagi saya itu adalah properti CSS perspektif yang melakukan trik:
Sepenuhnya tidak logis dalam kasus saya karena saya tidak menggunakan transisi 3d, tetapi tetap bekerja.
sumber
Untuk kanvas di Chrome (Versi 52)
Semua jawaban yang tercantum adalah tentang gambar. Tapi masalah saya adalah tentang kanvas dalam chrome (v.52) dengan rotate transform. Mereka menjadi bergerigi dan semua metode ini tidak dapat membantu.
Solusi yang berfungsi untuk saya:
Blok kode yang sangat penting:
Sampel: https://jsfiddle.net/tLbxgusx/1/
Catatan: ada banyak div bersarang karena ini adalah versi yang disederhanakan dari proyek saya.
Masalah ini direproduksi juga untuk Firefox untuk saya. Tidak ada masalah seperti itu di Safari dan FF dengan retina.
Dan solusi yang didirikan lainnya adalah menempatkan kanvas ke div dengan ukuran yang sama dan menerapkan css berikut ke div ini:
Dan rotasi harus diterapkan pada div pembungkus ini. Jadi solusi terdaftar berhasil tetapi dengan modifikasi kecil.
Dan contoh yang dimodifikasi untuk solusi tersebut adalah: https://jsfiddle.net/tLbxgusx/2/
Catatan: Lihat gaya div dengan kelas 'ketiga'.
sumber