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

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

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

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

Vuetify.js

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

CSS

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

Q&A

解決済

1回答

1583閲覧

ボタン要素をジグザクに二行で表示する

momochi

総合スコア68

Vue.js

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

Vuetify.js

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

CSS

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

0グッド

0クリップ

投稿2020/11/05 09:24

編集2020/11/05 09:36

前提・実現したいこと

①ボタン要素をジグザクに二行で表示し、x軸方向にスクロールしたいと考えています。
②それらのボタンが押されているものを保持し、
③押されていたら、色付けする

文章で説明しにくいので画像とCodePenを載せます。
イメージ説明

自分のCodePen
https://codepen.io/momochi/pen/LYZBLBZ

以上、3点が機能すれば、大きく仕様を変えても構いません。
例えば、
①を実現するために、配列を無理やり二重配列にしていますが、一重のまま①ができれば、その他はうまく機能すると思います。

result_list:[["a","b"],["c","d"],["e","f"],["g","h"],["i","j"]] ↓ result_list:["a","b","c","d","e","f","g","h","i","j"]

よろしくお願いいたします。

発生している問題・エラーメッセージ

①、②は無理やりですが、自力でできました。
③が出来なくて詰まっています。

v-btn-toggleでcolor="deep-purple accent-3"のようにすると選択されているものが色付けされるのですが、
①を実現するために無理やり2要素づつdivで囲っているので、うまく機能しないようです。
(参考)
・公式リファレンス https://vuetifyjs.com/en/components/button-groups/#usage
・公式CodePen https://codepen.io/pen/?editors=1010
(CodePenのTextOptionsのように色付けされてほしいです)

html

1<div id="app"> 2 <v-app> 3 <div class="forecast-outline mt-3"> 4 <v-btn-toggle v-model="selected" multiple group> 5 <div 6 v-for="two_items in result_list" 7 :key="`${two_items[0]}_${two_items[1]}`" 8 > 9 <v-btn 10 v-for="item in two_items" 11 :key="item" 12 x-large 13 height="68" 14 class="mb-2 mr-2 text-center align-center forecast-card" 15 :value="item" 16 > 17 {{item}} 18 </v-btn> 19 </div> 20 </v-btn-toggle> 21 </div> 22 {{selected}} 23 </v-app> 24</div>

css

1 2.forecast-outline { 3 width: 90%; 4 height: 160px; 5 margin: auto; 6 outline: dashed 2px black; 7 padding: 8px; 8 overflow-x: scroll; 9 10 display: flex; 11} 12.forecast-inlinebox > div{ 13 /* forecast-cardの横幅 + 隙間(ml-2(8px)) */ 14 width: 208px; 15} 16.forecast-card{ 17 width: 200px; 18}

javascript

1new Vue({ 2 el: '#app', 3 vuetify: new Vuetify(), 4 data () { 5 return { 6 selected:[], 7 result_list:[["a","b"],["c","d"],["e","f"],["g","h"],["i","j"]] 8 } 9 }, 10 methods:{ 11 } 12})

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

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

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

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

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

guest

回答1

0

ベストアンサー

2つほどアプローチが考えられるので、それぞれ例を示します。
参考になれば幸いです。

1 v-btn-toggle のcolorが動作するように構造を整理し、ジグザグの折返しはcssのflexで対応する

https://codepen.io/daikiojm/pen/rNLZjKb?editors=1111

2 v-btn-toggle のcolorではなく、v-btnのcolorを直接使う

https://codepen.io/daikiojm/pen/QWEVpMP

投稿2020/11/06 17:18

編集2020/11/06 17:19
DaikiOjima

総合スコア271

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

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

momochi

2020/11/06 23:59

2例もあげてくださり、ありがとうございます!! 1はやろうとして悩んでいたことを実現してくださっています!! flexの使い方がよくわからず諦めていたので、大変勉強になりました。 2の私のやり方に合わせた対応策も参考になりました。 1のほうが構造的にもシンプルなので、1に置き換えようと思います。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問