gpt4 book ai didi

angular - MatTooltip 显示在 html 原生对话框下方

转载 作者:行者123 更新时间:2023-12-05 04:21:46 26 4
gpt4 key购买 nike

为什么 MatTooltip 显示在 html 原生对话框下面?

import { Component, ElementRef, ViewChild } from '@angular/core';

@Component({
selector: 'tooltip-overview-example',
template: `
<dialog #dialog style="height: 50px; opacity: 0.8">
<button matTooltip="Test">test</button>
</dialog>
<button (click)="openDialog()">Open</button>`,
})
export class TooltipOverviewExample {
@ViewChild('dialog') dialog: ElementRef<HTMLDialogElement>;
openDialog() {
this.dialog.nativeElement.showModal();
}
}

结果

enter image description here

演示

https://stackblitz.com/edit/angular-3rx9ry?file=src%2Fapp%2Ftooltip-overview-example.ts

最佳答案

此行为是预期的,原因如下:

  1. dialog 元素使用 ::backdrop 伪元素。

enter image description here2. matTooltip 使用 Material CDK overlay,其 z-index1000

enter image description here

当一个元素有 ::backdrop 时,它就成为 Top layer,将其置于 document 流程之外。这意味着除非添加新的 Top layer 元素,否则任何内容都将始终在其后面呈现。然后,旧的 Top layer 元素将位于新元素之后,但仍位于所有其他元素之上。

z-indexTop layer 元素没有影响。

阅读更多:

关于angular - MatTooltip 显示在 html 原生对话框下方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74155794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com