user-select

La propiedad CSS user-select controla si el usuario puede seleccionar el texto. Esto no tiene ningún efecto en el contenido cargado bajo chrome, excepto en cuadros de texto.

/* Valores de palabras clave */
user-select: none;
user-select: auto;
user-select: text;
user-select: contain;
user-select: all;

/* Varoles globales */
user-select: inherit;
user-select: initial;
user-select: unset;

/* Valores Mozilla-specific */
-moz-user-select: none;
-moz-user-select: text;
-moz-user-select: all;

/* Valores WebKit-specific */
-webkit-user-select: none;
-webkit-user-select: text;
-webkit-user-select: all; /* No funciona el Safari; solo usa
                             "none" or "text", o si no hará
                             permitir escribir en el contenedor <html> */

/* Valores Microsoft-specific */
-ms-user-select: none;
-ms-user-select: text;
-ms-user-select: element;
Valor inicialauto
Applies toall elements
Heredableno
Mediavisual
Valor calculadocomo se especifica
Animation typediscrete
Canonical orderel orden único no-ambigüo definido por la gramática formal

Syntaxis

none
El texto y sus sub elementos no son seleccionables. Tenga en cuenta que el objeto Selection puede contener estos elementos.
auto
El valor calculado auto se determina de la siguiente manera: En los pseudo elementos ::before y ::after, el valor calculado es none
  • Si el elemento es un elemento editable, el valor calculado es contain
  • De lo contrario, si el valor calculador de user-select en la matriz de este elemento es all, el valor calculado es all
  • De lo contrario, si el valor calulado de user-select  en la matriz de este elemento es  none, el valor calculado es none
  • De lo contrario, el valor calculado es text
text
El texto puede ser seleccionado por el usuario.
all
En el editor HTML, si  se realiza doble-click o click-contextual en el subelemento, se seleccionará el antecesor más alto de el valor.
contain
Permite que la selección comience dentro del elemento; sin embargo, la selección estará contenida por los límites de ese elemento.
element (IE-specific alias)
Igual que contain. Solo lo soportado en Internet Explorer.

Formal syntax

auto | text | none | contain | all

Ejemplos

HTML

<p>Debería poder seleccionar este texto.</p>
<p class="unselectable">No puedes seleccionar este texto</p>
<p class="all">Al hacer clic una vez se seleccionará todo este texto.</p>

CSS

.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;
}

Resultado

Especificaciones

Especificación Estado Comentario
CSS Basic User Interface Module Level 4
La definición de 'user-select' en esta especificación.
Working Draft Initial definition. Also defines -webkit-user-select as a deprecated alias of user-select.

Compatibilidad con navegadores

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome para AndroidFirefox para AndroidOpera para AndroidSafari en iOSSamsung Internet
user-select
Experimental
Chrome Soporte completo 54
Soporte completo 54
Soporte completo 1
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Edge Soporte completo 12
Prefijado
Soporte completo 12
Prefijado
Prefijado Requiere de un prefijo de vendedor : -ms-
Soporte completo 12
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Firefox Soporte completo 69
Soporte completo 69
Soporte completo 1
Prefijado
Prefijado Requiere de un prefijo de vendedor : -moz-
Soporte completo 49
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Soporte completo 44
Prefijado Deshabilitado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Deshabilitado From version 44: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true). To change preferences in Firefox, visit about:config.
IE Soporte completo 10
Prefijado
Soporte completo 10
Prefijado
Prefijado Requiere de un prefijo de vendedor : -ms-
Opera Soporte completo 15
Prefijado
Soporte completo 15
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Safari Soporte completo 3
Prefijado
Soporte completo 3
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Sin soporte 2 — 3
Prefijado
Prefijado Requiere de un prefijo de vendedor : -khtml-
WebView Android Soporte completo 54
Soporte completo 54
Soporte completo ≤37
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Chrome Android Soporte completo 54
Soporte completo 54
Soporte completo 18
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Firefox Android Soporte completo 4
Prefijado
Soporte completo 4
Prefijado
Prefijado Requiere de un prefijo de vendedor : -moz-
Soporte completo 49
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Soporte completo 44
Prefijado Deshabilitado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Deshabilitado From version 44: this feature is behind the layout.css.prefixes.webkit preference (needs to be set to true). To change preferences in Firefox, visit about:config.
Opera Android Soporte completo 14
Prefijado
Soporte completo 14
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Safari iOS Soporte completo 3
Prefijado
Soporte completo 3
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
Samsung Internet Android Soporte completo 1.0
Prefijado
Soporte completo 1.0
Prefijado
Prefijado Requiere de un prefijo de vendedor : -webkit-
all
Experimental
Chrome Soporte completo 53Edge Sin soporte NoFirefox Soporte completo 1IE Sin soporte NoOpera Soporte completo 40Safari Sin soporte NoWebView Android Soporte completo 53Chrome Android Soporte completo 53Firefox Android Soporte completo 4Opera Android Soporte completo 41Safari iOS Sin soporte NoSamsung Internet Android Soporte completo 6.0
auto
Experimental
Chrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 1IE Soporte completo 10Opera Soporte completo 15Safari Soporte completo 2WebView Android Soporte completo ≤37Chrome Android Soporte completo 18Firefox Android Soporte completo 4Opera Android Soporte completo 14Safari iOS Soporte completo 3Samsung Internet Android Soporte completo 1.0
contain
Experimental
Chrome Sin soporte NoEdge Soporte completo 12
Nombre alternativo
Soporte completo 12
Nombre alternativo
Nombre alternativo Usa un nombre no estandar : element
Firefox Sin soporte NoIE Soporte completo 10
Nombre alternativo
Soporte completo 10
Nombre alternativo
Nombre alternativo Usa un nombre no estandar : element
Opera Sin soporte NoSafari Sin soporte NoWebView Android Sin soporte NoChrome Android Sin soporte NoFirefox Android Sin soporte NoOpera Android Sin soporte NoSafari iOS Sin soporte NoSamsung Internet Android Sin soporte No
none
Experimental
Chrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 21
Soporte completo 21
Sin soporte 1 — 65
Prefijado
Prefijado Requiere de un prefijo de vendedor : -moz-
IE Soporte completo 10Opera Soporte completo 15Safari Soporte completo 2WebView Android Soporte completo ≤37Chrome Android Soporte completo 18Firefox Android Soporte completo 21
Soporte completo 21
Sin soporte 4 — 65
Prefijado
Prefijado Requiere de un prefijo de vendedor : -moz-
Opera Android Soporte completo 14Safari iOS Soporte completo 3Samsung Internet Android Soporte completo 1.0
text
Experimental
Chrome Soporte completo 1Edge Soporte completo 12Firefox Soporte completo 1IE Soporte completo 10Opera Soporte completo 15Safari Soporte parcial 2
Notas
Soporte parcial 2
Notas
Notas Allows typing in the <html> container.
WebView Android Soporte completo ≤37Chrome Android Soporte completo 18Firefox Android Soporte completo 4Opera Android Soporte completo 14Safari iOS Soporte parcial 3
Notas
Soporte parcial 3
Notas
Notas Allows typing in the <html> container.
Samsung Internet Android Soporte completo 1.0

Leyenda

Soporte completo  
Soporte completo
Soporte parcial  
Soporte parcial
Sin soporte  
Sin soporte
Experimental. Esperar que el comportamiento cambie en el futuro.
Experimental. Esperar que el comportamiento cambie en el futuro.
Ver notas de implementación.
Ver notas de implementación.
El usuario debe de habilitar explícitamente esta característica.
El usuario debe de habilitar explícitamente esta característica.
Usa un nombre no estandar.
Usa un nombre no estandar.
Requiere de un prefijo de proveedor o un de nombre diferente para su uso.
Requiere de un prefijo de proveedor o un de nombre diferente para su uso.

Véase también