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

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

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

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

Vuetify.js

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

解決済

1回答

6561閲覧

【vue, vuetify】v-selectの中身にCSSを当てたい

JsoHaya

総合スコア17

Vue.js

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

Vuetify.js

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

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

0クリップ

投稿2021/01/26 06:04

編集2021/01/26 06:32

vuetifyで複数の<v-select>を利用していますが、
1つのセレクトボックスのダイアログにだけCSSを当てたいです。

.v-list-item__titleにCSSを当てることまでは理解できているのですが、
複数ある<v-select>の1つにだけ適用させたいです。

<v-select class="XXXX">としても、インプット要素にはクラスが当たりますが、
選択肢のダイアログに当てるということができずに悩んでいます。

解決方法をご存知の方がいましたらご回答よろしくお願いいたします。イメージ説明

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

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

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

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

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

Twoshi

2021/01/26 06:25 編集

こんにちは! ご質問拝見いたしました。 ご質問内容にある1つのセレクトボックスのダイアログというのはどのような部分なのかご記入いただくことはできますでしょうか?(スクショなどあればありがたいです。) また、当てたいスタイルの内容もご記入いただけるとありがたいです。 ソース自体をご記入いただけるとなお回答もしやすいと思います。
JsoHaya

2021/01/26 06:36

ご確認ありがとうございます。 セレクトボックスのスクショを貼りました。この画像は左詰ですが、本当は中央ぞろえになります) このようなセレクトボックスと、選択肢が長文のセレクトボックスが別にあるとして、そちらには 「white-space: normal; text-align: left;」を当てて改行左詰にしたいです。 ソースは業務PCにありますので、申し訳ないのですが記載することが難しいです。申し訳ございません。
Twoshi

2021/01/26 07:14

ご質問の編集ありがとうございます! 上記承知いたしました!
guest

回答1

0

ベストアンサー

v-selectコンポーネントのv-slotを利用してclassを指定してはいかがでしょうか?

v-selectタグ内にtemplate v-slot:item="{ item }"を記述することで、templateタグ内にセレクトリストの表示を記述することができます。
そこにclassを当ててあげれば希望のスタイルが当てられると思います。
※spanタグを利用していますが、divタグなどに変更いただいても問題なく動作します。

classについては、付けたいitemの条件を指定してあげると良いと思います。

html

1<span :class="{ class名: 条件式 }">{{ item }}</span>

以下試してみたソースになります。
(cssはわかりやすく色をつけてスタイルがあたることを確認しています。)

html

1 <v-select 2 v-model="value" 3 :items="items" 4 label="Select Item" 5 > 6 <template v-slot:item="{ item }"> 7 <span :class="{ class-name: item.length > 10 }">{{ item }}</span> 8 </template> 9 </v-select>

投稿2021/01/26 07:32

Twoshi

総合スコア354

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

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

JsoHaya

2021/01/26 08:23

できました!v-slotでできるんですね。勉強になりました。ありがとうございます
Twoshi

2021/01/26 08:35

解決できてよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問