--- 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 はこの問題を修正し、最終的な動作が仕様書に合うようにすることを選択しています。
noneautoauto の使用値は下記のように決められます。
::before と ::after の擬似要素では、使用値は none になります。contain になります。user-select の使用値が all の場合、対象要素の使用値も all になります。user-select の使用値が none の場合、対象要素の使用値も none になります。text になります。textallcontainelement{{non-standard_inline}} (IE 特有のエイリアス)contain と同じです。 Internet Explorer だけが対応しています。注: CSS UI 4 では、 user-select: element が contain に名称が変わります。
{{CSSInfo}}
{{csssyntax}}
<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")}}