Alguém sabe como fazer uma imagem não arrastável e não selecionável - ao mesmo tempo - no Firefox, sem recorrer ao Javascript? Parece trivial, mas aqui está o problema:
1) Pode ser arrastado e destacado no Firefox:
<img src="...">
2) Adicionamos isso, mas a imagem ainda pode ser destacada enquanto arrasta:
<img src="..." draggable="false">
3) Então, adicionamos isso, para corrigir o problema de destaque, mas, de maneira contrária, a imagem se torna arrastável novamente. Estranho, eu sei! Usando o FF 16.0.1
<img src="..." draggable="false" style="-moz-user-select: none;">
Então, alguém sabe por que adicionar "-moz-user-select: none" de alguma forma superaria e desativaria "draggable = false"? Obviamente, o webkit funciona como esperado. Não há nada nas Interwebs sobre isso ... Seria ótimo se pudéssemos esclarecer isso juntos.
Obrigado!!
Editar: trata-se de impedir que os elementos da interface do usuário sejam arrastados inadvertidamente e de melhorar a usabilidade - não uma tentativa fraca de um esquema de proteção contra cópia :-)
Respostas:
Defina as seguintes propriedades CSS para a imagem:
fonte
Eu esqueci de compartilhar minha solução, não consegui encontrar uma maneira de fazer isso sem usar o JS. Existem alguns casos em que o CSS sugerido pelo @Jeffery A Wooden simplesmente não cobre.
É isso que aplico a todos os meus contêineres da interface do usuário, sem necessidade de aplicar a cada elemento, pois ele recusa em todos os elementos filho.
CSS:
JS:
Isso foi muito mais complicado do que precisava ser.
fonte
<img src="..." draggable="false" style="-moz-user-select: none;" ondragstart="return false;">
para corresponder ao código do OP.Você pode usar a
pointer-events
propriedade em seu CSS e defini-la como 'none'Editado
isso irá bloquear (clique) evento. Então, uma solução melhor seria
fonte
Dependendo da situação, geralmente é útil tornar a imagem uma imagem de segundo plano de um
div
com CSS.Em seguida, em CSS:
Veja este JSFiddle para um exemplo ao vivo com um botão e uma opção de dimensionamento diferente.
fonte
Você provavelmente poderia apenas recorrer a
fonte
Uma solução genérica especialmente para o navegador Windows Edge (como a regra -ms-user-select: none; a regra CSS não funciona):
Nota: Isso pode poupar a necessidade de adicionar
draggable="false"
a cadaimg
tag quando você ainda precisa do evento click (ou seja, não pode usá-lopointer-events: none
), mas não deseja que a imagem do ícone de arrastar apareça.fonte
Você pode definir a imagem como imagem de fundo. Como reside em a
div
ediv
é irreconhecível, a imagem ficará irreconhecível:fonte
Criei um elemento div que tem o mesmo tamanho da imagem e está posicionado na parte superior da imagem . Em seguida, os eventos do mouse não vão para o elemento de imagem.
fonte