【HTML/CSS/Font Awesome】大きなFontAwesomeアイコンとテキストを垂直中央揃えする方法3選

2024-05-23

このチュートリアルでは、HTML、CSS、Font Awesome を使って、大きな Font Awesome アイコンとテキストを垂直方向に中央揃えする方法を説明します。 垂直方向に中央揃えにする方法はいくつかありますが、ここでは 3 つの一般的な方法を紹介します。

方法 1: flexbox を使う

flexbox は、Web ページのレイアウトを柔軟に制御できる強力な CSS レイアウトモジュールです。 flexbox を使って、アイコンとテキストを垂直方向に中央揃えするには、以下の手順を行います。

  1. 親要素に display: flexalign-items: center を設定します。 これにより、親要素内の要素が垂直方向に中央揃えになります。
  2. アイコンとテキストをそれぞれ子要素として配置します。
  3. アイコンに font-size プロパティを使って、適切なサイズを設定します。
  4. 必要に応じて、アイコンとテキストの間隔を調整するために、 marginpadding プロパティを使います。

<div class="container">
  <i class="fa fa-star"></i>
  <p>テキスト</p>
</div>
.container {
  display: flex;
  align-items: center;
}

.fa-star {
  font-size: 48px;
  margin-right: 10px;
}

方法 2: line-height を使う

line-height プロパティは、要素内の行の高さを設定します。 このプロパティを使って、アイコンとテキストを垂直方向に中央揃えするには、以下の手順を行います。

  1. 親要素に line-height プロパティを設定します。 この値は、親要素の高さと同じにする必要があります。
  2. アイコンとテキストに display: inline-block を設定します。 これにより、line-height プロパティが適用されるようになります。
<div class="container">
  <i class="fa fa-star"></i>
  <p>テキスト</p>
</div>
.container {
  line-height: 48px; /* アイコンのサイズと同じにする */
}

.fa-star,
p {
  display: inline-block;
}

方法 3: table 要素を使う

table 要素を使って、アイコンとテキストを垂直方向に中央揃えすることもできます。 この方法は、古いブラウザーとの互換性を確保したい場合に役立ちます。

  1. 親要素を table 要素として設定します。
  2. td 要素に vertical-align: middle を設定します。 これにより、td 要素内のコンテンツが垂直方向に中央揃えになります。
<table>
  <tr>
    <td><i class="fa fa-star"></i></td>
    <td><p>テキスト</p></td>
  </tr>
</table>
.fa-star {
  font-size: 48px;
}

補足

  • 上記の方法は、あくまでも例です。 状況に応じて、スタイルを調整する必要があります。
  • Font Awesome アイコンのサイズを変更する場合は、font-size プロパティを調整してください。
  • 垂直方向だけでなく、水平方向にも中央揃えしたい場合は、text-align: center を設定します。



    HTML

    <!DOCTYPE html>
    <html lang="ja">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Font Awesome アイコンとテキストを垂直方向に中央揃え</title>
      <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
      <style>
        .container {
          display: flex; /* flexbox を使う */
          align-items: center; /* 垂直方向に中央揃え */
        }
    
        .fa-star {
          font-size: 48px; /* アイコンのサイズ */
          margin-right: 10px; /* アイコンとテキストの間隔 */
        }
      </style>
    </head>
    <body>
      <div class="container">
        <i class="fa fa-star"></i>
        <p>テキスト</p>
      </div>
    </body>
    </html>
    

    CSS

    .container {
      display: flex;
      align-items: center;
    }
    
    .fa-star {
      font-size: 48px;
      margin-right: 10px;
    }
    

    説明

    このコードは、以下の要素で構成されています。

    • <!DOCTYPE html>: HTML ドキュメントの宣言
    • <html lang="ja">: HTML ドキュメントのルート要素。 lang 属性で言語を日本語に指定
    • <head>: HTML ドキュメントのヘッダー部分。 メタデータやリンクなどを記述
    • <meta charset="UTF-8">: 文字エンコーディングを UTF-8 に設定
    • <meta name="viewport" content="width=device-width, initial-scale=1.0">: ビューポートの設定。 デバイスの幅に合わせてページをスケーリング
    • <title>Font Awesome アイコンとテキストを垂直方向に中央揃え</title>: ドキュメントのタイトル
    • <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">: Font Awesome の CSS ファイルをインポート
    • <style>: スタイル定義
    • .container: 親要素のスタイル。 display: flexalign-items: center を設定して、アイコンとテキストを垂直方向に中央揃え
    • .fa-star: アイコンのスタイル。 font-size でアイコンのサイズを設定し、margin-right でアイコンとテキストの間隔を設定

    実行方法

    1. 上記のコードを index.html などのファイルに保存します。
    2. Web ブラウザで index.html ファイルを開きます。

    結果

    Web ブラウザに、大きな Font Awesome アイコンとテキストが垂直方向に中央揃えで表示されます。




    Font Awesomeアイコンとテキストを垂直方向に中央揃えするその他の方法

    方法 4: position プロパティと top 属性を使う

    この方法は、アイコンとテキストをそれぞれ別の要素として配置し、position プロパティと top 属性を使って垂直方向に中央揃えする方法です。

    <div class="container">
      <div class="icon">
        <i class="fa fa-star"></i>
      </div>
      <p>テキスト</p>
    </div>
    
    .container {
      position: relative; /* 親要素に相対配置を設定 */
    }
    
    .icon {
      position: absolute; /* アイコンを絶対配置に設定 */
      top: 50%; /* アイコンを垂直方向に50%の位置に配置 */
      transform: translateY(-50%); /* アイコンを垂直方向に中央に配置 */
    }
    
    .fa-star {
      font-size: 48px;
    }
    

    方法 5: padding プロパティと垂直方向の margin を使う

    この方法は、親要素に padding-toppadding-bottom プロパティを設定し、アイコンに margin-topmargin-bottom プロパティを設定して、垂直方向に中央揃えする方法です。

    <div class="container">
      <i class="fa fa-star"></i>
      <p>テキスト</p>
    </div>
    
    .container {
      padding-top: 24px; /* アイコンの半分の高さ */
      padding-bottom: 24px; /* アイコンの半分の高さ */
    }
    
    .fa-star {
      font-size: 48px;
      margin-top: -24px; /* アイコンの半分の高さ */
      margin-bottom: -24px; /* アイコンの半分の高さ */
    }
    

    この方法は、親要素に display: flexalign-items: center を設定し、アイコンとテキストをそれぞれ子要素として配置する方法です。この方法は、flexboxの垂直方向の機能を利用しています。

    <div class="container">
      <i class="fa fa-star"></i>
      <p>テキスト</p>
    </div>
    
    .container {
      display: flex;
      align-items: flex-start; /* 垂直方向に上端で揃える */
    }
    
    .fa-star {
      font-size: 48px;
      margin-right: 10px;
    }
    
    • 方法 1 は、flexbox を使って柔軟なレイアウトを作成したい場合に適しています。
    • 方法 3 は、古いブラウザーとの互換性を確保したい場合に適しています。
    • 方法 4 は、アイコンとテキストを個別に制御したい場合に適しています。
    • 方法 6 は、flexboxの垂直方向の機能を利用した方法です。

    どの方法を選択するにしても、重要なのは、一貫したデザインを維持し、ユーザーにとって読みやすく使いやすいレイアウトを作成することです。


    html css font-awesome


    HTML コメント: コードを分かりやすくするための方法

    解説:HTML コメントは、で囲まれた部分です。これはブラウザによって解釈されず、ソースコード上でのみ表示されます。コメントは、以下のような用途で使用されます。コードの説明やメモを残すテスト用コードや不要なコードを一時的に無効にする入れ子 とは、コメントの中にさらにコメントを記述することです。...


    .htaccessファイルを使ってリダイレクトする方法

    metaタグを使うこれは最も簡単な方法です。head要素内にmetaタグを追加します。上記の場合、ページが読み込まれると、0秒後にhttps://example. com/new-page. htmlにリダイレクトされます。JavaScriptを使って、window...


    迷ったらコレ!Djangoフォームでラジオボタンを1つだけ選択するベストプラクティス

    Djangoフォームでラジオボタングループから1つだけ選択できるようにするには、いくつかの方法があります。方法1:choice_attributesを使う各ラジオボタンにchoice_attributes属性を設定することで、個別に属性を指定できます。...


    span要素の改行をスマートに禁止!最適なCSSテクニック大公開

    HTMLの<span>要素は、テキストの一部にスタイルを適用するために使用されます。しかし、span要素で囲まれたテキストが長い場合、ブラウザのウィンドウ幅を超えると自動的に改行されてしまいます。場合によっては、意図したレイアウトを崩してしまうことがあります。...


    魅力的なサイトデザインを実現!CSSでSVGを疑似要素::beforeや::afterに活用する方法

    CSS疑似要素 ::before や ::after は、要素のコンテンツの前後にテキストや画像を追加することができます。従来、テキストや画像ファイルのみを使用できましたが、近年ではSVG画像も使用できるようになりました。メリット高度なデザイン表現: SVGはベクター画像形式なので、サイズ変更しても画質が劣化せず、複雑な形状やアニメーションも表現できます。...