CSS规则在选择时禁用突出显示表列

Dav*_*vis 7 css select html-table cross-browser highlight

背景

希望禁用突出显示表的第一列.

HTML源码

<table>
<tbody>
    <tr><td class="unselectable" unselectable="on"><button value="1" unselectable="on" class="unselectable"><div unselectable="on" class="unselectable">&#x2718;</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">&#x2718;</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">&#x2718;</div></button></td><td>Row 3</td></tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

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;
}
Run Code Online (Sandbox Code Playgroud)

小提琴

http://jsfiddle.net/2LQfg/1/

问题

当用户选择并在表格上拖动鼠标按钮时,按钮文本(✘)将突出显示(不良行为).当用户复制并粘贴值时,不包括值(✘)(所需行为).

澄清一下,这是当前的行为(不受欢迎的):

不希望

下图显示了在表格中拖动鼠标后所需的行为:

期望

大多数用户可能不会关心,但这是一种有点误导性的用户体验.无论用户突出显示文本并将其复制,都应该复制所有突出显示的文本.通过添加unselectable类,按钮的(✘)值会突出显示,但不会被复制.用户根本不应该突出显示(选择)(✘),因为它被设置为unselectable.

环境

我在Xubuntu上使用Firefox 19.0.2,但我寻求跨浏览器解决方案.

什么是跨浏览器方式来阻止用户突出显示第一个表列(包含按钮)?

有关

Exp*_*lls 2

如果内容是通过 CSS 规则设置的,浏览器似乎不会复制内容content。希望你不需要支持 IE7

button.unselectable:after {
    content: "\2718";
}
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/ExplosionPIlls/2LQfg/50/