gpt4 book ai didi

css - Angular 2 中的组件背景颜色

转载 作者:行者123 更新时间:2023-11-28 03:09:10 25 4
gpt4 key购买 nike

我有一个 Home 组件,我有一个 carousel 组件。我想将主页的背景颜色应用为灰色,将旋转木马的背景颜色应用为蓝色。

我无法将背景颜色应用到 Home 组件的 body 标签。

enter image description here

最佳答案

Angular 2 完全是关于模块化的,因此它有目的地为组件中的所有样式添加一个 css 范围,这样父组件的样式就不会渗透并影响子组件的外观。这就是为什么您的所有组件都具有如下所示的奇怪属性:_ngcontent-c0

如果您查看为您的组件生成的 css,您还会注意到此标记已添加到您的所有样式中:h1[_ngcontent-c0]

因此您的 Home 和 Carousel 组件需要它们自己的样式:

@Component({
selector: 'home',
template: `<body>
<carousel></carousel>
</body>`,
styles: ['body { background-color: gray; }']
})

@Component({
selector: 'carousel',
template: `<div id="carousel_body">
<!-- carousel stuff here -->
</div>`,
styles: ['#carousel_body{ background-color: blue; }']
})

您还有其他选择:

  1. 通过将样式放在 index.html 以传统方式引用的 css 文件中,使样式成为全局样式

  2. 使用特殊的选择器,如 :host 或/deep/来覆盖 css 范围机制(/deep/已被弃用)

  3. 您可以在禁用 css 作用域的所有组件上设置 encapsulation: ViewEncapsulation.None,但在我看来,这会破坏 angular 的大部分优点。

这些选项中的每一个都有更长的描述 here

Here's an example on plunkr

关于css - Angular 2 中的组件背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45804278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com