2010-06-20 2 views
8

Я пытаюсь предотвратить выделение текста в Firefox для некоторых, но не всех элементов на странице. Рассмотрим следующий пример:«user-select: none» и странное поведение в 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 должен быть highlightable. Однако это не работает. На практике ни один текст не может быть выделен.

Мне интересно, если я что-то делаю неправильно? Если нет, знает ли кто-нибудь об обходном пути для этой ситуации?

Спасибо!

п.с. Я хотел бы добавить, что с помощью заместителя ...

-webkit-user-select: none; 

... в приведенном выше примере прекрасно работает в WebKit браузерах

+1

У меня есть веб-приложение, которое много перетаскивает. Случайные мускулиты могут вызвать подсветку, что безвредно, но может ввести в заблуждение пользователя. – Travis

ответ

13

Заменить

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

с

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

description из -moz-user-select состояний собственности, -moz-none означает, что текст элемента и суб-элементы не может быть выбран, но выбор может быть включен подэлементы, используя -moz-user-select: text;

+0

Очень приятно. Благодаря! – Travis

+0

Что меня поймал, используя -moz-user-select: all. По какой-то причине это не работает, и вам нужно использовать -moz-user-select: text. –

-1

Вы можете попробовать onmousedown="return false" и вы можете изменить курсор, если вы не хотите, выбор или указатель с cursor:

2

Mozilla сообщает следующее о none собственности:

Текст элемента и Подэлементы будут отображаться так, как если бы они не были выбраны . Любое использование Выбор, однако, будет содержать эти элементы .

Прочитано -moz-user-select.

+0

Это правда. Однако внутренний -moz-user-select по-прежнему не применяется должным образом. На практике все может быть выделено, но должен быть выделен только внутренний текст. – Travis

+0

Независимо от того, что это свойство делает, внутренний div является * подэлементом * внешнего div. – Babiker

+0

Правильно, это имеет смысл. – Travis

Смежные вопросы