停止突出显示的HTML文本

时间:2012-03-08 15:25:08

标签: html text highlight

我的页面的一部分需要双击,这会产生不良影响,有时用户会无意中突出显示页面上的某些文字。

真的很邋but,但除了使用图片而不是文字之外,还有一种巧妙的方法可以阻止这种情况发生吗?

由于

3 个答案:

答案 0 :(得分:13)

这是css禁用文本选择。 How to disable text selection highlighting using CSS?

-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;

答案 1 :(得分:2)

正如@arunes建议的那样,对于大多数浏览器,您可以使用CSS执行此操作。但是我已经读过,这不适用于IE 6-8(至少)。因此,您可能需要以下内容:

document.getElementById("divDoubleClick").onselectstart = function() { return false; };

答案 2 :(得分:2)

这对我有用

正如建议的那样把css样式放在

body, div
{
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: -moz-none;
    -ms-user-select: none;
    -o-user-select: none;
    user-select: none;
}

还添加这些以允许在表单字段中进行选择

input, textarea, .userselecton
{
    -webkit-touch-callout: text;
    -webkit-user-select: text;
    -khtml-user-select: text;
    -moz-user-select: text;
    -ms-user-select: text;
    -o-user-select: text;
    user-select: text;
}

注意-moz-none需要或输入的reenable不起作用。

对于IE我添加

<script type="text/javascript">
    window.addEvent( "domready", function()
    {
        document.addEvent( "selectstart", function(e)
        {
            if ( (e.target.tagName == "INPUT") ||
             (e.target.tagName == "TEXTAREA") ||
                 (e.target.hasClass("userselecton")))
            {
                return true;
            }
            return false;
        } );
    } );
</script>

这不仅可以防止选择背景文本,还可以选择输入字段和您放置userseleton类的元素。