首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自具有css的组件的angular2样式正文

问来自具有css的组件的angular2样式正文
EN

Stack Overflow用户
提问于 2017-04-21 20:33:16
回答 3查看 8.7K关注 0票数 2

如何仅使用css (无主机绑定解决方案、无视图封装解决方案、无...)从组件的样式表中设置body标记的样式

我试过了,但不起作用(sass)

代码语言:javascript
复制
* >>> body
  overflow: hidden

我也试过了

代码语言:javascript
复制
body /deep/
  overflow: hidden

这是我的index.html

代码语言:javascript
复制
<body>

<app-root></app-root>

</body>
EN

回答 3

Stack Overflow用户

发布于 2017-04-21 21:32:20

由于封装的原因,您不能引用parent。您可以做的是注入元素ref,然后使用js设置它:

代码语言:javascript
复制
constructor(private elRef: ElementRef) {
   elRef.nativeElement.ownerDocument.body.style.overflow = 'hidden';
}

然后在你的销毁钩子里:

代码语言:javascript
复制
this.elRef.nativeElement.ownerDocument.body.style.overflow = null
票数 8
EN

Stack Overflow用户

发布于 2018-04-19 17:57:39

我已经用以下方法解决了这个问题:

代码语言:javascript
复制
import { Component, ViewEncapsulation } from '@angular/core';

@Component({
    selector: 'realtime-tooltip',
    template: '',
    styles: [`
        .nvtooltip.xy-tooltip tr:nth-child(2),
        .nvtooltip.xy-tooltip tr:nth-child(4) {
            display: none;
    }
    `],
    encapsulation: ViewEncapsulation.None
})
export class RealtimeTooltip {}

@Component({
    selector: 'realtime-audience-graph',
    template: require('./realtime-audience-graph.component.html'),
    styles: [require('./realtime-audience-graph.component.scss')]
})

export class RealtimeAudienceGraph {}

样式在组件之外,我已经在组件html中包含了这个组件。

代码语言:javascript
复制
<realtime-tooltip></realtime-tooltip>

将ViewEncapsulation设置为none将允许对组件外部的任何元素设置样式。主组件仍将使用默认封装。

票数 1
EN

Stack Overflow用户

发布于 2017-12-03 04:20:39

您只需通过index.html即可完成此操作

代码语言:javascript
复制
<body style="overflow: hidden;">

<app-root></app-root>

</body>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43542858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档