--- title: user-select slug: Web/CSS/user-select tags: - CSS - CSS Property - Property - Reference - Selection - 'recipe:css-property' - user-select translation_of: Web/CSS/user-select ---
user-select
は CSS のプロパティで、ユーザーが文章を範囲選択できるかどうかを制御します。これは、テキストボックスを除いて、{{Glossary("Chrome", "クローム")}}として読み込まれたコンテンツには何の影響も与えません。
/* キーワード値 */ user-select: none; user-select: auto; user-select: text; user-select: contain; user-select: all; /* グローバル値 */ user-select: inherit; user-select: initial; user-select: unset; /* Mozilla 特有の値 */ -moz-user-select: none; -moz-user-select: text; -moz-user-select: all; /* WebKit 特有の値 */ -webkit-user-select: none; -webkit-user-select: text; -webkit-user-select: all; /* Safari では動作しません。 "none" または "text" を使ってください。さもないと、 <html> コンテナーで入力可能になってしまいます。 */ /* Microsoft 特有の値 */ -ms-user-select: none; -ms-user-select: text; -ms-user-select: element;
注: user-select
は継承されるプロパティではありませんが、多くの場合、初期値の auto
は継承されているように見えます。 WebKit/Chromium ベースのブラウザーは、仕様書に書かれている動作に従わず、このプロパティを継承するように実装しており、いくつかの問題を発生させています。現在までに、 Chromium はこの問題を修正し、最終的な動作が仕様書に合うようにすることを選択しています。
none
auto
auto
の使用値は下記のように決められます。
::before
と ::after
の擬似要素では、使用値は none
になります。contain
になります。user-select
の使用値が all
の場合、対象要素の使用値も all
になります。user-select
の使用値が none
の場合、対象要素の使用値も none
になります。text
になります。text
all
contain
element
{{non-standard_inline}} (IE 特有のエイリアス)contain
と同じです。 Internet Explorer だけが対応しています。注: CSS UI 4 では、 user-select: element
が contain
に名称が変わります。
{{CSSInfo}}
<p>このテキストを選択できるはずです。</p> <p class="unselectable">ちょっと、このテキストの選択はできませんよ!</p> <p class="all">一度クリックすると、このテキスト全体を選択します。</p>
.unselectable { -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; user-select: none; } .all { -moz-user-select: all; -webkit-user-select: all; -ms-user-select: all; user-select: all; }
{{EmbedLiveSample("Examples")}}
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('CSS4 UI', '#propdef-user-select', 'user-select')}} | {{Spec2('CSS4 UI')}} | 初回定義。 -webkit-user-select は user-select の非推奨のエイリアスであることも定義した。 |
{{Compat("css.properties.user-select")}}