Seleção do usuário - CSS-Tricks

Anonim

A user-selectpropriedade em CSS controla como o texto em um elemento pode ser selecionado. Por exemplo, ele pode ser usado para tornar o texto não selecionável.

.row-of-icons ( -webkit-user-select: none; /* Chrome all / Safari all */ -moz-user-select: none; /* Firefox all */ -ms-user-select: none; /* IE 10+ */ user-select: none; /* Likely future */ )

Isso é útil em situações em que você deseja fornecer uma experiência de copiar e colar mais fácil / limpa para os usuários (não permitir que eles selecionem acidentalmente coisas inúteis, como ícones ou imagens). No entanto, é um pouco bugado. O Firefox reforça o fato de que nenhum texto correspondente a esse seletor pode ser copiado. O WebKit ainda permite que o texto seja copiado se você selecionar elementos ao seu redor.

Você também pode usar isso para garantir que um elemento inteiro receba seleção:

.force-select ( -webkit-user-select: all; /* Chrome 49+ */ -moz-user-select: all; /* Firefox 43+ */ -ms-user-select: all; /* No support yet */ user-select: all; /* Likely future */ )

Aqui estão algumas demonstrações desses:

Veja o demo selecionado pelo usuário da caneta por Chris Coyier (@chriscoyier) no CodePen.

Não houve especificações para esta propriedade por um bom tempo, mas agora é abordada no Módulo de interface do usuário básico CSS nível 4.

O valor padrão é auto, o que faz a seleção acontecer normalmente conforme o esperado. “Normalmente” é um pouco complicado. Vale a pena citar as especificações aqui:

  • Nos pseudo elementos :: before e :: after, o valor calculado é none
  • Se o elemento for um elemento editável , o valor calculado écontain
  • Caso contrário, se o valor calculado da seleção do usuário no pai deste elemento for all, o valor calculado seráall
  • Caso contrário, se o valor calculado da seleção do usuário no pai deste elemento for none, o valor calculado seránone
  • Caso contrário, o valor calculado é text

Em outras palavras, ele entra em cascata de maneira inteligente e retorna a um estado sensorial. Parece que talvez esse recurso pudesse ser usado para tornar pseudo-elementos selecionáveis, mas nenhuma palavra final ainda.

Mais antigo / proprietário

O Firefox suporta -moz-none, o que é como nenhum, exceto que significa que subelementos podem substituir a cascata e se tornar selecionáveis ​​novamente com o -moz-user-select: text;Firefox 21, nenhum se comporta como -moz-none.

O Internet Explorer também oferece suporte a um valor proprietário até agora element, no qual você pode selecionar o texto dentro do elemento, mas a seleção irá parar nos limites desse elemento.

Mais Informações

  • MDN Docs
  • Interoperabilidade de seleção do usuário

Suporte para navegador

Isso é especificamente para -*-user-select: none;

Os dados de suporte deste navegador são do Caniuse, que tem mais detalhes. Um número indica que o navegador oferece suporte ao recurso nessa versão e superior.

Área de Trabalho

cromada Raposa de fogo IE Beira Safári
4 * 2 * 10 * 12 * 3,1 *

Celular / Tablet

Android Chrome Android Firefox Android iOS Safari
88 85 2,1 * 3,2 *