有没有办法让DIV无法select?
这里有一个有趣的CSS问题给你!
我有一个透明背景textarea覆盖一些文字,我想用作一种水印。 文字很大,占据了textarea的大部分。 它看起来不错,问题是当用户点击textarea时,它有时select水印文本。 我想水印文本永远不可select。 我期待如果z-index中的东西比较低,那么它将不会被select,但是浏览器在select项目时似乎并不关心z-index图层。 有没有一个技巧或方法,使这个DIV永远不可select?
我写了一个简单的jQuery扩展来禁用一些select:在jQuery中禁用select 。 你可以通过$('.button').disableSelection();
来调用它$('.button').disableSelection();
或者,使用CSS(跨浏览器):
.button { user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; }
以下CSS代码几乎适用于现代浏览器:
.unselectable { -moz-user-select: -moz-none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; user-select: none; }
对于IE,你必须使用JS或插入HTML标签的属性。
<div id="foo" unselectable="on" class="unselectable">...</div>
只需更新aleemb原来的,大量的解决scheme,并添加了一些CSS。
我们一直在使用下面的组合:
.unselectable { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; -o-user-select: none; user-select: none; }
我们从以下网站获得了添加webkit-touch条目的build议:
http://phonegap-tips.com/articles/essential-phonegap-css-webkit-touch-callout.html
2015年4月:只是更新我自己的答案,可能派上用场的变化。 如果您需要使DIV可选/不可选,并且愿意使用Modernizr ,则以下工作将在javascript中整齐地进行:
var userSelectProp = Modernizr.prefixed('userSelect'); var specialDiv = document.querySelector('#specialDiv'); specialDiv.style[userSelectProp] = 'none';
正如约翰内斯已经提出的那样,背景图像在CSS中是最好的方法。
一个JavaScript解决scheme也将不得不影响“dragstart”在所有stream行的浏览器中都是有效的。
JavaScript的:
<div onselectstart="return false;" ondragstart="return false;">your text</div>
jQuery的:
var _preventDefault = function(evt) { evt.preventDefault(); }; $("div").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
丰富
你可以试试这个:
<div onselectstart="return false">your text</div>
不会一个简单的textarea背景图片就足够了吗?
你可以使用pointer-events: none;
在你的CSS
div { pointer-events: none; }
WebKit浏览器(例如Google Chrome和Safari)具有与Mozilla的类似的CSS解决scheme-moz-user-select:none
.no-select{ -webkit-user-select: none; cursor:not-allowed; /*makes it even more obvious*/ }
另外在IOS中,如果你想摆脱出现在ontouch灰色半透明覆盖,添加CSS:
-webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-touch-callout: none;
使用
onselectstart =“返回false”
它可以防止复制您的内容。
确保你明确地将位置设置为绝对或相对z-index来select。 我有一个类似的问题,这解决了我的问题。
不确定你的用例,但你可以使它拖曳。