Кроссбраузерный способ скрыть отображение выбора

Я делаю браузерную javascript-игру. Таким образом, в игре пользователям не нужно копировать/вставлять текст. Однако есть много мест, где пользователю нужно щелкнуть и перетащить, чтобы сделать выбор в игре.

В игре есть много ячеек, внутри просто обычные ячейки таблицы с неразрывным пробелом, чтобы они не схлопывались в firefox (я мог остановить схлопывание в IE, Safari и Opera с помощью CSS, но по какой-то причине это не сработало в Firefox, поэтому я прибегал к неразрывным пробелам), либо со сплошным цветом фона, либо с фоновым изображением.

Когда игрок проводит по ним выделение, игра выделяет ячейки, изменяя цвет фона. Однако браузер также выделяет неразрывные пробелы, оставляя серые прямоугольники в некоторых ячейках.

Кроме того, браузер использует другой способ определения того, что выбрано, чем игра.

например в квадрате 5 x 5, если пользователь выбирает от (1, 1) до (3, 3), игра выделяет следующий выбор:

|   |   |   |   |   |
|   | X | X | X |   |
|   | X | X | X |   |
|   | X | X | X |   |
|   |   |   |   |   |

но браузер выделяет неразрывные пробелы в следующем:

|   |   |   |   |   |
|   |   | X | X | X |
| X | X | X | X | X |
| X | X | X | X |   |
|   |   |   |   |   |

Есть ли способ остановить отображение стиля выбора браузера? По крайней мере, в firefox и Chrome, а лучше в кроссбраузерном.


person Macha    schedule 09.05.2009    source источник


Ответы (2)


Для Firefox вы можете добавить стиль css: (руководство Mozilla)

-moz-user-select: none

Для хрома и сафари: (пока не удалось найти надежный источник)

-khtml-user-select:none

Если вы предпочитаете решение javascript, вот то, что я нашел в предыдущий ответ:

<div onselectstart="return false">some stuff</div>
person Nadia Alramli    schedule 09.05.2009

-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;

Дубликат: https://stackoverflow.com/a/4407335/746491?

person svimre    schedule 09.10.2012