HTML、CSS、CSS Shapes を駆使して数字をスタイリッシュに囲む

2024-05-14

HTML、CSS、CSS Shapes を使って数字を円で囲む方法

HTML

まず、囲みたい数字を含む HTML 要素を用意します。 例えば、以下のように span 要素を使って数字 "1" を記述します。

<span class="number">1</span>

CSS

次に、CSS を使って、数字を囲む円を定義します。 以下は、円を生成するための基本的な CSS コードです。

.number {
  position: relative; /* 数字を他の要素と位置関係を独立させる */
  display: inline-block; /* 数字をインライン要素として表示 */
}

.number::before {
  content: ''; /* 疑似要素を作成して円を生成 */
  display: block; /* 円をブロック要素として表示 */
  width: 50px; /* 円の直径 */
  height: 50px; /* 円の直径 */
  border-radius: 50%; /* 円形にする */
  background-color: #f00; /* 円の色 */
  position: absolute; /* 絶対配置にして数字の上に重ねる */
  top: 50%; /* 垂直方向に中央揃え */
  left: 50%; /* 水平方向に中央揃え */
  transform: translate(-50%, -50%); /* 中央配置を調整 */
}

この CSS コードは、以下の設定を行います。

  • .number 要素を position: relative に設定することで、他の要素と位置関係を独立させます。
  • .number 要素を display: inline-block に設定することで、インライン要素として表示し、他の要素と並ぶようにします。
  • ::before 疑似要素を使って、円を生成します。
  • 円の幅と高さを 50px に設定して、直径 50px の円を作ります。
  • border-radius: 50% を設定して、円形にします。
  • 円の色を #f00 (赤) に設定します。
  • position: absolute を設定して、数字の上に円を重ねます。
  • top: 50%; left: 50%; を設定して、円を垂直方向と水平方向に中央揃えします。
  • transform: translate(-50%, -50%) を設定して、中央配置を微調整します。

カスタマイズ

上記のコードはあくまでも基本的な例です。 円の色、大きさ、位置などを自由にカスタマイズすることができます。 例えば、以下のように変更することで、緑色の円を数字の右側に配置することができます。

.number::before {
  background-color: #0f0; /* 緑色 */
  top: 0; /* 上端に配置 */
  right: 0; /* 右端に配置 */
  transform: translate(0, -50%); /* 中央配置を調整 */
}

さらに、CSS Shapes モジュールを利用することで、より複雑な形状の囲みを作ることもできます。 例えば、以下のように変更することで、数字を三角形の中に囲むことができます。

.number::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-bottom: 100px solid #f00; /* 三角形の色 */
  position: absolute;
  top: 0;
  left: 0;
  transform: rotate(-45deg); /* 三角形を回転 */
}

補足

  • 上記のコードはあくまで一例であり、状況に合わせて調整する必要があります。
  • 円形以外の形状を生成するには、様々な CSS プロパティを組み合わせて利用する必要があります。



<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数字を円で囲む</title>
  <style>
    .number {
      position: relative;
      display: inline-block;
    }

    .number::before {
      content: '';
      display: block;
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background-color: #f00;
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }
  </style>
</head>
<body>
  <span class="number">1</span>
  <span class="number">2</span>
  <span class="number">3</span>
</body>
</html>
.number {
  position: relative;
  display: inline-block;
}

.number::before {
  content: '';
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #f00;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

このコードを実行すると、以下のようになります。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数字を円で囲む</title>
  <style>
    .number {
      position: relative;
      display: inline-block;
    }

    .number::before {
      content: '';
      display: block;
      width: 50px;
      height: 50px;
      border-radius: 50%;
      background-color: #0f0;
      position: absolute;
      top: 0;
      right: 0;
      transform: translate(0, -50%);
    }
  </style>
</head>
<body>
  <span class="number">1</span>
  <span class="number">2</span>
  <span class="number">3</span>
</body>
</html>
.number {
  position: relative;
  display: inline-block;
}

.number::before {
  content: '';
  display: block;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #0f0;
  position: absolute;
  top: 0;
  right: 0;
  transform: translate(0, -50%);
}
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>数字を円で囲む</title



数字を円で囲む:その他の方法

Font Awesomeなどのアイコンフォントには、円を含む様々なアイコンが用意されています。 以下のように、アイコンフォントを使って数字を円で囲むことができます。

<i class="fas fa-circle">1</i>
<i class="fas fa-circle">2</i>
<i class="fas fa-circle">3</i>
i {
  font-size: 50px; /* アイコンのサイズ */
  vertical-align: middle; /* 垂直方向に中央揃え */
}

SVGを使う

SVG (Scalable Vector Graphics) を使って、円を描画することもできます。 以下のように、SVGを使って数字を円で囲むことができます。

<svg width="50" height="50">
  <circle cx="25" cy="25" r="20" fill="#f00" />
  <text x="25" y="25" text-anchor="middle" font-size="24" fill="#fff">1</text>
</svg>

<svg width="50" height="50">
  <circle cx="25" cy="25" r="20" fill="#f00" />
  <text x="25" y="25" text-anchor="middle" font-size="24" fill="#fff">2</text>
</svg>

<svg width="50" height="50">
  <circle cx="25" cy="25" r="20" fill="#f00" />
  <text x="25" y="25" text-anchor="middle" font-size="24" fill="#fff">3</text>
</svg>

ライブラリを使う

数字を円で囲むためのライブラリもいくつか存在します。 例えば、以下のライブラリを使うことができます。

これらのライブラリを使うことで、より簡単に数字を円で囲むことができます。

上記以外にも、様々な方法で数字を円で囲むことができます。 最適な方法は、状況や目的に合わせて選択する必要があります。


html css css-shapes


HTML/CSS初心者向け!スパン要素の幅を固定する方法

スパン要素は、テキストの一部を強調表示したり、スタイルを適用したりするために使用されます。デフォルトでは、スパン要素はコンテンツに合わせて幅が自動的に調整されます。スパン要素に固定幅を設定するには、CSSの width プロパティを使用します。width プロパティには、ピクセル (px) やパーセンテージ (%) などの単位を指定できます。...


canvas2imageライブラリでキャプチャする

JavaScriptHTMLCanvasCanvas の toDataURL() メソッドを使用するtoDataURL() メソッドは、キャンバスの内容をDataURL 形式で取得します。DataURL 形式は、画像データを Base64 エンコードされた文字列として表します。...


ボタンクリックで影を演出!jQueryでCSSルールを動的に生成

主に以下の2つの方法があります。css()メソッドを使えば、特定の要素に対して直接CSSプロパティを設定できます。例えば、以下のように要素の背景色を赤に変更できます。この方法は、簡単なスタイル変更に適しています。addClass()とremoveClass()メソッドを使う...


CSS background-sizeとbackground-positionで背景画像を幅に合わせ、高さを自動調整する

HTMLとCSSを使用して、背景画像を要素の幅に合わせ、高さは元の縦横比を維持しながら自動調整する方法を解説します。方法以下の2つの方法があります。background-size プロパティを使用するこの方法は、背景画像のサイズを直接指定する方法です。...


:after疑似要素でWebサイトをもっと魅力的に!CSSとJavaScriptでできるテクニック

しかし、jQueryには、after() メソッドと css() メソッドを組み合わせることで、:after 疑似要素を操作する方法があります。after() メソッドは、要素の直後にHTMLコンテンツを挿入するために使用されます。引数に空文字を渡すと、:after 疑似要素を表す空のjQueryオブジェクトが返されます。このオブジェクトを使用して、:after 疑似要素のCSSプロパティを変更したり、イベントをバインドしたりすることができます。...