質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2926閲覧

Vue.js 条件がfalseの時にスタイルを変更したい

kakedashidesu

総合スコア50

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

Vuex

Vuexは、Vue.js アプリケーションのための状態管理ライブラリです。アプリケーション内で使用するコンポーネントのための集中データストアを提供。コンポーネント同士でデータをやり取りし、処理のフローを一貫させたり、データの見通しを良くすることができます。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

1グッド

1クリップ

投稿2020/05/03 09:59

編集2020/05/03 10:04

messageIsShowがfalseの時はisShowのスタイルのcolorを緑色にしてあげたいです。
どう書いたらいいのでしょうか?
わかる人がいましたら教えて欲しいです。

<template> <div class="message"> <p class="message_isShow">メッセージ</p> </div> </template> <script lang="ts"> import { Component, Vue, Prop } from 'vue-property-decorator' @Component export default class ApplyMessage extends Vue { @Prop({ type: Boolean, default: true }) messageIsShow: Boolean } </script> <style lang="scss" scoped> .message { background: #ffffff; flex: none; &_isShow { color: red; } }
whiwhdiw👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakedashidesu

2020/05/03 10:15

解決していなくわからないのでもう一度投稿しました
退会済みユーザー

退会済みユーザー

2020/05/03 10:38

そういう場合は過去の質問を編集してください。「アクティブ」タブに表示されます。 過去の質問を放置して同じ質問を投稿することは推奨されません。
guest

回答1

0

ベストアンサー

一部書き換えていますがこんな感じでどうですか?
:classですが、messageIsShowの値によって付与するclass名を分岐させています。
そうすれば予めstyleに定義してある色に変更は可能かと思います。
(messageIsShowの値をtrue, false書き換えてみて下さい)

Vue

1<template> 2 <div class="message"> 3 <p :class="fontColor(messageIsShow)">メッセージ</p> 4 </div> 5</template> 6 7<script> 8export default { 9 name: 'app', 10 data () { 11 return { 12 messageIsShow: Boolean = false, 13 classGreen: 'messageGreen', 14 classRed: 'messageRed', 15 } 16 }, 17 methods: { 18 fontColor: function(messageIsShow) { 19 if (messageIsShow) { 20 return this.classRed; 21 } else { 22 return this.classGreen; 23 } 24 } 25 } 26} 27</script> 28 29<style lang="scss"> 30.message { 31 background: #ffffff; 32 flex: none; 33 &_isShow { 34 color: red; 35 } 36} 37 38.messageRed { 39 color: red; 40} 41 42.messageGreen { 43 color: green; 44} 45</style>

参考

Vue.jsで条件によって:classの値を変える - Qiita

投稿2020/05/03 10:20

eneko0513

総合スコア349

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakedashidesu

2020/05/03 10:35

ありがとうございます! return { messageIsShow: Boolean = false, classGreen: 'messageGreen', classRed: 'messageRed', } }, 上記なのですが @Component export default class ApplyMessage extends Vue { @Prop({ type: Boolean, default: true }) messageIsShow: Boolean }で書くとどういう風にすればいいのでしょうか?
eneko0513

2020/05/03 10:39

わたしの環境ではtsを使ってなかったので動作確認はできません・・。 既に書かれているbooelanのmessageIsShowと同じような書き方でいけませんか? classGreenとclassRed自体は文字列なのでtypescriptの作法に乗っ取る形で。 ({ type: string, default: 'messageGreen' }) classGreen: string とかでしょうか。 ※動作確認していません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問