ionic 2トースト内でテキストメッセージをスタイルする方法はありますか?
私はこれを試しました:
let toast = Toast.create({
message: "Some text on one line. <br /><br /> Some text on another line.",
duration: 15000,
showCloseButton: true,
closeButtonText: 'Got it!',
dismissOnPageChange: true
});
toast.onDismiss(() => {
console.log('Dismissed toast');
});
this.nav.present(toast);
}
しかし、明らかにあなたはテキストでhtmlを使用できないので、私の質問への答えはノーだと思いますか?
ToastCtrl関数に「cssClass: "yourCssClassName"」を追加する必要があります。
let toast = Toast.create({
message: "Some text on one line. <br /><br /> Some text on another line.",
duration: 15000,
showCloseButton: true,
closeButtonText: 'Got it!',
dismissOnPageChange: true,
cssClass: "yourCssClassName",
});
cssクラスに機能を追加することができます。しかし、css機能はデフォルトのpage'cssの外に出ました。 Exmp:
page-your.page.scss.name {
//bla bla
}
.yourCssClassName {
text-align:center;
}
トースター作成にカスタムクラスを追加することでトースターの色を変更することができました
let toast = this.toastCtrl.create({
message: 'Foobar was successfully added.',
duration: 5000,
cssClass: "toast-success"
});
toast.present();
}
そのページのscssファイルでは、デフォルトのネストされたページ名の外に出ました(トースターは[〜#〜] not [〜#〜]イオンページ名事のルート内にあるため)。そして、これは少しハックですが、追加したカスタムクラスの次のdiv
要素を明示的にターゲットにしただけです
.toast-success {
> div{
background-color:#32db64!important;
}
}
!important
を使用する必要があるため、私はそのハックを言います。 .toast-success
を.md,.ios,.wp{...
でラップすることにより、!importantを回避できます
theme/variables.scss
ファイルのメイントースター変数をオーバーライドすることにより、スタイルのデフォルトをオーバーライドできます。
$toast-ios-background:(#32db64);
$toast-md-background:(#32db64);
$toast-wp-background:(#32db64);
ただし、これはデフォルト値のみをオーバーライドし、カスタム値はオーバーライドしません。スタイルを設定できる変数がいくつかあります。
最初に、ionic-angular
からトーストコントローラーをインポートし、コンストラクターでそのオブジェクトを作成します。
import { ToastController } from "ionic-angular";
constructor(private _tc: ToastController) {
}
その後、トーストメッセージを表示したい場所に書き込みます。
let options = {
message: "Your toast message show here",
duration: 3000,
cssClass: "toast.scss"
};
this._tc.create(options).present();
これが私のscssです。
.toast-message {
text-align: center;
}
または、この link から最良の例を確認できます。役立つと思います。 :)
または、この link の答えを確認してください。
App.scssで(page.scssではなく)独自のcssクラスを定義する場合、.toast-wrapperおよび.toast.messageでスタイルを設定できます> div{
を使用する必要はありません
例:
.yourtoastclass {
.toast-wrapper {
background: blue;
opacity: 0.8;
border-radius: 5px;
text-align: center;
}
.toast-message {
font-size: 3.0rem;
color: white;
}
}
theme/variables.scssでデフォルトを作成できます
例(赤で透明度が低い):
$toast-width: 75%; /* default 100% */
$toast-ios-background: rgba(153, 0, 0, .8);
$toast-md-background: rgba(153, 0, 0, 0.8);
Ionic 2はコンポーネントスタイルをオーバーライドする非常に便利な方法を提供します。src/ theme/variables.scssのトースターSASS変数を追加することでオーバーライドできます。
$toast-ios-title-color: #f00 ;
$toast-md-title-color:#f00;
これはデフォルトのスタイルをオーバーライドします。これを参照してください オーバーライドIonic Sass変数
ただし、トーストコンポーネントテンプレート自体を変更する必要があります。
エクスプローラー経由:\ node_modules\ionic-angular\components\toast\toast.js
194行目(テンプレート)を変更:{{d.message}}
から<div [innerHTML]='d.message'></div>
.toast-message
セレクターを使用して、CSSのメッセージスタイルを変更できるはずです。
.toast-message {
font-family: Helvetica,
color: red
}
または、ドキュメント( http://ionicframework.com/docs/v2/api/components/toast/Toast/ )を見ると、トーストを割り当てるために使用できるcssClassプロパティがあります。特定のクラスを作成し、それをスタイルします。
トーストの背景色と不透明度を変更します。
let toast = this.toastCtrl.create({
message: msg,
duration: 3000,
position: 'bottom',
cssClass: 'changeToast'
});
app.scss
を追加します:
.changeToast{.toast-wrapper {opacity: 0.6; border-radius: 5px !important; text-align: center; background: color($colors, primary);}};
.toast-message
で使用されます
上記のすべてを試しましたが、まだ動作しませんでした。そのため、新しいソリューションに遭遇しました。ページcss宣言の外側にcssClassが必要です。
let toast = this.toastCtrl.create({
message: msg,
duration: 3000,
position: 'bottom',
cssClass: 'toastcolor'
});
このようなpost-list.scss
page-post-list {
}
.toastcolor .toast-message {
background-color:skyblue;
}