ホームページ > 記事 > ウェブフロントエンド > ビューのカプセル化を使用して Angular で InnerHTML コンテンツをスタイル設定する方法?
ビューのカプセル化を使用した Angular での InnerHTML のスタイル設定
Angular では、 innerHTML プロパティを設定すると、コンポーネントのビュー内で HTML コンテンツを動的にレンダリングできます。ただし、この挿入されたコンテンツのスタイルを設定しようとすると、問題が発生する可能性があります。
問題: innerHTML を使用してインライン スタイルを含む HTML コンテンツを挿入すると、スタイルが適用されない場合があります。たとえば、次のコードは、挿入された div 要素に背景色のスタイルを適用しません:
<code class="typescript">this.someHtmlCode = '<div style="background-color: blue;"><b>This is my HTML.</b></div>';</code>
解決策: Angular は、デフォルトで「エミュレートされた」ビューのカプセル化と呼ばれる概念を採用しています。これにより、コンポーネント内で定義されたスタイルがコンポーネントの外部で定義されたスタイルと干渉するのを防ぎます。挿入されたコンテンツのインライン スタイルを許可するには、カプセル化を [なし] に変更する必要があります。
<code class="typescript">@Component({ selector: 'example', styles: ['.demo {background-color: blue}'], template: '<div [innerHTML]="someHtmlCode"></div>', encapsulation: ViewEncapsulation.None, })</code>
カプセル化プロパティを [なし] に設定すると、Angular はインライン スタイルの適用を妨げなくなります。これにより、コンポーネントのスタイル配列内と挿入された HTML コンテンツの両方でスタイルを定義できるようになり、Angular はそれらを DOM に自動的に適用します。
以上がビューのカプセル化を使用して Angular で InnerHTML コンテンツをスタイル設定する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。