首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >*吴-深度将受到反对-有其他选择吗?

*吴-深度将受到反对-有其他选择吗?
EN

Stack Overflow用户
提问于 2018-04-16 14:28:16
回答 2查看 29.9K关注 0票数 54

医生说:

穿透阴影的后代组合器被废弃,支持正在从主要的浏览器和工具中删除。因此,我们计划在角度上放弃支持(对于/deep/,>>>和::ng-深层的所有3种支持)。在此之前,应该更倾向于与工具进行更广泛的兼容性。

由于我想在不更改代码的情况下升级到新版本,所以不推荐的方法有哪些替代方案?

EN

回答 2

Stack Overflow用户

发布于 2018-04-16 14:38:54

在从实际注释上搜索委员会会议之后,似乎还没有提出一个替代方案。使用::ng-deep语法可以确保您让styles来处理它们为您的样式所做的样式封装(对于模板中的子组件中的DOM节点)(而不是使用浏览器本机特性,这显然使其更具有未来的安全性)。我认为,这只是为了让您知道,每当实际的浏览器机制到位,他们就计划实现它。我个人不会羞于使用它。

在CSS中不使用该运算符的唯一方法是完全放弃让角管理组件的样式封装,通过这样做:

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

@Component({
    ...
    encapsulation: ViewEncapsulation.None
})

如果您这样做,您的样式将成为全局的,所以请确保您在每个样式规则中使用组件,以确保它们不会超出此范围。例如,如果您有一个带有MyCustomComponent选择器的my-custom-component组件

代码语言:javascript
复制
my-custom-component button { ... } /* good */
button { ... } /* bad */
票数 53
EN

Stack Overflow用户

发布于 2019-10-30 13:39:15

一个可行的方法是将css样式包含在您的全局styles.scss文件*中。

例如,假设要向在<div class="mat-form-field-flex">下生成的<mat-form-field>元素添加样式,也可以使用::ng-deep

your.component.scss

代码语言:javascript
复制
::ng-deep mat-form-field.mat-form-field div.mat-form-field-flex {
  padding: 0 0 0 .75em;
}

或者,你可以改变:

styles.scss:

代码语言:javascript
复制
mat-form-field.mat-form-field  div.mat-form-field-flex {
  padding: 0 0 0 .75em;
}

*:这是添加到angular.json文件中的样式集合中的任何文件。

代码语言:javascript
复制
"styles": [
          "src/theme.scss",
          "src/styles.scss"
        ],
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49859784

复制
相关文章

相似问题

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