Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

292
Vistas
Implementando textarea resaltada en angular

pude resaltar el texto con este https://mattlewis92.github.io/angular-text-input-highlight/ . ¿Podría ayudarme a cambiar el color del texto y no el color de fondo del texto? Mi idea sería poner los tramos producidos encima del área de texto. ¿Pero no haría que el área de texto no se pueda hacer clic (al hacer clic en las partes resaltadas)?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Hay algunas cosas que podría hacer, todas ellas involucran CSS (por lo que necesita un archivo CSS personalizado).

Si desea utilizar el mismo color, puede agregar esta regla:

 .text-input-highlight-container .text-highlight-tag { color: some_color; }

Si desea tener un color fijo con diferentes colores de fondo:

 .bg-blue { color: some_color; } .bg-pink { color: some_other_color; }

Si desea poder poner diferentes colores por color de fondo:

 .text-blue { color: blue } .text-red { color: red; }

Y luego cambia su código para agregar esas clases de color de texto:

 tags: HighlightTag[] = [{ indices: { start: 8, end: 12 }, cssClass: 'bg-blue text-red', data: { user: { id: 1 } } }];

Sin embargo, esto solo funciona con algunos colores porque parece estar superpuesto al texto negro original.

Entonces, para que esto funcione con todo tipo de color, debe hacer que el texto normal sea transparente:

 .text-input-highlight-container textarea { color: transparent; }

Y en su código, aplica el resaltado a todo el texto, pero no coloca ninguna clase para el texto normal, por ejemplo.

 tags: HighlightTag[] = [{ indices: { start: 0, end: 11 }, cssClass: '', data: { user: { id: 1 } } }, { indices: { start: 8, end: 12 }, cssClass: 'bg-blue text-red', data: { user: { id: 1 } } }];

La primera parte se verá como texto normal y la segunda tendrá un fondo azul con texto rojo.

Espero que esto tenga sentido.

Actualizar:

Asegúrese de agregar también los índices del texto no resaltado a la matriz HighlightTag, como se muestra aquí: https://stackblitz.com/edit/angular-ivy-my8her?file=src%2Fapp%2Fapp.component.ts (Sin embargo, el css no se aplica en Stackblitz), por lo que también se envuelve en un lapso.

Y si ha establecido el color en transparente, debe proporcionar un color predeterminado para el texto dentro de los intervalos.

 .text-input-highlight-container .text-highlight-tag { color: black; //or any other color you want for the non-highlighted text }

Entonces puedes hacer

 .bg-blue { color: lightblue !important; } //background-color for bg-blue is lightblue so I wouldn't set text color to lightblue though

Con el color establecido en blanco para .bg-blue, se verá así:

ingrese la descripción de la imagen aquí

Actualización 2:

Examiné un poco más el HTML y no es necesario que envuelva el texto no resaltado en un lapso si no lo desea. Esto debería funcionar:

 .text-input-highlight-container .text-input-element { //the textarea color: transparent; } .text-input-highlight-container .text-highlight-element { //the superimposed text color: black; border-color: transparent; //otherwise you'll get a black border } .bg-blue { color: white; }

Aplicado a la página de demostración:

ingrese la descripción de la imagen aquí

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda