对于像按钮一样的锚点(例如,Stack Overflow页面顶部的问题,标签,用户等)或标签,如果用户意外选择了文本,是否有一种CSS标准方法来禁用突出显示效果?
我意识到这可以通过JavaScript来完成,并且有点谷歌搜索产生了仅Mozilla -moz-user-select选项.
是否有符合标准的方法来实现CSS,如果没有,那么"最佳实践"方法是什么?
不推荐使用JQueryUI 1.9中的.disableSelection.我能找到的唯一解释是字面意思是"禁用文本选择很糟糕.不要使用它." 并且"我们不应该让开发人员搞乱文本选择.这最初是针对交互插件的,但是他们现在都在自己正确地处理文本选择."
由于没有其他建议,我认为它们意味着它总是很糟糕,但我无法理解它们的原因.精心设计的UI应用程序的双击/三击或其他无意义选择不正确地应用文本高亮效果,并且(对我而言)立即消除了强健用户体验的错觉.
桌面应用程序不会受此影响!桌面环境中的按钮和其他控件是像素区域,无论您对它们做什么(或者它们都被破坏),它们看起来都很稳定且行为直观.Web应用程序由复杂的html框,背景,边框和图像(像素的网络模拟)组成的事实没有理由背叛我们与之交互的屏幕元素不是原子物理对象的错觉.
在下图中,可以说某些文本应该是可选择的,例如面板中可能是应用程序数据的文本段落.但对于某些应用程序来说,其他部分(例如按钮,标签,手风琴标题中的文本和模态对话框后面的文本)将无法选择,这将是一种合理的设计选择.这尤其适用于可拖动/可排序的行为.

1)我是否误解了他们的决定?JQuery的推荐是否比我意识到的更具体?
2)如果作为一般性陈述,文本应始终可以这样选择,请提供更全面的解释原因.
3)如果我打算这样做,那么现在不推荐使用disableSelection,那么性能最高,最完整,最尊重,跨浏览器以及普遍可访问的内容是什么?
我试图阻止从页面复制信息(当然,对于非技术用户).我知道如何禁用使用鼠标选择文本.以下jquery代码有效:
$(function(){
$.extend($.fn.disableTextSelect = function() {
return this.each(function(){
if($.browser.mozilla){//Firefox
$(this).css('MozUserSelect','none');
}else if($.browser.msie){//IE
$(this).bind('selectstart',function(){return false;});
}else{//Opera, etc.
$(this).mousedown(function(){return false;});
});
});
$('.noSelect').disableTextSelect();
});
Run Code Online (Sandbox Code Playgroud)
但是用户仍然可以使用Ctrl + A来选择整个页面.有没有解决方法呢?