2015-02-22 2 views
1

Существует множество вопросов, таких как этот и каждый ответ, который я видел: используйте user-select: none. Это меня удивляет, потому что отключение выбора полностью в большинстве случаев очень плохое.Как отключить выбор текста при двойном щелчке, но не иначе?

Я хочу отключить выделение в своем приложении HTML5, потому что я использую множество <a> элементов без hrefs, и когда пользователь нажимает их достаточно быстро, они выделяются. Плохо. Но я все же хочу, чтобы они могли нормально выбирать текст, удерживая кнопку мыши и перетаскивая ее.

+0

Можете ли вы привести простой живой пример? Кода и css? a: focus {pointer-events: none;} будет делать) –

+0

Это ничего не делает. –

+0

плохого догадаться, тогда любой код ситуации для обмена? : –

ответ

0

У меня есть основное решение для создания сценариев. Выезд this JSFiddle. В основном, то, что я сделал, - это хранить и восстанавливать значения, основанные на событиях Javascript, selectionStart и selectionEnd. Я упростил его с базовой версии. Он должен отлично работать для отключения выбора текста с двойным щелчком.

Нет никакого реального способа сделать это в CSS, о котором я думал до сих пор.

0

не слишком уверен, что я понимаю ваш смысл. Вы пытаетесь что-то вроде этого?

Запуск демо в фрагменте ниже или в codepen DEMO

::-moz-selection { 
 
    background: red; 
 
} 
 
::-webkit-selection { 
 
    background: red; 
 
} 
 

 
::selection { 
 
    background: red; 
 
} 
 
a:active::-moz-selection { 
 
    background: transparent; 
 
} 
 
a:active::-webkit-selection { 
 
    background: transparent; 
 
} 
 

 
a:active::selection , a:focus::selection{/* focus + tabindex for ie where no href*/ 
 
    background: transparent; 
 
} 
 
a {border:solid;}
<p>Pellentesque <a>habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas</a>. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit <a tabindex="0">Internet Explorer</a>amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p>

??

+0

OP хотел что-то, чтобы пользователь не мог выбирать текст при двойном щелчке. Не выбор в целом. Ваше решение полностью предотвращает выбор пользователем _any_ текста. – andrewgu