LoginSignup
0
0

More than 1 year has passed since last update.

CSSとの連動(bindingで色を変化させる)

Last updated at Posted at 2021-05-05

【1】

.red {
  color: red;
}

.bg-blue{
  background-color: blue;
}
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 class="red bg-blue">HELLO<h1>

20210505-221141.png

【2】Viewでtrue or falseで表現

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 v-bind:class="{red: true 'bg-blue': false}">HELLO<h1>

もしくは

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :class="{red: true 'bg-blue': false}">HELLO<h1>

*cssは変わらず
*bg-blueのハイフンを使ったケバブケースについてはシングルコーテーションで囲う

【3】Vueインスタンス内で表現

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :class="{red: isActive, 'bg-blue': !isActive}">HELLO<h1>

!isActiveは否定=falseになる

  new Vue({
    el: '#app',
    data: {
  isActive: true    
      }
  })

(4)ボタンで逆にする

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :class="{red: isActive, 'bg-blue': !isActive}">HELLO<h1>
<button @click="isActive=!isActive">切り替え</button>

20210505-222911.png

20210505-222926.png

(5)computedを使用して書く

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :class="classObject">HELLO<h1>
<button @click="isActive=!isActive">切り替え</button>
  new Vue({
    el: '#app',
    data: {
  isActive: true    
      },
      computed: {
         classObject: function() {
            return {
            red: this.isActive,
            'bg-blue': !this.isActive
            }
         }
      }
  })

computedからdata{ },にアクセスする際は、isActiveにthis.をつける。

(6)配列を使用して書く

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :class="[color, bg]">HELLO<h1>
  new Vue({
    el: '#app',
    data: {
      color: 'red',
      bg: 'bg-blue'
      }
  })

20210505-225347.png

(7)styleを使ってかく

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :style="{color: textColor, 'background-color': bgColor}">HELLO<h1>
new Vue({
   el: '#app',
    data: {
     textColor: 'red',
      bgColor: 'blue'
     }
})

(8)Vueインスタンス内にstyleを書く

<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>

<div id="app">
<h1 :style="styleObject">HELLO<h1>
  new Vue({
    el: '#app',
    data: {
      styleObject: {
        color: 'red',
        'background-color': 'blue'
        }
      }
  })
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0