ダブルクリックしたときにdiv要素の強調表示を停止する方法


91

このdiv要素に背景画像があり、それをダブルクリックしたときにdiv要素の強調表示を停止したい。このためのCSSプロパティはありますか?


どのブラウザを使用していますか?私のテストでは、Firefox 5、Chrome 12、IE9でdiv全体を強調表示することができませんでした。
tw16

回答:


154

以下のCSSは、ユーザーがテキストを選択できないようにします。ライブの例:http : //jsfiddle.net/hGTwu/20/

-webkit-user-select: none; /* Chrome/Safari */        
-moz-user-select: none; /* Firefox */
-ms-user-select: none; /* IE10+ */

/* Rules below not implemented in browsers yet */
-o-user-select: none;
user-select: none;

IE9を下方に向けてOperaをunselectable使用するには、代わりにhtml属性を使用する必要があります。

<div unselectable="on">Test Text</div>

これにより、div全体が強調表示されるのを防ぐことはできませんでした。私はそれがテキストのみであることに気づきました。ダブルクリックしたときにdiv全体が強調表示されないようにしたいのですが。
デイブ、2011

@dave:ダブルクリックでハイライトが発生するのはテキストがそこにあるときだけだったので、それがあなたの意図したものだと思いました。反対投票する必要はありません。
tw16

1
IEまたはOperaでは機能しません。unselectable属性が必要です。-o-user-selectちなみにはありません。
Tim Down

SASS / SCSSユーザーへの注意:@include user-select(none);未加工のCSSを使用する代わりに使用可能
hilnius

不思議なことに、これはdivがでもドラッグできるようになりましたdraggable = falseが、Firefoxでのみです。
rovyko

51

これは私のために働く

html
{
  -webkit-tap-highlight-color:transparent;
}

これが最良の答えです。
JohnA10

11
これはChromeやSafariなどのWebkitブラウザーにのみ関連し、IEやFirefoxのどのバージョンでも機能しない可能性があります。
Simon East

30

Chromeでdivの強調表示を停止する解決策を見つけようとしていたところ、この投稿に目を向けました。しかし、残念ながら、どの回答も私の問題を解決しませんでした。

多くのオンライン調査の結果、修正は非常に簡単なものであることがわかりました。複雑なCSSは必要ありません。次のCSSをWebページに追加するだけで、準備は完了です。これはラップトップだけでなくモバイル画面でも機能します。

div { outline-style:none;}

:これはChromeバージョン44.0.2403.155 mで機能しました。また、https//developer.mozilla.org/en-US/docs/Web/CSS/outline-styleで説明されているように、今日のすべての主要ブラウザでサポートされています。


8

私はCSSの専門家ではありませんが、影響を受ける要素の数を増やす限り、tw16の回答を使用できると思います。たとえば、これにより、他の種類の対話性に影響を与えることなく、ページのすべての場所を強調表示できなくなります。

*, *:before, *:after {
    -webkit-user-select: none; /* Chrome/Safari */        
    -moz-user-select: none; /* Firefox */
    -ms-user-select: none; /* IE10+ */
}

その最初の行はPaul Irishの好意によるものです(http://adamschwartz.co/magic-of-css/chapters/1-the-box/を介して)。


iOS 13にPWAがある場合は、このCSSを使用しないでください。これにより、キーボードが完全にブロックされます。
フェル

2

すべてのdiv要素をターゲットにする:

div::-moz-selection { background:transparent; }
div::selection { background:transparent; }

すべての要素をターゲットにする:

::-moz-selection { background:transparent; }
::selection { background:transparent; }

1

ユーザー選択を無効にする:

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

選択した要素の背景を透明に設定します。

div::-moz-selection { background:transparent; }
div::selection { background:transparent; }

3
このコードスニペットは問題を解決する可能性がありますが、説明を含めると、投稿の品質を向上させるのに役立ちます。あなたは将来の読者のための質問に答えていることを覚えておいてください、そしてそれらの人々はあなたのコード提案の理由を知らないかもしれません。
msrd0 2015年

0

要素がクリック可能な場合、ボタン要素にすることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.