如何使用AngularDart中角度组件的App布局更改标题颜色

时间:2017-09-05 08:46:16

标签: dart angular-dart angular-components dart-html dart-webui

如何在AngularDart项目中使用角度组件的应用布局更改背景颜色。我尝试了但没有影响背景蓝色。 enter image description here

layout_component.html

<header class="material-header shadow">
<div class="material-header-row">
    <material-button class="material-drawer-button" icon (trigger)="drawer.toggle()">
        <material-icon icon="menu"></material-icon>
    </material-button>
    <span class="material-header-title">Mobile Layout</span>
    <div class="material-spacer"></div>
    <nav class="material-navigation">
        <material-button class="material-drawer-button" icon (trigger)="">
            <material-icon icon="favorite"></material-icon>
        </material-button>
    </nav>
    <nav class="material-navigation">
        <material-button class="material-drawer-button"
                         icon
                         popupSource
                         #source="popupSource"
                         (trigger)="basicPopupVisible = !basicPopupVisible">
            <material-icon icon="more_vert"></material-icon>
        </material-button>
        <material-popup defaultPopupSizeProvider
                        enforceSpaceConstraints
                        [source]="source"
                        [(visible)]="basicPopupVisible">
            <div class="basic">
                Hello, I am a pop up!
            </div>
        </material-popup>
    </nav>
    <nav class="material-navigation">
        <div href="#AppLayout">SIGN IN</div>
    </nav>
</div>

layout_component.css

.material-header-row {
background-color: black;
}

.basic {
    height: 200px;
    padding: 16px;
}

谢谢

1 个答案:

答案 0 :(得分:0)

如果将样式添加到父组件(AppComponent),则可以使用::ng-deep来突破组件样式封装边界(从父组件到子组件)

<击>

<击>
::ng-deep header.material-header {
  background-color: black;
}

或者使用您的代码示例

::ng-deep .material-header-row {
  background-color: black;
}

<击>

<强>更新

对于上面的选择器,特异性不足以覆盖背景颜色。

这对我有用:

::ng-deep header.material-header.material-header {
  background-color: black;
}

如果您将样式添加到index.html,则不需要::ng-deep

Angular重写了添加到组件的样式选择器,以匹配每个组件(每个组件都有不同的编号)的类class="_ngcontent-qbq-3",以强制执行样式封装。

添加到index.html的样式不会被重写,这些类将被忽略。

对于添加了::ng-deep[innerHTML]="..."的HTML,您可能还需要someElement.append(...),因为以这种方式添加的HTML不会添加类,因此添加到组件的CSS的选择器将不匹配重写之后。