Ini pertanyaan CSS yang menarik untuk Anda!
Saya memiliki textarea dengan latar belakang transparan yang menutupi beberapa TEXT yang ingin saya gunakan sebagai semacam tanda air. Teksnya besar dan memakan mayoritas textarea. Kelihatannya bagus, masalahnya adalah ketika pengguna mengklik teks, kadang-kadang memilih teks watermark. Saya ingin teks tanda air tidak pernah dapat dipilih. Saya mengharapkan jika ada sesuatu yang lebih rendah dalam indeks-z itu tidak akan dapat dipilih tetapi browser tampaknya tidak peduli tentang lapisan indeks-z ketika memilih item. Apakah ada trik atau cara untuk membuatnya sehingga DIV ini tidak pernah dapat dipilih?
Jawaban:
Saya menulis ekstensi jQuery sederhana untuk menonaktifkan seleksi beberapa waktu lalu: Menonaktifkan Pilihan di jQuery . Anda dapat memohonnya melalui
$('.button').disableSelection();
Sebagai alternatif, menggunakan CSS (lintas-browser):
sumber
Kode CSS berikut berfungsi hampir di peramban modern:
Untuk IE, Anda harus menggunakan JS atau menyisipkan atribut dalam tag html.
sumber
unselectable="on"
. Bisakah Anda memberikan referensiBaru saja memperbarui jawaban asli aleemb, banyak-dipilih dengan beberapa tambahan ke css.
Kami telah menggunakan kombo berikut:
Kami mendapat saran untuk menambahkan entri webkit-touch dari:
http://phonegap-tips.com/articles/essential-phonegap-css-webkit-touch-callout.html
2015 Apr: Hanya memperbarui jawaban saya sendiri dengan variasi yang mungkin berguna. Jika Anda perlu membuat DIV dipilih / tidak dapat dipilih dengan cepat dan bersedia menggunakan Modernizr , berikut ini berfungsi dengan baik dalam javascript:
sumber
user-select: none
kediv
tidak memiliki efek apapun. Saya cukup yakinuser-select
hanya untuk teks. Adakah cara lain untuk membuat yangdiv
tidak dapat dipilih?Seperti yang sudah disarankan Johannes, gambar latar mungkin merupakan cara terbaik untuk mencapai ini hanya dalam CSS.
Solusi JavaScript juga harus memengaruhi "dragstart" agar efektif di semua browser populer.
JavaScript:
jQuery:
Kaya
sumber
Anda dapat menggunakan
pointer-events: none;
CSS Andasumber
Anda dapat mencoba ini:
sumber
Bukankah gambar latar belakang yang sederhana untuk textarea sudah cukup?
sumber
Browser WebKit (yaitu Google Chrome dan Safari) memiliki solusi CSS yang mirip dengan Mozilla -moz-user-select: tidak ada
sumber
Juga di iOS jika Anda ingin menyingkirkan lapisan abu-abu semi-transparan yang muncul di layar, tambahkan css:
sumber
Menggunakan
onselectstart = "return false"
itu mencegah menyalin konten Anda.
sumber
Pastikan bahwa Anda menetapkan posisi secara eksplisit sebagai absolut atau relatif untuk z-indeks agar berfungsi untuk seleksi. Saya memiliki masalah serupa dan ini menyelesaikannya untuk saya.
sumber
Tidak yakin dengan use case Anda, tetapi Anda bisa membuatnya bisa diseret.
sumber