仮想キーボードにgitプロジェクトを使用しています( https://ngx-material-keyboard.github.io/demo/ )。また、450 * 250ピクセルの小さなデバイスで実行するにはいくつかの問題があります。
最後に、開発ツールを使用してWebブラウザで直接変更すると、cssに必要な変更が見つかりました。
次に、ソースを変更する適切な位置を見つける必要があります。
Angle2-materialのオーバーレイコンポーネントを使用して、キーボードを視覚化します。
Cdk-overlay-containerの位置をコメントアウトすると、動作します:
.cdk-overlay-container {
/* position: fixed; */
z-index: 1000;
}
しかし、angularアプリケーションからこれらを上書きすることはできません。提案はありますか?
更新された回答
公式文書から:
スタイリングオーバーレイコンポーネント
オーバーレイベースのコンポーネントには、オーバーレイペインをターゲットにするために使用できるpanelClassプロパティ(または同様のプロパティ)があります。
グローバルstyles.css
にcssクラスを追加することにより、デフォルトのダイアログコンテナスタイルをオーバーライドできます。例えば:
.custom-dialog-container .mat-dialog-container {
/* add your styles */
}
その後、cssクラスをダイアログにpanelClass
パラメーターとして提供する必要があります。
this.dialog.open(MyDialogComponent, { panelClass: 'custom-dialog-container' })
詳細については、こちらをお読みください 公式ドキュメント .
元の回答
Component.cssで::ng-deep
を使用して、デフォルトのスタイルをオーバーライドします。
::ng-deep .cdk-overlay-container {
/* Do you changes here */
position: fixed;
z-index: 1000;
}
コンポーネントスタイルからMaterial CSSクラスをオーバーライドできるようにするには、コンポーネントで View Encapsulation をNoneに設定する必要があります。
@Component({
templateUrl: './my.component.html' ,
styleUrls: ['./my.component.scss'], //or .css, depending what you use
encapsulation: ViewEncapsulation.None,
})
Mat-dialogue-containerのスタイリングを変更してパネルクラスを追加し、スタイルを指定するだけで十分な場合、cdk-overlay-containerのスタイリングを変更する場合は、backdropClassを追加すると役立ちます
const dialogRef = this.dialog.open(PopupComponent, {
backdropClass: 'popupBackdropClass',
panelClass: 'custom-dialog-container',
data: { data: data }
});
cSSで追加
.popupBackdropClass {
background-color:yellow
}
メイン/デフォルトの「Styles.css」を使用することでそれを見つけました。 CDKのスタイル変更(およびマテリアルとアニメーション)が適切に選択されます。 (注意)Angular 4。
Global
と他のcomponent's
スタイルシート、グローバルに設定z-index
から低い値へ(1000
)header
の背後にあり、popup
コンポーネントスタイルシートでそれを高い値(2000
)!important
ヘッダーがオーバーレイの後ろにくるようにします。
それは私がそれを解決する方法です。
後でありがとう