バックグラウンド
テーブルの最初の列の強調表示を無効にしようとしています。
HTML ソース
<table>
<tbody>
<tr><td class="unselectable" unselectable="on"><button value="1" unselectable="on" class="unselectable"><div unselectable="on" class="unselectable">✘</div></button></td><td>Row 1</td></tr>
<tr><td class="unselectable" unselectable="on"><button value="2" unselectable="on" class="unselectable"><div unselectable="on" class="unselectable">✘</div></button></td><td>Row 2</td></tr>
<tr><td class="unselectable" unselectable="on"><button value="3" unselectable="on" class="unselectable"><div unselectable="on" class="unselectable">✘</div></button></td><td>Row 3</td></tr>
</tbody>
</table>
CSS ソース
*.unselectable {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: -moz-none;
-ms-user-select: none;
user-select: none;
}
フィドル
問題
ユーザーがテーブル上でマウス ボタンを選択してドラッグすると、ボタン テキスト (✘) が強調表示されて表示されます (望ましくない動作)。ユーザーが値をコピーして貼り付けると、値 (✘) は含まれません (望ましい動作)。
明確にするために、これは現在の動作です(望ましくない):
次の図は、テーブル上でマウスをドラッグした後の目的の動作を示しています。
ほとんどのユーザーはおそらく気にしないでしょうが、これは少し誤解を招くユーザー エクスペリエンスです。ユーザーがテキストを強調表示してコピーする場合、強調表示されたすべてのテキストがコピーされることが期待されます。クラスを追加するunselectable
と、ボタンの (✘) 値が強調表示されますが、コピーされません。に設定されているため、ユーザーは (✘) を強調表示 (選択) することはできませんunselectable
。
環境
Xubuntu で Firefox 19.0.2 を使用していますが、クロスブラウザー ソリューションを探しています。
質問
ユーザーが最初の表の列(ボタンを含む)を強調表示できないようにするクロスブラウザの方法は何ですか?