如何禁用CSS或JavaScript文本select?

可能重复:
CSS规则禁用文本select突出显示

我正在做一个HTML / CSS / jQuery画廊,有几个页面。

我确实有一个“下一步”button,这是一个简单的链接与jQuery点击监听器。

问题是,如果用户多次点击该button,则select该button的文本,然后是全行文本。 在我真的黑暗的devise,这真是丑陋和荒谬。

所以这里是我的问题:你可以禁用HTML上的文本select? 如果没有,我会非常错过闪光灯和其在文本字段上的高级configuration…

<div style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select:none; user-select:none;-o-user-select:none;" unselectable="on" onselectstart="return false;" onmousedown="return false;"> Blabla </div> 

更新2017年1月:

据我可以使用 ,除了Internet Explorer 9和更早版本之外,所有浏览器当前都支持user-select (但可惜仍然需要供应商前缀)。


所有正确的CSS变化是:

 .noselect { -webkit-touch-callout: none; /* iOS Safari */ -webkit-user-select: none; /* Safari */ -khtml-user-select: none; /* Konqueror HTML */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* Internet Explorer/Edge */ user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */ } 
 <p> Selectable text. </p> <p class="noselect"> Unselectable text. </p> 

试试这个CSS代码来实现跨浏览器的兼容性。

 -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -o-user-select: none; user-select: none; 

你可以使用JavaScript来做你想做的事情:

 if (document.addEventListener !== undefined) { // Not IE document.addEventListener('click', checkSelection, false); } else { // IE document.attachEvent('onclick', checkSelection); } function checkSelection() { var sel = {}; if (window.getSelection) { // Mozilla sel = window.getSelection(); } else if (document.selection) { // IE sel = document.selection.createRange(); } // Mozilla if (sel.rangeCount) { sel.removeAllRanges(); return; } // IE if (sel.text > '') { document.selection.empty(); return; } } 

肥皂盒:你真的不应该以这种方式与客户的用户代理搞砸。 如果客户想要select文件上的东西,那么他们应该能够select文件上的东西。 不要紧,如果不喜欢高亮颜色,因为不是一个查看文档。

我不确定你是否可以closures它,但你可以改变它的颜色:)

 myDiv::selection, myDiv::-moz-selection, myDiv::-webkit-selection { background:#000; color:#fff; } 

然后只是将颜色匹配到“黑暗”的devise,看看会发生什么:)