2010-06-20 47 views
8

我试图阻止文本在Firefox中的高亮显示,但不是页面上的所有元素。考虑以下几点:“用户选择:无”和火狐中的奇怪行为

<div style="-moz-user-select: none;"> 
I cannot be highlighted 
    <div style="-moz-user-select: text;"> 
    I should be highlightable, but am not. 
    </div> 
</div> 

据我了解,使用上述CSS规则,内div的文字应该是高亮。但是,这似乎不起作用。实际上,没有任何文字可以突出显示。

我想知道如果我做错了什么?如果没有,有没有人知道这种情况的解决方法?

谢谢!

PS我要补充一点,使用备用...

-webkit-user-select: none; 

...在上面的例子中工作得很好,在WebKit浏览器

+1

我有一个网络应用程序,做了很多拖放。意外的鼠标点击可能导致突出显示,这是无害的 - 但可能会让用户感到困惑。 – Travis 2010-06-20 02:20:39

回答

13

替换

<div style="-moz-user-select: none;"> 

<div style="-moz-user-select: -moz-none;"> 

-moz-user-select属性状态的description-moz-none意味着该元素和子元素的文本不能被选择,但是选择可以启用上子元素使用-moz-user-select: text;

+0

非常好。谢谢! – Travis 2010-06-20 02:27:11

+0

引起我注意的是-moz-user-select:all。出于某种原因,这不起作用,您需要使用-moz-user-select:text。 – 2015-06-08 03:50:14

-1

你可能想尝试onmousedown="return false",你可以改变的光标如果你不想选择或指针与cursor:

2

Mozilla的不通知下列有关none属性:

元素和子元素的文本将显示为无法选择它们的 。然而,任何使用 选择都将包含这些 元素。

阅读-moz-user-select

+0

的确如此。但是,内部-moz-user-select仍然没有正确应用。在实践中,一切都可能被突出显示 - 但只有内部文本应该*突出显示。 – Travis 2010-06-20 02:11:54

+0

无论此属性如何,内部div都是外部div的*子元素*。 – Babiker 2010-06-20 02:18:37

+0

对,这很有道理。 – Travis 2010-06-20 02:22:25