javascript - 如何从另一个 DOM 元素控制一个 DOM 元素的样式

标签 javascript html css angular angular-material2

您好,我有一个 Angular Material 工具提示实现。因此,当我悬停跨度时,我可以看到工具提示。如何有条件地更改工具提示的背景(例如:错误显示红色背景,成功显示绿色背景等)

组件:

import {
    Component,
    Input,
    HostBinding,
    OnInit,
    ViewEncapsulation,
    ElementRef,
    AfterViewInit
} from '@angular/core';

@Component({
    selector: 'dbs-tooltip',
    templateUrl: './tooltip.component.html',
    styleUrls: ['./tooltip.component.scss'],
})
export class TooltipComponent implements AfterViewInit{
    @Input() content: any;
    @Input() position: any;
    @Input() type: string;

    constructor(private elRef:ElementRef) {}

    ngAfterViewInit() {
        this.elRef.nativeElement.querySelector('.mat-tooltip');
      }

    getToolTipClass() {
        if (this.type === 'error') {
            return 'error-class';
        } else if (this.type === 'success') {
            return 'success-class';
        }
    }
}   

HTML:

<span mdTooltip={{content}} mdTooltipPosition={{position}}>
    <ng-content></ng-content>
</span>

CSS:

// md-tooltip-component {
//     div {
//       background: red;      
//     }
//   }


.success-class {
    md-tooltip-component {
        div {
          background: green;      
        }
      }

}

任何想法伙计们?预先感谢您的帮助。

最佳答案

您需要使用特殊的选择器来设置组件的样式。了解更多 here .阅读有关 ::ng-deep 的更多信息。不幸的是,::ng-deep 将被弃用(晚于 /deep/>>>,但仍然如此)。

关于javascript - 如何从另一个 DOM 元素控制一个 DOM 元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46641118/

相关文章:

javascript - 使用javascript销毁flash对象

html - div 内的 div 不自动扩展(截图)

css - 带有 CSS 元素的 Html5 在缩放时移动

html - 设置确认框尺寸

jquery - Click 方法不适用于 Cucumber Phantomjs

javascript - 道场 : Accordion open and close

javascript - <a> 来自签名模板网页表单字段的 href 信息未按预期工作

javascript - TypeScript 嵌套静态属性

javascript - 在 onEachFeature 传单之外调用函数

javascript - 在 React Context 中更新嵌套状态的最佳方法