CSS menonaktifkan pemilihan teks


93

Saat ini, saya telah meletakkan ini di tag body untuk menonaktifkan pilihan teks:

body {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

Namun, kotak inputdan saya textareasekarang tidak dapat dipilih. Bagaimana saya hanya dapat membuat elemen masukan ini dapat dipilih dan sisanya tidak dapat dipilih?


Saya dapat memilih inputdan textareaelemen: jsfiddle.net/Smy26
Sampson

Sepertinya webkit memungkinkan pemilihan elemen tersebut, tetapi moz tidak.
Christian

Jawaban:


172

Jangan menerapkan properti ini ke seluruh tubuh. Pindahkan ke kelas dan terapkan kelas itu ke elemen yang ingin Anda nonaktifkan pilih:

.disable-select {
  -webkit-user-select: none;  
  -moz-user-select: none;    
  -ms-user-select: none;      
  user-select: none;
}

3
Tidak didukung di Chrome, Safari.
knutole

5
@knutole Baca tabel lagi. The nilai dari elementtidak didukung di Chrome / Safari.
MForMarlon

31

Anda juga dapat menonaktifkan pemilihan pengguna di semua elemen:

* {
    -webkit-touch-callout:none;
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
}

Dan daripada mengaktifkannya pada elemen yang Anda inginkan agar pengguna dapat memilih:

input, textarea /*.contenteditable?*/ {
    -webkit-touch-callout:default;
    -webkit-user-select:text;
    -moz-user-select:text;
    -ms-user-select:text;
    user-select:text;
}

1
Untuk dukungan browser penuh, Anda harus menambahkan atribut berikut ke elemen <body> atau <div>: unselectable = "yes" onselectstart = "return false" onmousedown = "return false" / * gunakan dengan hati-hati, atribut terakhir dapat MEMPENGARUHI FUNGSI YANG ADA * /
Dan

11

Hanya ingin meringkas semuanya:

.unselectable {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

<div class="unselectable" unselectable="yes" onselectstart="return false;"/>

1
Versi lama Firefox mungkin memerlukan penambahan satu atribut lagi ke HTML: onmousedown = "return false"
Dan

2
::selection,::moz-selection {color:currentColor;background:transparent}

Seperti yang dinyatakan di sini w3schools.com/cssref/sel_selection.asp . Sejauh ini, ini bukan bagian dari spesifikasi CSS, dan Firefox memerlukan -moz-. Jadi yang benar adalah: :: - moz-selection {color: currentColor; background: transparent} :: selection {color: currentColor; background: transparent}
Vladislav

1
@Vladislav Hal yang baik tentang awalan moz. Sejujurnya, jangan percaya w3sekolah. Itu sumber yang mengerikan. MDN memberikan versi kompatibilitas browser yang sebenarnya dan mencatat bahwa :: selection telah dihapus dari draf CSS, TAPI ditambahkan kembali: developer.mozilla.org/en-US/docs/Web/CSS/::selection . Catatan lain, firefox siap menghapus kebutuhan akan awalan: bugzilla.mozilla.org/show_bug.cgi?id=509958
BT

2

Anda dapat menonaktifkan semua pilihan

.disable-all{-webkit-touch-callout: none;  -webkit-user-select: none;-khtml-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none;}

sekarang Anda dapat mengaktifkan input dan text-area

input, textarea{
-webkit-touch-callout:default;
-webkit-user-select:text;
-khtml-user-select: text;
-moz-user-select:text;
-ms-user-select:text;
user-select:text;}

1

Gunakan pemilih kartu liar *untuk tujuan ini.

#div * { /* Narrowing, to specific elements, like  input, textarea is PREFFERED */
 -webkit-user-select: none;  
  -moz-user-select: none;    
  -ms-user-select: none;      
  user-select: none;
}

Sekarang, setiap elemen di dalam div dengan id tidak divakan memiliki pilihan.

Demo




0

Nonaktifkan pemilihan di mana saja

input, textarea ,*[contenteditable=true] {
  -webkit-touch-callout:default;
  -webkit-user-select:text;
  -moz-user-select:text;
  -ms-user-select:text;
  user-select:text;
   }

IE7

 <BODY oncontextmenu="return false" onselectstart="return false" ondragstart="return false">
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.