angular material 2からmat-tooltip
にcssの変更を適用しようとしています。ドキュメントにmatTooltipClass
があり、cssファイルで選択して作成できます。変更しましたが、動作させることができません。
component.html:
<mat-cell
*matCellDef="let productInfo"
matTooltip="{{productInfo.description}}"
matTooltipClass="tooltip">
{{ productInfo.description}}
</mat-cell>
component.scss:
.tooltip {
background-color: red;
color: blue;
font-size: 20px;
}
::ng-deep
を使用して、マテリアル要素のデフォルトのCSSを上書きする必要があります。
::ng-deep .tooltip {
background-color: red;
color: blue;
font-size: 20px;
}
上記で述べたことに加えて、私のために働いた2つの方法があります:-Component.scssで:
::ng-deep mat-tooltip-component{
& .mat-tooltip{
color: green; // your custom properties here.
}
}
-グローバル:
.mat-tooltip{ // making the font size on the mat-tooltip 1.5rem globally
font-size: 1.5rem;
&.exaggerated-tooltip{ // to modify the tooltip create a class like this
font-size: 2.5rem; // and use it like this: *matTooltipClass="exaggerated-tooltip"* in the
color: red; // component in which you are putting the tooltip
}
}
Angularマテリアルのドキュメントによると、matTooltipClassはngClassと同じ構文をサポートしています。したがって、[matTooltipclass] = "'tooltip'"を試すことができます
<mat-cell
*matCellDef="let productInfo"
matTooltip="{{productInfo.description}}"
[matTooltipclass]="'tooltip'">
{{ productInfo.description}}
</mat-cell>
ブログ投稿 でSideriteという紳士が私に有効な答えを提供してくれました。私は彼の投稿の最も関連性の高い部分から言い換えて、上記の質問で説明されているmatTooltipClass = "tooltip"シナリオを使用しています。
[.tooltipクラスの定義]はグローバルCSSファイルにある(すべてに適用される)か、コンポーネントでカプセル化ViewEncapsulation.Noneを宣言する必要があります。 [.tooltipクラス定義がグローバルCSSファイルにある場合]、クラスの宣言が十分具体的であることを確認します。これを試してください:mat-tooltip-component .mat-tooltip.tooltip {...}。
私の場合、グローバルstyles.scssファイルで.tooltipクラスを定義しており、Sideriteの提案に従って次のように定義するまで機能しませんでした。
mat-tooltip-component .mat-tooltip.tooltip {
color: blue !important;
}
このアプローチは、受け入れられた回答で提案されているように:: ng-deepの使用を回避します。 Angularドキュメントには、アプローチが deprecated であると記載されています。!スタイル。