Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

148
Visualizações
Angular 2 - estilo HTML interno

Recibo fragmentos de códigos HTML de llamadas HTTP. Coloco los bloques HTML en una variable y los inserto en mi página con [innerHTML] pero no puedo diseñar el bloque HTML insertado. ¿Alguien tiene alguna sugerencia de cómo podría lograr esto?

 @Component({ selector: 'calendar', template: '<div [innerHTML]="calendar"></div>', providers: [HomeService], styles: [`h3 { color: red; }`] })

El HTML que quiero diseñar es el bloque contenido en la variable "calendario".

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

actualización 2 ::slotted

::slotted ahora es compatible con todos los navegadores nuevos y se puede usar con ViewEncapsulation.ShadowDom

https://developer.mozilla.org/en-US/docs/Web/CSS/::ranurado

actualización 1 :: ng-profundo

/deep/ quedó en desuso y se reemplazó por ::ng-deep .

::ng-deep también está marcado como obsoleto, pero aún no hay un reemplazo disponible.

Cuando ViewEncapsulation.Native sea compatible correctamente con todos los navegadores y admita el estilo a través de los límites del DOM oculto, ::ng-deep probablemente se suspenderá.

original

Angular agrega todo tipo de clases CSS al HTML que agrega al DOM para emular la encapsulación Shadow DOM CSS para evitar estilos de sangrado dentro y fuera de los componentes. Angular también reescribe el CSS que agrega para que coincida con estas clases agregadas. Para HTML agregado usando [innerHTML] estas clases no se agregan y el CSS reescrito no coincide.

Como solución alternativa, intente

  • para CSS agregado al componente
 /* :host /deep/ mySelector { */ :host ::ng-deep mySelector { background-color: blue; }
  • para CSS agregado a index.html
 /* body /deep/ mySelector { */ body ::ng-deep mySelector { background-color: green; }

>>> (y el equivalente /deep/ pero /deep/ funciona mejor con SASS) y ::shadow se agregaron en 2.0.0-beta.10. Son similares a los combinadores Shadow DOM CSS (que están en desuso) y solo funcionan con encapsulation: ViewEncapsulation.Emulated que es el valor predeterminado en Angular2. Probablemente también funcionen con ViewEncapsulation.None , pero solo se ignoran porque no son necesarios. Estos combinadores son solo una solución intermedia hasta que se admitan características más avanzadas para el diseño de componentes cruzados.

Otro enfoque es utilizar

 @Component({ ... encapsulation: ViewEncapsulation.None, })

para todos los componentes que bloquean su CSS (depende de dónde agregue el CSS y dónde esté el HTML que desea diseñar; pueden ser todos los componentes en su aplicación)

Actualizar

Plunker de ejemplo

over 4 years ago · Santiago Trujillo Relatório

0

La solución simple que debe seguir es

 import { DomSanitizer } from '@angular/platform-browser'; constructor(private sanitizer: DomSanitizer){} transformYourHtml(htmlTextWithStyle) { return this.sanitizer.bypassSecurityTrustHtml(htmlTextWithStyle); }
over 4 years ago · Santiago Trujillo Relatório

0

Extraemos contenido con frecuencia de nuestro CMS como [innerHTML]="content.title" . Colocamos las clases necesarias en el archivo raíz styles.scss de la aplicación en lugar de en el archivo scss del componente. Nuestro CMS elimina deliberadamente los estilos en línea, por lo que debemos tener clases preparadas que el autor pueda usar en su contenido. Recuerde que usar {{content.title}} en la plantilla no generará html del contenido.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda