Я понимаю, что это поведение дает вам возможность переопределить поведение метода базового класса в производном классе.
Предположим, что у вас есть функция foo (int) в базовом классе, и вы хотите изменить поведение этой функции в производном классе. Теперь, если метод базового класса не скрыт методом вашего производного класса (который имеет тот же прототип, что и метод базового класса), он будет вводить неоднозначность в разрешении перегрузки.
Это работает в некоторых браузерах:
::selection{ background-color: transparent;}
::moz-selection{ background-color: transparent;}
::webkit-selection{ background-color: transparent;}
Просто добавьте нужные элементы / идентификаторы перед селекторами, разделенными запятыми без пробелов, например:
h1::selection,h2::selection,h3::selection,p::selection{ background-color: transparent;}
h1::moz-selection,h2::moz-selection,h3::moz-selection,p::moz-selection{ background-color: transparent;}
h1::webkit-selection,h2::webkit-selection,h3::webkit-selection,p::webkit-selection{ background-color: transparent;}
Другие ответы лучше; это, вероятно, следует рассматривать как последнее средство / ловушку.
Aside from the Mozilla-only property, no, there is no way to disable text selection with just standard CSS (as of now).
If you notice, Stack Overflow doesn't disable text selection for their navigation buttons, and I would recommend against doing so in most cases, since it modifies normal selection behavior and makes it conflict with a user's expectations.
Вы можете сделать это в Firefox и Safari (Chrome также?)
::selection { background: transparent; }
::-moz-selection { background: transparent; }
До тех пор, пока не станет доступно свойство CSS 3 user-select , браузеры на основе Gecko поддерживают -moz-user-select
недвижимость, которую вы уже нашли. WebKit и основанные на Blink браузеры поддерживают свойство -webkit-user-select
.
Это, конечно, не поддерживается в браузерах, которые не используют движок рендеринга Gecko.
Нет простого и удобного способа сделать это в соответствии со стандартами; использование JavaScript является опцией.
Реальный вопрос заключается в том, почему вы хотите, чтобы пользователи не могли выделять и предположительно копировать и вставлять определенные элементы? Я ни разу не сталкивался с тем, что хотел бы, чтобы пользователи не выделяли определенную часть моего сайта. Несколько моих друзей,
Решение JavaScript для Internet Explorer:
onselectstart="return false;"
Можно также хотеть предотвратить появление контекстного меню, когда касающиеся кнопки Мне нравится элементов, которым предотвратили их выбор. Чтобы сделать, которые добавляют этот код ко всей странице или просто те элементы кнопки:
$("body").on("contextmenu",function(e){
return false;
});
С Дерзость можно сделать это:
// DISABLE SELECTION
@mixin disable-selection {
-webkit-touch-callout: none; /* iOS Safari */
-webkit-user-select: none; /* Safari */
-khtml-user-select: none; /* Konqueror HTML */
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* Internet Explorer/Edge */
user-select: none; /* Non-prefixed version, currently supported by Chrome and Opera */
}
// NO SELECTABLE ELEMENT
.no-selectable {
@include disable-selection;
}
В HTML-тэге:
<div class="no-selectable">TRY TO HIGHLIGHT</div>
ПРАВИЛЬНОЕ РЕШЕНИЕ ДЛЯ CSS:
Theres ошибка, еще не получая сопоставитель, таким образом, мы можем использовать его:
::-moz-selection {
}
::selection {
}
И voilГЎ, нет никакого выделения, но becasue bug
, или feature
?