html - 将类添加到 Angular2 组件 HTML 标记不应用样式

标签 html css angular

在 Angular2 中,当我像这样在我的自定义 Angular2 组件上添加类标签时:

<my-component class="someClass"></my-component>

...样式未应用于 HTML。在 Chrome 开发者工具中,当我选择 my-component 元素时,样式检查器显示正在应用样式,但在视觉上,它们并没有。这是正常的吗?我该如何解决这个问题?

最佳答案

Angular 2 使用 Shadow DOM,它是 Web Components 标准的一部分,支持 DOM 树和样式封装。 Angular View Encapsulation

所以如果你想在我的组件中设置样式,你应该在我的组件类中编写你的类。

import { Component, OnInit } from '@angular/core';

@Component({
    teamplte: '<h1 class="myClass">i am my-component</h1>',
    styles: [`
      .myClass {
         someProp: value;
      }
    `]
})

export class ConatinerComponent implements OnInit {
    constructor() { }

    ngOnInit() { }
}

但是如果你想在外部设置样式,你必须在容器组件中编写你的样式和类!

import { Component, OnInit } from '@angular/core';

@Component({
    teamplte: '<my-component class="myClass"></my-component>',
    styles: [`
      .myClass {
         someProp: value;
      }
    `]
})

export class MyComponentComponent implements OnInit {
    constructor() { }

    ngOnInit() { }
}

关于html - 将类添加到 Angular2 组件 HTML 标记不应用样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45610374/

相关文章:

html - iPad Web App 在启动时卡住

image - CSS:在图像周围创建白光

angular - 使用 graphql 和 apollo 客户端刷新 Angular 的 token

angular - Angular 中 setTimeout 的目的是什么?

html - 移动网络应用程序的服务器端架构

javascript - IE 8 错误?元素卡入到位

css - 如何确保内部 div 在其父容器内?

css - 如何旋转背景保持容器固定?

angular - 如何获取当前路由守卫

javascript - Chartjs 图例样式