[CSS]アイコンとテキストを横並びに揃えるスタイルシートのテクニック
Post on:2016年7月6日
アイコンとテキストを横並びにする配置は、Webページでよく使用されます。ナビゲーションやリスト、リンク、ヘッダやフッタのリンクなど、さまざまなコンテンツで見かけますね。
アイコンとテキストを横並びに美しく揃えるスタイルシートのテクニック、調整用のスタイルシートを紹介します。
Tips for Aligning Icons to Text
下記は各ポイントを意訳したものです。
※元サイト様のライセンスに基づき、翻訳しています。
- Step 1: アイコンのフォーマットを決める
- Step 2: 同じようなサイズのアイコンを使う
- Step 3: アイコンのサイズにフォントのサイズを合わせる
- Step 4: 位置の調整はCSSを使う
- Step 5: 適用するアイコンのためにclass名を使う
Step 1: アイコンのフォーマットを決める
アイコン画像には、さまざまなフォーマットがあります。
- SVGアイコン
- アイコン フォント
- スプライト画像
- インライン画像
好みがあるかもしれませんが、アイコンのフォーマットはテキストに横並びさせる方法に大いに関係があります。
すべてのアイコンがスプライト画像に含まれているとします。その場合は固定サイズに向いています。コンテンツのサイズも行の高さも一定であるなら、調整することは簡単です。
SVGアイコンは拡大縮小が可能で、調整する時はデザインのプロセスではなく、CSSを使って行います。
ここではSVGアイコンを選択し、テキストに横並びさせるためのベースとして使います。コードはメンテナンス性に優れ、デザインで調整する必要はないのでデザイナーはあなたに感謝するでしょう。
Step 2: 同じ大きさのアイコンを使う
ここに理想的な状態があります。すべてのアイコンは、正確に同じ大きさです。
同じ大きさのアイコン
アイコンはすべて100pxの正方形でデザインされています。もちろん見た目が同じ大きさになるとは限らないことは知っています。アイコンはデザインによって形状が異なり、その空白スペースの量が変わります。
例えば地図のピンは、ショッピングカートより狭いデザインです。SVGで作成する時にファイルサイズを少なくするために、空白スペースを排除するでしょう。それは素晴らしい方法ですが、今回はそれをやめます。テキストと横並びさせるためのアイコンでは、この空白スペースを残したままの同じ幅にします。
Step 3: アイコンのサイズにフォントのサイズを合わせる
アイコンは、タイポグラフィのように扱われるべきです。テキストと関連したり、テキストの代わりとして使われるからです。そのためアイコンのサイズはテキストと同様に、明瞭性を備えた首尾一貫したサイズにするべきです。
テキストが16pxだから、アイコンも16pxにということではありません。フォントのサイズを踏まえた上で、アイコンが機能するサイズにすることが大切です。テキストのサイズとバランスのとれたアイコンとそうでないアイコンを見てください。
Aligning Icons to Text: Example 1
左右両方ともアイコンはテキストときれいに横並びになっていますが、左のアイコンの方がフォントのサイズとバランスがよく見えます。
Step 4: 位置の調整はCSSを使う
アイコンをテキストに横並びで揃える時に、正確に位置を調整するためのスタイルシートを紹介しましょう。
1 2 3 4 5 6 |
.icon { position: relative; /* 値は調整してください */ top: 5px; left: 5px; } |
このスタイルシートを利用することで簡単に微調整ができ、アイコンをテキストに横並びに美しく揃えることができます。
Aligning Icons to Text: Example 2
Step 5: 適用するアイコンのためにclass名を使う
上記の例は一見よく見えますが、地図のピンが狭く、音符がテキストに寄っているように見えます。これはCSSで調整することができます。
1 2 3 4 5 6 7 |
<ul> <li><svg class="icon-user"><use xlink:href="#icon-user"></use></svg> Weezer</li> <li><svg class="icon-location"><use xlink:href="#icon-location"></use></svg> Santa Monica</li> <li><svg class="icon-music"><use xlink:href="#icon-music"></use></svg> Discography</li> <li><svg class="icon-sphere"><use xlink:href="#icon-sphere"></use></svg> weezer.com</li> <li><svg class="icon-cart"><use xlink:href="#icon-cart"></use></svg> Artist Store</li> </ul> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/* 「icon」ではじまるclass名をもつアイコンすべてに適用 */ [class^="icon"] { width: 50px; height: 50px; position: relative; top: 15px; margin-right: 10px; fill: #fff; } /* 音符アイコンのみ調整 */ .icon-music { right: 5px; } |
これでアイコンがテキストに横並びにぴったり揃いました。バランスもいいですね。
sponsors