🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Vue.js

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

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

Q&A

解決済

1回答

2952閲覧

Vue/Vuetify - CSS に変数を使って背景色を変更したい

tiitoi

総合スコア21956

Vue.js

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

Vuetify.js

Vuetify.jsは、マテリアルデザインを基本とするVue.jsのCSSフレームワークです。多くのマテリアルデザインのコンポーネントを提供しており、あらゆるアプリケーションに対応可能。vue-cli用テンプレートがあり、簡単にページを作成できます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

CSS

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

0グッド

0クリップ

投稿2021/02/01 04:08

編集2021/02/01 04:13

質問内容

Vuetify の v-select コンポーネントで色の一覧のプルダウンメニューの横にそれに対応した色付きの四角いボックスを表示したいです。

イメージ説明

CSS でボックスを作りましたが、現状は背景色が固定されています。
これを red なら赤色のボックス、green なら青色のボックスといったようにアイテム内容に応じた色にしたいのですが、やり方を教えていただけないでしょうか。
「色の名前に対応した色付きの四角いボックスを左に表示したい」というのが目的のため、下記コード以外の方法でも大丈夫です。

よろしくおねがいします。

コード

動作コードは CodePen に置きました。

html

1<div id="app" style="max-width: 300px;"> 2 <v-app> 3 <v-select :items="items"> 4 <!-- 選択したアイテムの表示 --> 5 <template slot="selection" slot-scope="data"> 6 <span>{{ data.item }}</span> 7 </template> 8 <!-- アイテム一覧の表示 --> 9 <template slot="item" slot-scope="data"> 10 <span>{{ data.item }}</span> 11 </template> 12 </v-select> 13 </v-app> 14</div>

css

1span { 2 position: relative; 3 padding-left: 25px; 4} 5 6span:before { 7 position: absolute; 8 content: ""; 9 width: 15px; 10 height: 15px; 11 top: 0; 12 left: 0; 13 background-color: green; // ここを可変にしたい 14}

js

1new Vue({ 2 el: "#app", 3 vuetify: new Vuetify(), 4 data() { 5 return { 6 items: ["red", "green", "blue"] 7 }; 8 } 9}); 10

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

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

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

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

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

guest

回答1

0

ベストアンサー

思いついた単純な実装ですが一旦回答いたします。

html

1<div id="app" style="max-width: 300px;"> 2 <v-app> 3 <v-select :items="items"> 4 <!-- 選択したアイテムの表示 --> 5 <template slot="selection" slot-scope="data"> 6 <span> 7 <span class="colorBox" :style="{backgroundColor: data.item}"></span> 8 {{ data.item }} 9 </span> 10 </template> 11 <!-- アイテム一覧の表示 --> 12 <template slot="item" slot-scope="data"> 13 <span> 14 <span class="colorBox" :style="{backgroundColor: data.item}"></span> 15 {{ data.item }} 16 </span> 17 </template> 18 </v-select> 19 </v-app> 20</div>

css

1span.colorBox { 2 display: inline-block; 3 width: 15px; 4 height: 15px; 5}

投稿2021/02/01 04:42

plasticgrammer

総合スコア629

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

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

tiitoi

2021/02/01 04:55

理想通りの見た目になりました。ご回答いただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問