【问题标题】:How to change the header color with App layout of angular components in AngularDart如何在 AngularDart 中使用 Angular 组件的 App 布局更改标题颜色
【发布时间】:2018-02-13 11:57:29
【问题描述】:

如何在 AngularDart 项目中使用 Angular 组件的应用布局更改背景颜色。我试过了,但没有影响背景蓝色。

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;
}

谢谢

【问题讨论】:

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


    【解决方案1】:

    如果将样式添加到父组件(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 的样式不会被重写,这些类将被忽略。

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

    【讨论】:

    • 如何修复这个未知的伪选择器'ng-deep'
    • “修复”或“未知”是什么意思?
    • 在 css 中使用它时出现错误
    • 什么工具导致这个错误? (还没有看到错误)。你可以试试/deep/。这在不久前从/deep/ 更改为::ng-deep,因为Chrome 和SASS 放弃了对/deep/ 的支持。如果你的工具还没有更新,/deep/ 应该仍然受到 Angular 的支持。
    • 暂时没有,我只需要学习如何实现 ::ng-deep
    猜你喜欢
    • 2018-04-05
    • 2018-04-10
    • 2023-04-01
    • 2018-04-16
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    相关资源
    最近更新 更多