お問い合わせはコチラから

親要素のサイズに合わせてフォントサイズを調整する

サイト運営

見出しの文字数が多くて、折り返してしまうことは結構あります。

文字サイズを画面のサイズに合わせて自動的に調整するようなCSSもありますが、文字数によってはうまくいかない時もあります。

親要素の幅にピッタリ入るようにフォントサイズを調整してくれるFittyという便利なjavascriptがありますので、この記事でご紹介します。

Fittyとは?

親要素の横幅に入るように文字サイズを調整してくれるjavascriptです。

特徴

  • 依存関係なし
  • 簡単なセットアップ
  • DOM 読み取りおよび書き込み操作をグループ化することによる最適なパフォーマンス
  • WebFonts で動作します (以下の例を参照)
  • 最小および最大フォント サイズ
  • マルチラインのサポート
  • ビューポートが変更されると自動更新される
  • 要素のサブツリーを監視し、それに応じて更新します
GitHub - rikschennink/fitty: ✨ Makes text fit perfectly
✨ Makes text fit perfectly. Contribute to rikschennink/fitty development by creating an account on GitHub.

Fittyの使い方

Fittyを動かすのに必要なファイルはfitty.min.js一つだけです。

文字サイズを調整してほしい要素のセレクタを指定してfittyを呼び出せばいいだけです。

公式の例だと以下のような感じになっています。

<div id="my-element">Hello World</div>

<script src="fitty.min.js"></script>
<script>
    fitty('#my-element');
</script>

Fittyを適用しても親要素からはみ出る場合

親要素にマージンやpaddingが付いていると親要素の幅をうまく計算できないようです。

ダメな例

例えば、h1要素を親要素としてfittyを適用しようとして、spanでくくる場合、親要素(h1)にマージン等が設定されているとうまく動きません。

<h1><span id="my-element">Hello World</span></h1>

<script src="fitty.min.js"></script>
<script>
    fitty('#my-element');
</script>

回避方法

そこで、素の<div>でくくってあげれば期待した動きになります。

<h1><div><span id="my-element">Hello World</span></div></h1>

<script src="fitty.min.js"></script>
<script>
    fitty('#my-element');
</script>

javascriptで自動的にwrapperを追加することもできます。

DOM操作してからfittyを実行しないと、fittyが見つけられないので実行順序注意してください。

let result = document.getElementsByClassName('sample');

for (let i = 0; i < result.length; i++) {
 // ラッパーで囲む
org_html = result[i].innerHTML;
new_html = "<div class=''><span class='fit'>" + org_html + "</span></div>";
 result[i].innerHTML = new_html;

}

まとめ

忘れたころに必要になるFittyなのですが、適用が簡単な反面、適用してもはみ出てしまう怪現象に悩むことも多いです。

この記事を書いた人
ブーン

はるばる日本よりオランダ王国へやってまいりました。
自分の経験が少しでも参考になれば嬉しいです。
お問い合わせは、『こちら』からお願い致します。

\ブーンをフォロー/
スポンサーリンク
サイト運営
\シェアお願いします!/
\ブーンをフォロー/
こんな記事も読まれています

失敗しないレンタルサーバーランキング

mixhost

不正アクセスに強くて使いやすいおススメサーバー
\本サイトで利用中/
メリット①:自動ウィルス駆除対応
メリット②:サイトの表示速度が速い!
メリット③:転送量の上限が多い!
メリット④:自由にプラン変更ができ、アクセス増にも対応できる!
メリット⑤:バックアップデータが無料で復元できる!
メリット⑥:Wordpressが簡単にインストールできる!
メリット⑦:どのプランでも初期費用が無料!
メリット⑧:10日間の無料お試し期間と30日の返金保証!

Conoha Wing

国内Wordpress最速の最強サーバー
メリット①:圧倒的な表示速度
メリット②:レンタルサーバーと独自ドメインがセットでお得◎
メリット③:プラン変更はすべてのプランで自由自在
メリット④:一か月の利用転送量の制限が緩い(9TB~)
メリット⑤:WordPresサイトの移行が簡単

エックスサーバー

国内シェアNo1の安定性と実績が魅力。ALL SSDで死角なしの万能サーバー。
メリット①:サイトの表示速度が安定して速い!
メリット②:アクセス負荷に強くて安定性が高い!
メリット③:24時間365日の充実サポートで安心!電話サポートもあり!
メリット④:転送量が多い!
メリット⑤:自動バックアップ機能付き!
メリット⑥:WordPressが簡単にインストールできる!
メリット⑦:10日の無料お試し期間がある!

タイトルとURLをコピーしました