¡Aquí hay unas preguntas CSS interesantes para ti!
Tengo un área de texto con un fondo transparente que superpone algunos TEXTOS que me gustaría usar como una especie de marca de agua. El texto es grande y ocupa la mayoría del área de texto. Se ve bien, el problema es que cuando el usuario hace clic en el área de texto, a veces selecciona el texto de la marca de agua. Quiero que el texto de la marca de agua nunca sea seleccionable. Esperaba que si algo estuviera más bajo en el índice z no sería seleccionable, pero los navegadores no parecen preocuparse por las capas de índice z al seleccionar elementos. ¿Hay algún truco o forma de hacerlo para que este DIV nunca sea seleccionable?
Respuestas:
Escribí una extensión simple de jQuery para deshabilitar la selección hace algún tiempo: deshabilitar selección en jQuery . Puedes invocarlo a través de
$('.button').disableSelection();
Alternativamente, usando CSS (cross-browser):
fuente
El siguiente código CSS funciona navegador casi moderno:
Para IE, debe usar JS o insertar atributo en la etiqueta html.
fuente
unselectable="on"
? ¿Puede dar una referencia por favorSimplemente actualizo la respuesta original y muy votada de aleemb con un par de adiciones al CSS.
Hemos estado usando el siguiente combo:
Recibimos la sugerencia para agregar la entrada webkit-touch de:
http://phonegap-tips.com/articles/essential-phonegap-css-webkit-touch-callout.html
Abril de 2015: solo actualizo mi propia respuesta con una variación que puede ser útil. Si necesita hacer que el DIV sea seleccionable / no seleccionable sobre la marcha y esté dispuesto a utilizar Modernizr , lo siguiente funciona perfectamente en javascript:
fuente
user-select: none
a undiv
no tiene efecto alguno. Estoy bastante seguro de queuser-select
es solo para texto. ¿Hay otras formas de hacer undiv
no seleccionable?Como Johannes ya ha sugerido, una imagen de fondo es probablemente la mejor manera de lograr esto solo en CSS.
Una solución de JavaScript también debería afectar el "arrastre" para que sea eficaz en todos los navegadores populares.
JavaScript:
jQuery:
Rico
fuente
Puedes usar
pointer-events: none;
en tu CSSfuente
puedes probar esto:
fuente
¿No sería suficiente una simple imagen de fondo para el área de texto?
fuente
Los navegadores WebKit (es decir, Google Chrome y Safari) tienen una solución CSS similar a la de Mozilla -moz-user-select: none
fuente
También en IOS si desea deshacerse de las superposiciones semitransparentes grises que aparecen en el tacto, agregue css:
fuente
Utilizar
onselectstart = "return false"
Impide copiar tu contenido.
fuente
Asegúrese de establecer la posición explícitamente como absoluta o relativa para que el índice z funcione para la selección. Tuve un problema similar y esto lo resolvió por mí.
fuente
No estoy seguro de su caso de uso, pero podría hacerlo arrastrable.
fuente