Mattooltip:如何使框适合文本?

Posted

技术标签:

【中文标题】Mattooltip:如何使框适合文本?【英文标题】:Mattooltip: How can I make the box fit the text? 【发布时间】:2019-09-22 05:08:36 【问题描述】:

我有想要显示为工具提示的文本。没有样式(只是字体大小定义为 16px)它看起来像这样:

我真正想要的是将文本显示在一行中 - 所以我在 css 中将空白设置为 pre:

::ng-deep .mat-tooltip 
  font-size: 16px;
  white-space: pre;

但是现在文本超出了工具提示的框:

我尝试将宽度设置为更高的 px 值,但没有任何效果。

有没有办法让框适合文本?

[编辑 - 添加了 cmets 中指出的缺失示例]:stackblitz link 示例中的文本不会离开框,而是缩写而不是框适合整个文本,尽管我将宽度设置为 400 像素。

【问题讨论】:

对于它的价值,我会小心使用 ::ng-deep,因为它在 Angular 7 中已被弃用 @Rinktacular 感谢您指出这一点 - 也会解决这个问题,但那是另一天。 【参考方案1】:

只需将最大宽度设置为unset。为此,请按如下方式定义一个全局 CSS 类:

.my-custom-tooltip 
  max-width: unset !important;

然后将类名传递给工具提示:

<button mat-raised-button
        matTooltip="This Infotext is displayed one line if possible. Just a little more text for demo!"
        matTooltipClass="my-custom-tooltip">
  Action
</button>

也如@rinktacular提到的,尽量不要使用ng::deep

Stackblitz 示例:https://stackblitz.com/edit/angular-qkh4cl

【讨论】:

谢谢“最大宽度:未设置!重要;”成功了。我仍然不明白一件事 - 将样式应用于什么元素?如果我在浏览器中观察到元素,我无法在按钮或其他地方找到最大宽度样式...? Tooltip、Dialog等组件将插入cdk-overlay-container。它在您的组件层次结构之外。您可以通过检查 html 找到实际的工具提示 DOM 元素。您可以在下图中看到这一点和 my-custom-tooltip CSS 规则:i.imgur.com/GTttzJx.png 如果您有任何其他问题,请告诉我。 啊,好吧 - 当我试图检查它时,悬停在我身上关闭,这就是为什么我看不到它 - 谢谢!如果其他人难以检查悬停,请在此处查看问题:***.com/questions/15370838/… 如果你想查看 DOM 中的实际元素,你可以将 matTooltipHideDelay 设置为一个大数字,例如matTooltipHideDelay="60000"

以上是关于Mattooltip:如何使框适合文本?的主要内容,如果未能解决你的问题,请参考以下文章

弹性盒布局。无法使框的宽度相同[重复]

如何使文本适合圆形/图像SwiftUI的边界

您如何让 Silverlight 调整文本内容的大小以适合?

无论用户字体大小如何,如何使文本适合按钮?

100% 宽度减去边距和填充 [重复]

文本换行时如何使宽度适合内容? [复制]