в CSS3
.unselectable {
-moz-user-select: -moz-none;
-khtml-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
-ms-user-select: none;
user-select: none;
}
для IE добавить элементу
onselectstart=«return false»
Для оперы на js .
в яндексе есть костыли
Пример решения на javascript в том числе и для оперы
$(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;});
}
});
});
$('.unselectable').disableTextSelect();
});
ещё очень простое решение поставить прозрачный div верхним слоем, такого же размера что и блок который надо защитить от выделения.