テキストを選択不可にするには、2 つの方法があることを理解する必要があります。バージョン 10 より前の Opera と Internet Explorer が必要な場合 (ほとんどの場合、肯定的です)) -unselectable
の値を持つ属性を使用する必要がありますon
。
ここで重要なことは、この属性を親ラッパーに設定.Non-Select
した場合 (この場合、子要素のテキストを引き続き選択できること) 、このフィドルを Opera または IE 9 までで開いて確認することです。したがって、選択してはならないすべての単一要素にこの属性を追加する必要があります (可能な子要素が多数 (または不明な数) ある場合は、JavaScript を介して動的に追加する可能性があります)。
他のブラウザーの選択を無効にするには、css3user-select
プロパティを使用できます。この CSS を追加するクールな方法は、次のattribute selector
ようになります。
[unselectable="on"]{
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none
}
したがって、この属性を持つ要素のテキストは、一般的なブラウザのほとんどで選択できません。
2 番目の方法は短いです。IE や Opera が必要ない場合は、Firefox、Chrome、IE10 で動作するようにコードを少し変更する必要があります。
.Non-Select {
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
}
.Non-Select input {
-webkit-user-select: text;
-khtml-user-select: text;
-moz-user-select: text;
-ms-user-select: text;
user-select: text;
}
-moz-none
私が追加した標準外の値に注意してください。MDN でこのプロパティについて注意深く読むと、Mozillaが子要素の選択を有効にするために、この非標準バージョンを導入したことがわかります。2 番目の方法の実際の例をここで見ることができます: - http://jsfiddle.net/jxnEb/5/
編集: selection に関する同様の質問がありました。unselectable
作成者がすべての子要素に属性を再帰的に追加する関数を記述した、受け入れられた回答に注意してください。(あなたの場合input
、もちろんフィルタリングする必要があります)。