为什么在 Angular 中 CSS 不应用于 InnerHTML 内容?
在 Angular 中,使用 innerHTML 属性将 HTML 内容注入到视图中问题:样式可能无法按预期应用。这是由于 Angular 的封装机制,它可以防止外部样式干扰组件内的内容。
了解 Shadow DOM 封装
默认情况下,Angular 使用模拟封装,创建影子 DOM 并隔离组件样式。因此,在组件范围之外、由innerHTML注入的HTML中定义的样式将被忽略。
解决方案:将封装更改为None
要解决此问题,您可以通过在组件中将封装设置为 None 来覆盖 Angular 的封装。这将允许将来自外部源的样式应用于注入的 HTML 内容。
这是一个示例:
<code class="typescript">import { Component, ViewEncapsulation } from '@angular/core'; @Component({ selector: 'example', styles: ['.demo {background-color: blue}'], template: '<div></div>', encapsulation: ViewEncapsulation.None, }) export class Example { someHtmlCode = `<div class="demo"><b>This is my HTML.</b></div>`; }</code>
通过将封装设置为 None,我们禁用 Angular 的影子 DOM 并允许 CSS在注入的 HTML 中生效。因此,注入的 HTML div 中的文本将以蓝色背景色呈现。
以上是为什么我的 CSS 不适用于 Angular 中的 InnerHTML 内容?的详细内容。更多信息请关注PHP中文网其他相关文章!

在本周的新闻中,Wikipedia有助于识别三个慢单击处理程序,Google Earth登上了网络,CSS中的SVG属性获得了更多的支持,以及在僵尸cookie的情况下该怎么做。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

记事本++7.3.1
好用且免费的代码编辑器

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。