Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

user-select

La propriété user-select permet de contrôler l'opération de sélection. Cela n'a aucun effet sur le contenu qui est chargé dans les éléments de l'interface (chrome), sauf pour les boîtes de texte. La propriété semblable user-focus a été proposée dans certains brouillons pour css3-ui mais a été rejetée par le groupe de travail.

Note : Voir le tableau de compatibilité pour les différents préfixes utilisés par les navigateurs

Syntaxe

user-select: none;
user-select: auto;
user-select: text;
user-select: contain;
user-select: all;

-moz-user-select: none;
-moz-user-select: text;
-moz-user-select: all;

-webkit-user-select: none;
-webkit-user-select: text;
-webkit-user-select: all; 
/* ne fonctionne pas dans Safari, seules les
   valeurs "none" et "text" fonctionnent */

-ms-user-select: none;
-ms-user-select: text;
-ms-user-select: element;
none
On ne pourra pas sélectionner le texte de l'élément et celui de ses descendants. La sélection peut contenir ces éléments. À partir de Firefox 21, none se comporte comme -moz-none et la sélection peut donc être réactivée sur les éléments fils avec -moz-user-select:text.
auto
Le texte sera sélectionné avec les propriétés par défaut appliquées par l'agent utilisateur.
text
Le texte peut être sélectionné par l'utilisateur.
-moz-none
Le texte de l'élément et des sous-éléments apparaissent comme s'ils ne pouvaient pas être sélectionnés. La sélection peut toutefois contenir ces éléments et on peut la réactiver pour les éléments fils avec -moz-user-select:text.
all
Dans un éditeur HTML, si un double clic ou si un clic contextuel se produit sur les éléments fils, c'est la valeur de l'ancêtre le plus haut qui sera sélectionnée.
contain
element (alias spécifique à IE)
Uniquement supporté par Internet Explorer. Cela permet d'activer la sélection au sein de l'élément, celle-ci ne pourra pas « sortir » de cet élément.

Note : user-select ne fait pas partie de la spécification CSS du W3C. Il y a donc quelques différences entre les différentes implémentations. Attention à bien tester votre application sur les différents navigateurs. Par exemple, l'héritage diffère entre les navigateurs :

  • Avec Firefox,  -moz-user-select n'est pas hérité depuis les éléments positionnés de façon absolue
  • Avec Safari et Chrome -webkit-user-select est hérité depuis ces éléments.
auto | text | none | contain | all

Exemples

CSS

.unselectable {
  user-select: none;
  -moz-user-select: none;
  -webkit-user-select: none;
  -ms-user-select: none;
}

HTML

<body>
  <p class="unselectable">L'utilisateur ne pourra pas sélectionner 
  ce texte dans Firefox, Chrome, Safari et IE.</p>
</body>

Résultat

Spécifications

Spécification État Commentaires
CSS Basic User Interface Module Level 4
La définition de 'user-select' dans cette spécification.
Version de travail Définition initiale. -webkit-user-select est indiqué comme étant un alias déprécié de user-select.

Compatibilité des navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 6.0-webkit

(Oui)-ms--webkit

(Oui)-moz[1] 10-ms-webkit 15.0-webkit 3.1-webkit
element Pas de support (Oui) Pas de support (Oui) ? Pas de support
Fonctionnalité Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile
Support simple 2.1 ? 10(Oui)-ms
11-webkit [2]
Pas de support 3.2(Oui)
element ? ? ? ? ?

[1] En plus de la version préfixée par -moz, Gecko 44.0 (Firefox 44.0 / Thunderbird 44.0 / SeaMonkey 2.41) prend en charge la version préfixée par -webkit à des fins de compatibilité web grâce à la préférence layout.css.prefixes.webkit dont la valeur par défaut vaut false. Depuis Gecko 49.0 (Firefox 49.0 / Thunderbird 49.0 / SeaMonkey 2.46), cette valeur par défaut est passée à true.

[2] Voir la documentation sur MSDN.

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : SphinxKnight, Sheppy, Fredchat, teoli, louuis
 Dernière mise à jour par : SphinxKnight,