para formulario form estilos estilo editar darle code html css selection pseudo-element css-content

html - formulario - ¿Es posible seleccionar contenido generado en css?



editar formulario contact form (3)

Esta pregunta ya tiene una respuesta aquí:

Digamos que tengo marcado:

<div data-generated="world!">Hello </div>

..con CSS:

div:after { content: attr(data-generated); }

Esto produce el texto: ¡Hola mundo! - FIDDLE

div:after { content: attr(data-generated); }

<div data-generated="world!">Hello </div>

PERO...

Si intento seleccionar / Copiar el texto, solo se puede seleccionar la parte ''hola''.

¿Hay alguna manera de seleccionar el texto generado por css?

NÓTESE BIEN:

1) He examinado las especificaciones ( here y here ) con respecto al contenido generado y no he visto ninguna referencia a este problema.

La especificación here y here parece decir que el contenido generado debe ser seleccionable

El contenido generado debe poder buscarse, seleccionarse y estar disponible para las tecnologías de asistencia.

2) Si la respuesta a esta pregunta es ''no, no es posible'', por favor, haga un enlace a una fuente creíble que lo indique.


En lugar de seleccionar el contenido generado, puedes simular esto con algún javascript.

Me tropecé con este blog de David Walsh , donde proporciona código que recupera el contenido generado.

Usando eso, puede agregar el contenido generado al contenido regular para simular la selección del contenido generado, luego puede configurar el contenido generado con display:none para que no aparezca dos veces. Me gusta esto:

FIDDLE

String.prototype.unquoted = function() { return this.replace(/(^[''"])|([''"]$)/g, '''') } var element = document.getElementById(''div1''); var content = window.getComputedStyle( element, '':after'' ).getPropertyValue(''content''); element.innerHTML = element.innerHTML + content.unquoted(); console.log(content.unquoted());

div:after { content: attr(data-generated); display: none; }

<div id="div1" data-generated=" world!">Hello</div>

Entonces, ¿por qué querrías hacer algo así?

Bueno, probablemente nunca querrá hacer esto, pero dejé un largo comentario sobre la pregunta que explica una restricción particular que una vez tuve, donde esto podría haber sido una solución.

NB: Me doy cuenta de que esta ''solución'' realmente no selecciona el contenido generado en sí, pero decidí publicar esta respuesta en caso de que alguien por ahí alguna vez necesitara una solución.



No, no puedes.

Consulte Selección y manipulación de pseudo-elementos CSS como :: before y :: after using jQuery . Para repetir lo que se describe allí, el contenido generado no es parte del DOM.

En las palabras de la especificación CSS2.1 ,

El contenido generado no altera el árbol de documentos.

El contenido generado solo existe en el mundo visual del motor de renderizado. La selección se trata de seleccionar partes del DOM. El contenido generado no está en el DOM, por lo tanto, no se puede seleccionar. Por el mismo motivo, los contadores generados o las viñetas de elementos de lista no se pueden seleccionar.