Quantcast
Channel: CSSタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8920

BootstrapVueでb-form-selectの中のoptionに個別にCSSをあてる

$
0
0

はじめに

BootstrapVueを使用していて、プルダウンの中の色を条件によって変えたくなったけど方法がよくわからなかったので備忘録。

私の場合、個別にグレーアウトにしたくて、まず公式リファレンスを見たんですけど…

disabledには簡単にできるみたいですけど、私は色を変えたいだけなんですよ。
そんなことしたいと思わないですよね。うんうん。。
私はしたい。

こんなかんじに。
image.png

やり方

たぶん普通にプルダウンリストを出すと、こんな書き方するんじゃないかな~と思います。
簡潔でらくちんですよね。これにCSSあてられたらよかったんですけど…

<b-form-select
    :options="testlist"
    value-field="testId"
    text-field="testNm"></b-form-select>

でもこれだと中身のoptionタグにクラスを持たせられないので、下記のようにoptionを分けてかきます。
そうするとclassをあてられるようになるので。
Vue.jsのガイドにあるこれですね。

そう、べた書きです。

<b-select>
    <option :class="{ 'select-option': changeColor(v.testId) }"
    :value="v.testId"
    v-for="(v, i) in testList"
    :key="i" >
    {{v.testNm}}
    </option>
</b-select>

こう書いたらあとはあてたいCSSを書いて、

.select-option {
    background-color: #e2e6ea;
    color: rgb(108, 117, 125);
}

条件書いて(これはテスト用なので好きに書いてね)、

changeColor(testId){
  if (testId == 2){
    return true;
  }
  return false;
}

おしまい!
以下雑なテストデータ。適当に試してね。

testList:[
    {testId: 0, testNm: ''},
    {testId: 1, testNm: '白'},
    {testId: 2, testNm: '灰'},
    {testId: 3, testNm: '白'},
    {testId: 4, testNm: '白'},
]

Viewing all articles
Browse latest Browse all 8920

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>