Есть ли выбор пользователя для Opera 10.62 и IE9? - PullRequest
11 голосов
/ 10 октября 2010

Я пытался применить user-select для Opera 10.62 и IE9, но безуспешно. Я не могу / не буду связывать события с JavaScript, которые preventDefault(), потому что есть так много мест, которые нельзя установить, и мне все еще нужно сохранять выборки в нескольких местах. Фактически, я хочу, чтобы поведение по умолчанию было невыбираемым для всего документа, и поэтому я установил следующее в своей таблице стилей:

* {
    -o-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

Все отлично работает с Firefox 4, Chrome 7 и Safari 5. Только IE9 и Opera 10.62 не работают так, как мне бы этого хотелось. Есть идеи?

PS: я ориентируюсь на современные браузеры.

Ответы [ 5 ]

7 голосов
/ 11 октября 2010

Вы пытались использовать ::selection {color:currentColor;background:transparent}?
Для Firefox вы можете использовать ::-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 //
Также есть свойство , которое невозможно выбрать .
4 голосов
/ 11 марта 2011

Вы можете использовать комбинацию -webkit-user-select: none;, -moz-user-select: none; и определенного свойства unselectable="on", как я здесь описал:

Как сделать текст невыбираемым на странице HTML

2 голосов
/ 12 января 2011

user-select не является стандартным свойством CSS3, поэтому здесь нет user-select, -o-user-select или -ms-user-select. Раньше он был в спецификации старого пользовательского интерфейса, но он был заменен спецификацией Basic UI. Вероятно, он никогда не будет реализован ни одним браузером, если он не будет добавлен обратно в спецификацию.

Выбор пользователя - это поведение, а не стиль, поэтому лучше использовать JavaScript. Как упоминает Кну выше, вместо этого вы можете использовать невыбираемый.

0 голосов
/ 27 декабря 2013

-ms-user-select: нет;

, кажется, теперь работает нормально (IE 10/11)

0 голосов
/ 05 июля 2013

Использование jquery:

$('.element').mousedown( function(e) {
    e.preventDefault();
});

Но вам, возможно, придется добавить его как в элемент, так и в его контейнер.

...