レスポンシブ対応などの際、デザイン性を重視し、「ここだけは文字サイズを小さくしてエリア内に納めたい!」という要望があったとします。その場合、みなさんはどんな方法で対応しますか?
ブラウザ上でフォントを 10px以下のサイズとして表示させたい
ブラウザが表示できるテキストの大きさ(font-size)には限界があります。最小サイズはブラウザの設定によっても異なりますが、例えば chrome では 10pxが一番小さいフォントサイズです。
transform:scaleを使ってみる!
CSS3 の機能で要素を拡大・縮小表示する際に使う scale。こちらを利用し、font-size:10px;
に設定した文字を縮小させ、ブラウザが表示できる限界のサイズを超えていきたいと思います。
では早速。
CSSコード
div{ font-size: 10px; } .font_01{ transform:scale(0.9); } .font_02{ transform:scale(0.8); } .font_03{ transform:scale(0.7); } .font_04{ transform:scale(0.6); } .font_05{ transform:scale(0.5); } .font_06{ transform:scale(0.4); } .font_07{ transform:scale(0.3); } .font_08{ transform:scale(0.2); } .font_09{ transform:scale(0.1); }
サンプル
font_normal フォントをscaleで小さくするよ
font_01フォントをscaleで小さくするよ
font_02フォントをscaleで小さくするよ
font_03フォントをscaleで小さくするよ
font_04フォントをscaleで小さくするよ
font_05フォントをscaleで小さくするよ
font_06フォントをscaleで小さくするよ
雑学 ドラえもんの青い体はボディースーツらしい
font_08フォントをscaleで小さくするよ
font_09フォントをscaleで小さくするよ
使い方
まず、フォントサイズを指定します。この時のサイズを基準に縮小されるので、もちろん20pxなどで指定すると20pxから何パーセントづつしか小さくなりません。
次に transform: scale(値)
でどのくらい小さくするのかを指定します。
アクセシビリティ等の観点からは懸念もありますので、乱用は避けたいところですね。「どうしても!」という場面での利用にとどめておければと思います。
エピローグ
仕組みは意外と簡単です。10pxで表示したフォントをさらに80%で表示させる、といったかたちです。
工夫次第でいろいろなことが実装できておもしろいですね。偏見を捨てて、自由な発想で楽しくコーディングしていきたいと思います。