Vuetify 2のv-calendarで月ビューの日セル高さを調整する方法
Vuetify 2のv-calendarで月ビューの日セル高さを調整する方法
Vuetify 2 の <v-calendar>
を月ビューで使用していると、イベントやテキストが詰まって見づらくなることがあります。この原因は、セル自体の高さではなく、カレンダー全体の高さ設定にあります。本記事では、月ビューの日セル高さを広げる正しい方法を解説します。
なぜCSSでセルを直接大きくしても効果がないのか
月ビューのセル高さは「カレンダー全体の高さ ÷ 週数(5〜6)」で決まります。つまり、.v-calendar-monthly__day
に対して height
や min-height
を指定しても、親コンテナの高さを超えて広がることはできません。
正しい解決方法:v-calendar の height を指定する
セルの高さを広げたい場合は、v-calendar
コンポーネント自体の height
props を大きくします。
1 2 3 4 5 6 7 8 9 10 11 |
<v-calendar v-model="selectedDate" type="month" :height="calendarHeight" :min-weeks="6" :events="sampleEvents" :event-more="false" locale="jp-ja" /> |
1セルあたりの高さを決めて計算する方法もあります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<template> <v-calendar v-model="selectedDate" type="month" :height="calendarHeight" :min-weeks="6" :events="sampleEvents" :event-more="false" locale="jp-ja" /> </template> <script> export default { data () { return { selectedDate: '2025-01-01', // ダミー日付 rowHeightPx: 150 // 1週あたりの高さ(px) } }, computed: { calendarHeight () { const headerHeightPx = 56 // ヘッダ分の高さ const totalWeeks = 6 return totalWeeks * this.rowHeightPx + headerHeightPx } } } </script> |
注意点
親要素(例:<v-sheet height="600">
)が小さいと、v-calendar
の高さ設定が反映されません。親の高さ制限を外すか十分大きくする必要があります。
まとめ
- 月ビューのセル高さはカレンダー全体の高さに依存する
- CSSでセルを直接指定しても効果がない
- v-calendar の height を増やすのが正解
- 計算式で動的に高さを調整することも可能
ディスカッション
コメント一覧
まだ、コメントがありません