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

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

2回答

3069閲覧

【CSS,Vue】親のサイズに合わせて、フォントサイズを変更する

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/13 02:36

編集2020/11/16 05:14

環境

vue
vuetify

動かす端末
iPad(第8世代)

前提・実現したいこと

表題の通り、親のサイズに合わせて、フォントサイズを変更したいと思っています。
画像を見ていただいたほうが早いと思います。

2行目にまたがる文字数は多くてせいぜい5文字ほどだと思うので、フォントサイズを小さくすると行った方法で解決したいと考えております。

また、CodePenで実装したものが下記となります。
https://codepen.io/momochi/pen/QWEzYOo

実現方法や私の試したことのエラーの原因をご教授頂きたいです。
よろしくお願いします。

該当のソースコード

html

1<div id="app"> 2 <v-app> 3 <v-container fluid> 4 <v-item-group 5 v-model="selected" 6 > 7 <v-row style="width: 50%"> 8 <v-col v-for="q in qlist" :key="q" cols="4"> 9 <v-item v-slot:default="{ active, toggle }" :value="q"> 10 <v-card 11 :color="active ? 'green' : 'white'" 12 :class="{ 13 'white--text': active, 14 'black--text': !active, 15 }" 16 height="50" 17 class="d-flex align-center" 18 @click="toggle" 19 elevation="2" 20 > 21 <div v-if="active"> 22 <v-icon dark right>mdi-checkbox-marked</v-icon> 23 {{ q }} 24 </div> 25 <div v-if="!active"> 26 <v-icon color="black" dark right 27 >mdi-checkbox-blank-outline</v-icon 28 > 29 {{ q }} 30 </div> 31 </v-card> 32 </v-item> 33 </v-col> 34 </v-row> 35 </v-item-group> 36 <p>{{selected}}</p> 37 </v-container> 38 </v-app> 39</div> 40

javascript

1new Vue({ 2 el: '#app', 3 vuetify: new Vuetify(), 4 data () { 5 return { 6 qlist:["ああああああああああああああああああああああああああ","bb","cc","dd"], 7 selected:"" 8 } 9 }, 10 methods:{ 11 12 } 13})

試したこと

親要素の幅を取得できれば、フォントサイズを計算できると考え、下記のURLのように試してみたのですが、
エラーで取得ができませんでした。
https://qiita.com/qualidea/items/9dd11487292ed387e5e1

error

1[Vue warn]: Error in mounted hook: "TypeError: Cannot read property 'clientWidth' of undefined" 2 3TypeError: Cannot read property 'clientWidth' of undefined

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

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

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

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

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

guest

回答2

0

フォントサイズを小さくするのも限界がありフォントによって幅が違うので
その方法はあまりよろしくないです。
オーバーフローの処理は、隠すか、スクロールするか、つきぬけるかのどれかが妥当

投稿2020/11/13 02:50

yambejp

総合スコア116732

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

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

momochi

2020/11/13 03:27

使用する環境はiPadで決まっており、WEBアプリとして利用する予定です。 また、フォントサイズはそこまで小さくすることはないと思います。 二行目にまたがる文字数は多くて5文字程度までだと予想するからです。 ご提案いただいた、隠す、スクロール、つきぬけるはデザイン的によろしくないかと思いますので、 申し訳ございませんが、他の方法はございませんでしょうか。
miyabi_takatsuk

2020/11/16 01:42

> 使用する環境はiPadで決まっており そのような前提条件などは、記載いただかないと、 第三者は知りようがありません。 質問本文に記載ください。
guest

0

Vue.js については分からないので、
HTML CSS の観点から回答します。

単位をvwにすると画面幅に対しての相対値で設定できます。
あとはcalcと組み合わせて、画面幅100vw に対して余白等を引いて、1行の最大文字数で割れば font-size を計算できると思います。

投稿2020/11/13 05:00

hatena19

総合スコア34075

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問