如何在双击时禁用文本选择,但不是这样?

时间:2015-02-22 22:57:50

标签: css html5 selection double-click

有很多像这样的问题,我看到的每个答案都是:使用user-select: none。这让我感到惊讶,因为在大多数情况下完全禁用选择是非常糟糕的主意。

我想在我的HTML5应用中禁用选择,因为我使用了大量<a>元素而没有hrefs,当用户足够快地点击它们时,它们会突出显示。那很糟。但我仍然希望他们能够通过按住鼠标按钮并拖动来正常选择文本。

2 个答案:

答案 0 :(得分:0)

我有一个基本的脚本解决方案。查看this JSFiddle。基本上,我所做的是根据Javascript事件存储和恢复selectionStartselectionEnd值。自基础版本以来,我对它进行了简化。它应该可以完美地用于在双击时禁用文本选择。

到目前为止,我还没想过在CSS中做到这一点。

答案 1 :(得分: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>

...