首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角7-如何样式的HTML,使用ng-内容投射。

在角7-如何样式的HTML,使用ng-内容投射。
EN

Stack Overflow用户
提问于 2019-05-12 16:01:03
回答 1查看 2.2K关注 0票数 0

在角7-如何样式HTML的投影使用ng-内容。

技术:角7,角CLI,SASS,HTML5,Webpack。

我的代码:

备注:带有transclusion /的组件html。此组件具有一个scss文件,并且只有在使用ng-深度时,才能对通过ng-内容的html进行样式化,例如:host::ng-深处。

代码语言:javascript
复制
<table>
  <ng-content></ng-content>
</table>

,这是我对上面组件的sass html:

代码语言:javascript
复制
:host::ng-deep {
  table {
    background-color: map-get($theme-brand, flat);
    display: flex;
    flex-direction: column;
    border: 1px solid map-get($theme-contrast, contrast-8);
    border-radius: 5px;

    tr {
      display: flex;
      justify-content: flex-end;
    }

    th, td {
      @extend %p-2;
      word-break: break-all;
      align-items: center;
      display: flex;
      text-align: right;
      width: 250px;
      color: map-get($theme-typography-color, regular);

      &:first-child {
        text-align: left;
        border: none;
        width: 100%;
      }
    }
  }
}

备注:所以上面用于tr和th的css由于投影而不会被样式化,除非我使用ng深度。

Things尝试了

  • ng-深层(它可以工作,但不希望浏览器很快就不再推荐它了)。
EN

回答 1

Stack Overflow用户

发布于 2019-05-12 16:32:08

根据这个问题,您有两种不同的方法:

1:使用新浏览器开始支持的*开槽伪选择器。要使用它,您需要将@Component@Component属性更改为ViewEncapsulation.ShadowDom

2:一种蛮力方法,将@Component@Component属性设置为ViewEncapsulation.None。这样,样式将应用于所有页面,而不会被角处理。

您可以在这里查看有关ViewEncapuslation的更多详细信息:https://angular.io/api/core/ViewEncapsulation

还有一个关于这一点的吉顿语的讨论

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

https://stackoverflow.com/questions/56101012

复制
相关文章

相似问题

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