在scss里面的阴影穿孔

doo*_*man 4 sass angular

我正在使用阴影穿孔css作为我的一种风格.但我在scss中有颜色代码,我想在风格中使用.是否可以让阴影穿过scss文件?

@Component({
selector: 'my-selector',
styles: [
    require('./my.style.scss'),
    ':host >>> .mystyle { background-color: green }'
],
templateUrl: './my.template.html'
})
Run Code Online (Sandbox Code Playgroud)

Gün*_*uer 10

>>>SASS不支持AFAIK ,因为这个组合器没有进入CSS标准.Angular有它自己的实现来模仿它的支持.

AFAIR只是使用空格而不是>>>在Angular2中具有相同的效果ViewEncapsulation.Emulated(默认).

使用空间似乎并不相当于>>>/deep/了.

Plunker的例子

/deep/相当于>>>Angular,但只/deep/适用于SASS.

更新

SASS已被弃用>>>并引入::ng-deep特殊的Angular支持(因此ng-在名称中).
最近的Angular 4版本已经支持::ng-deep并且已经弃用>>>.

在文档中提到它::ng-deep也被弃用了,但这是出于不同的原因.当所有浏览器都支持具有正确主题的影子DOM时,ViewEncapsulation.Emulated(默认)将被删除并将Native成为默认值并且::ng-deep将变得过时.

更新2

::slotted 现在所有新浏览器都支持它,并且可以与`ViewEncapsulation.ShadowDom一起使用

https://developer.mozilla.org/en-US/docs/Web/CSS/::slotted

  • 请注意,根据http://stackoverflow.com/help/licensing和网站页脚,所有用户贡献均在*cc by-sa 3.0*下获得许可**需要*归属*.您应该归功于Christian的回答,因为您将它用于10月7日的编辑.([meta discussion](http://meta.stackoverflow.com/questions/340210/accepted-answer-changed-to-add-the-information-from-my-own-answer)) (2认同)
  • 信息本身并非来自他的答案,而是来自Angular2团队成员对GitHub问题的评论.他的回答给出了暗示,但添加这些信息可能会有用. (2认同)

Cha*_*lta 6

虽然>>>并且/deep/应该是等效的,但我发现在使用文件时替换>>>运算符是/deep/有效的.scss.