Campos de entrada selecionáveis e textaras, mas nenhum outro conteúdo selecionável no Firefox?
Pergunta
Preciso impedir que os usuários selecionem elementos na minha interface do usuário da web, exceto para texto em campos de entrada e textaras. Para o Firefox, a técnica parece ser usar este CSS:
* { -moz-user-select: none; }
E isso funciona bem o suficiente (Firefox testado 3.5.2), exceto que você não pode selecionar em campos de entrada ou textaras.
Eu tentei dividi -lo em
div,td,span,img { -moz-user-select: none; }
input,textarea { -moz-user-select: text; }
No entanto, se o campo de entrada estiver dentro de uma div, td ou span, ele não será selecionado. Parece que a propriedade de seleção-usuário -moz também é aplicada a todas as crianças, não importa se essas crianças substituem o cenário. Alguém sabe uma maneira de contornar isso, além de estabelecer isso em um nível muito mais granular (e irritante) para elementos específicos?
NOTA Isso não é para fins de segurança. Estou bem fazendo com que os usuários visualizem usuários de origem ou avançado desativando isso. Mas para a interface do usuário da Web com funcionalidade de arrastar e soltar, ou apenas aqueles que devem se comportar como um aplicativo em geral, e não como um documento, é realmente estranho poder selecionar acidentalmente o texto. E isso acontece frequentemente para a maioria dos usuários.
Solução
* { -moz-user-select: -moz-none; }
input,textarea { -moz-user-select: text; }
Outras dicas
Você está lutando contra uma causa perdida. Se eu realmente quiser selecionar texto na sua página ou obtê -lo de alguma forma, eu o farei.
No entanto, em sua pergunta. Tente adicionar! IMPORTANTE até o final, então parece o seguinte:
div,td,span,img { -moz-user-select: none; }
input,textarea { -moz-user-select: text !important; }