I have been trying to apply user-select
for both Opera 10.62 and IE9 without success. I can't/won't bind events with JavaScript that preventDefault()
, because there are so many places to be set unselectable and I still need to retain selections in several places. In fact, I want the default behavior to be unselectable for the whole document, and as for that I have set the following in my stylesheet:
* {
-o-user-select: none;
-webkit-user-select: none;
-moz-user-select: -moz-none;
-khtml-user-select: none;
-ms-user-select: none;
user-select: none;
}
Everything works great with Firefox 4, Chrome 7 and Safari 5. Only IE9 and Opera 10.62 are not working as I would like them to. Any ideas?
PS: I'm targeting modern browsers.
-ms-user-select: none;
seems to work fine now (IE 10/11)
user-select isn't a standard CSS3 property, which is why there is no user-select or -o-user-select or -ms-user-select. It used to be in the old user interface spec, but that was superseded by the Basic UI spec. It will likely never be implemented by either browser, unless it is added back to the spec.
User selection is a behaviour rather than a style, so it is best to use JavaScript. As Knu mentions above, you can use unselectable instead.
Using jquery:
But you may have to add it both to the element and it's container.
You can use combination of
-webkit-user-select: none;
,-moz-user-select: none;
and specific propertyunselectable="on"
, as I described here:How to make text unselectable on HTML page
Did you try using
::selection {color:currentColor;background:transparent}
?For Firefox you can use
::-moz-selection
.https://developer.mozilla.org/En/CSS/::selection
http://msdn.microsoft.com/en-us/library/ff974109(v=VS.85).aspx
http://reference.sitepoint.com/css/pseudoelement-selection
// update //
There's also the unselectable property.