首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:host::ng-deep .class和.class :host::ng-deep?

:host::ng-deep .class和.class :host::ng-deep?
EN

Stack Overflow用户
提问于 2018-05-28 20:17:49
回答 1查看 20.1K关注 0票数 12

下面这两个在scss中有什么不同,给出一些代码片段的例子。

代码语言:javascript
复制
:host::ng-deep .content-body {
...
}

代码语言:javascript
复制
.content-body :host::ng-deep {
...
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 20:59:57

首先,:host::ng-deep都是Angular结构,与SASS无关

现在,假设您在Angular中定义了一个名为"blog“的组件,而blog.component.scss是您为其定义SASS的地方。然后,

案例1 :

代码语言:javascript
复制
:host::ng-deep .content-body {
...
}

将样式定义应用于组件范围内具有类.content-body的任何元素。例如:

代码语言:javascript
复制
<div>
  <blog>
    <div class="content-body"></div>
    <div class="some-extra-content">
      <div class="content-body"></div>
    </div>
  </blog>
</div>

在上述情况下,两个class="content-body" div都将应用该样式。

案例2 :

代码语言:javascript
复制
.content-body :host::ng-deep {
...
}

将仅将定义的样式应用于在具有class="content-body"的元素中定义的组件实例

例如:

代码语言:javascript
复制
<blog></blog> <!-- Style won't be applied here -->
<div class="content-body">
  <blog></blog> <!-- Style will be applied here -->
</div>

你可以使用check a StackBlitz here。在StackBlitz示例中,color:red是因为CASE 1app.component.css中应用,而color:yellow仅应用于一个hello组件,因为CASE 2

你可以随意使用Stackblitz,尽情玩耍。

注:如果你还不知道,阴影穿透组合体::ng-deep is being deprecated

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

https://stackoverflow.com/questions/50566274

复制
相关文章

相似问题

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