防止元素参与文本选择

时间:2013-03-01 06:30:32

标签: html css textselection

我在<pre><code>中有一些源代码,其中行号在单独的<div>中。选择文本后,行号随附,然后复制。有没有办法阻止行号成为选择的一部分,即使我选择源代码块上方和下方的元素?

我希望避免使用JavaScript,以免受浏览者的利益。 (使用JavaScript,我会添加一个按钮来隐藏行号。)

unselectable="on"以及各种特定于供应商的user-select CSS属性不起作用;这些数字仍然被选中和复制。

2 个答案:

答案 0 :(得分:6)

提供您想要的元素以防止选择ID。

然后把它放在你的CSS中:

#id-name {
   -webkit-touch-callout: none;
   -webkit-user-select: none;
   -khtml-user-select: none;
   -moz-user-select: none;
   -ms-user-select: none;
   user-select: none;
}
::-moz-selection {
   background: transparent;
}
::selection { 
   background: transparent; 
}

答案 1 :(得分:-1)

var inp = document.getElementById('my_input');

inp.addEventListener('select', function() {
  this.selectionStart = this.selectionEnd;
}, false);
<input id="my_input" type="text" value="Try to select me!" />