Maison > interface Web > tutoriel CSS > Pourquoi mon CSS ne s'applique-t-il pas au contenu InnerHTML dans Angular ?

Pourquoi mon CSS ne s'applique-t-il pas au contenu InnerHTML dans Angular ?

Patricia Arquette
Libérer: 2024-10-27 05:27:03
original
488 Les gens l'ont consulté

Why Doesn't My CSS Apply to InnerHTML Content in Angular?

Pourquoi CSS n'est-il pas appliqué au contenu InnerHTML dans Angular ?

Dans Angular, injecter du contenu HTML dans une vue à l'aide de la propriété innerHTML pose un problème : le style peut ne pas être appliqué comme prévu. Cela est dû au mécanisme d'encapsulation d'Angular, qui empêche les styles externes d'interférer avec le contenu d'un composant.

Comprendre l'encapsulation Shadow DOM

Par défaut, Angular utilise l'encapsulation émulée, créer un DOM fantôme et isoler les styles de composants. Par conséquent, les styles définis en dehors de la portée du composant, dans le HTML injecté par innerHTML, seront ignorés.

Solution : Remplacez l'encapsulation par Aucun

Pour résoudre ce problème, vous peut remplacer l'encapsulation d'Angular en définissant l'encapsulation sur None dans votre composant. Cela permettra d'appliquer des styles provenant de sources externes au contenu HTML injecté.

Voici un exemple :

<code class="typescript">import { Component, ViewEncapsulation } from '@angular/core';

@Component({
  selector: 'example',
  styles: ['.demo {background-color: blue}'],
  template: '<div [innerHTML]="someHtmlCode"></div>',
  encapsulation: ViewEncapsulation.None,
})
export class Example {
  someHtmlCode = `<div class="demo"><b>This is my HTML.</b></div>`;
}</code>
Copier après la connexion

En définissant l'encapsulation sur Aucun, nous désactivons le shadow DOM d'Angular et autorisons le CSS de dans le HTML injecté pour prendre effet. En conséquence, le texte dans le div HTML injecté sera rendu avec une couleur d'arrière-plan bleue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal