Как отключить выбор текста с помощью CSS или JavaScript?

Возможный дубликат:
правило CSS для отключения выделения текста

Я создаю галерею HTML/CSS/jQuery с несколькими страницами.

У меня действительно есть "следующая" кнопка, которая является простой ссылкой с помощью прослушивателя jQuery.

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

Итак, вот мой вопрос: Можете ли вы отключить выбор текста в HTML? Если нет, я ужасно пропустил бы вспышку и ее высокий уровень конфигурации на текстовых полях...

Ответ 1

<div 
 style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select:none; user-select:none;-o-user-select:none;" 
 unselectable="on"
 onselectstart="return false;" 
 onmousedown="return false;">
    Blabla
</div>

Ответ 2

ОБНОВЛЕНИЕ Январь 2017:

В соответствии с Могу ли я использовать, user-select в настоящее время поддерживается во всех браузерах, кроме Internet Explorer 9 и более ранних версий (но, к сожалению, все еще требуется префикс поставщика).


Все правильные варианты CSS:

.noselect {
  -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 */
}
<p>
  Selectable text.
</p>
<p class="noselect">
  Unselectable text.
</p>

Ответ 3

Попробуйте этот CSS-код для совместимости с несколькими браузерами.

-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-o-user-select: none;
user-select: none;

Ответ 4

Вы можете использовать JavaScript, чтобы делать то, что хотите:


if (document.addEventListener !== undefined) {
  // Not IE
  document.addEventListener('click', checkSelection, false);
} else {
  // IE
  document.attachEvent('onclick', checkSelection);
}

function checkSelection() {
    var sel = {};
    if (window.getSelection) {
        // Mozilla
        sel = window.getSelection();
    } else if (document.selection) {
        // IE
        sel = document.selection.createRange();
    }

    // Mozilla
    if (sel.rangeCount) {
        sel.removeAllRanges();
        return;
    }

    // IE
    if (sel.text > '') {
        document.selection.empty();
        return;
    }
}

Мыльная коробка: Таким образом, вы действительно не должны привинчиваться к клиентскому пользовательскому агенту. Если клиент хочет выбрать вещи в документе, они должны иметь возможность выбирать вещи в документе. Не имеет значения, нравится ли вам цвет подсветки, потому что вы не просматриваете документ.

Ответ 5

Я не уверен, что вы можете отключить его, но вы можете изменить его цвет:)

myDiv::selection,
myDiv::-moz-selection,
myDiv::-webkit-selection {
    background:#000;
    color:#fff;
}

Затем просто сопоставьте цвета с вашим "темным" дизайном и посмотрите, что получится:)