カードにNEWバッジや斜めリボンを配置する方法|位置・はみ出し・回転

カードUI
無料ツール
カードを自由に作成

タイトル・説明文・サイズ・配置・背景色・枠線・影・文字などを設定して、HTMLとCSSを自動生成できます。

カード作成ツールを使う
新しいタブで開きます

カードにNEWバッジや斜めリボンを重ねると、カード本体のデザインを大きく変えずに、特定の情報を目立たせることができます。この記事では、装飾をカードの好きな場所に配置する「位置」、カードの外側に出す「はみ出し」、装飾を斜めに傾ける「回転」の3つを紹介します。

「位置」では、カードの四隅や辺の中央などを基準に装飾を配置します。「はみ出し」では、丸型バッジをカードの角から外側に出したり、はみ出した部分を隠したりできます。「回転」では、横長のラベルを斜めに傾け、カードの角に沿ったリボンのように表示します。

これらの配置方法は、NEWバッジやリボンだけに限りません。装飾の文字・色・形を変えたり、複数の装飾を組み合わせたりすることで、カードの印象を大きく変えられます。例えば、位置を変えて複数のラベルを並べる、未読件数をカードの角からはみ出させる、斜めリボンでおすすめ情報を強調するといった表現も可能です。

カード装飾の応用例。位置を調整した複数のラベル、カードの外側にはみ出す通知バッジ、回転させた斜めリボンを3つのカードで紹介
3つの基本操作を応用した装飾例。左はTOPIC・NEW・PICK UPなどを自由な位置に配置したカード、中央は未読件数や丸型バッジを外側にはみ出させたカード、右はリボンやラベルを回転させて重ねたカードです。装飾の形や色を変えることで、このようなデザインにも応用できます。

下のデモでは、3つの基本操作をそれぞれシンプルなカードで確認できます。装飾の配置方法を理解すれば、挿絵のように複数のラベルを重ねたり、バッジやリボンを組み合わせたりするデザインにも発展させられます。

デモ

① 位置

NEW

カード

使用するCSS

top・right・bottom・left・translate()を使い、カード内の好きな位置に装飾を配置します。

基本形① 左上に配置

position: absolute;
top: 10px;
left: 10px;

基本形② 上辺中央に配置

position: absolute;
top: 10px;
left: 50%;
transform: translateX(-50%);

② はみ出し

人気

カード

使用するCSS

位置にマイナス値を指定すると、装飾をカードの外側にはみ出させることができます。overflowで表示範囲も調整できます。

基本形

position: absolute;
top: -20px;
right: -20px;

はみ出した部分を切り取る場合は、カード側にoverflow: hidden;を指定します。

③ 回転

おすすめ

カード

使用するCSS

rotate()で装飾の角度を変更します。位置指定やoverflowと組み合わせると、斜めリボンも作れます。

基本形

position: absolute;
top: 20px;
right: -37px;
transform: rotate(45deg);

カード側にoverflow: hidden;を指定すると、リボンのはみ出した部分を切り取れます。

コードをコピーして使おう!

<!DOCTYPE html>
<html lang="ja">
<head>

  <!-- 文字コード -->
  <meta charset="UTF-8">

  <!-- スマートフォン対応 -->
  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <!-- ページタイトル -->
  <title>カード装飾</title>

  <!-- CSSファイル -->
  <link rel="stylesheet" href="style.css">

</head>
<body>

  <!-- カード全体 -->
  <div class="card-decoration_wrap">

    <!-- ① 位置:左上にNEWバッジを配置 -->
    <div class="card-decoration_card">

      <!-- 位置を変更する装飾 -->
      <span class="card-decoration_position">NEW</span>

      <!-- カード内の文字 -->
      <p class="card-decoration_card-text">カード</p>

    </div>

    <!-- ② はみ出し:右上から丸型バッジをはみ出させる -->
    <div class="card-decoration_card">

      <!-- カードの外側にはみ出す装飾 -->
      <span class="card-decoration_overflow">人気</span>

      <!-- カード内の文字 -->
      <p class="card-decoration_card-text">カード</p>

    </div>

    <!-- ③ 回転:右上に斜めリボンを配置 -->
    <div class="card-decoration_card card-decoration_rotate-card">

      <!-- 回転させる装飾 -->
      <span class="card-decoration_rotate">おすすめ</span>

      <!-- カード内の文字 -->
      <p class="card-decoration_card-text">カード</p>

    </div>

  </div>

</body>
</html>
コードについて 本記事のコードはサンプルコードです。ご利用前に必ず動作確認を行ってください。 免責事項 本コードの利用により発生した損害について、当サイトは一切の責任を負いません。

コードをコピーする場合 使用するコードのタブを選び、「このタブをコピー」をクリックすると、現在表示中のコードをコピーできます。 サンプル一式を取得する場合 HTML・CSSなどすべてのファイルが必要な場合は、「サンプル一式をダウンロード」をクリックしてください。
Q ダウンロードしたけど、これをネット上で動かすにはどうするの?
A

Googleアカウントがあれば、InfinityFreeで無料サーバーを作成して、ダウンロードしたサンプルをネット上で動かせます。

InfinityFreeを初めて利用する場合は①から、すでにサーバーを作成している場合は②へ進んでください。

ファイル構成と設置方法

このサンプルでは、カードの装飾を「位置」「はみ出し」「回転」の3つに分けて確認できます。HTMLにはNEWバッジ・丸型バッジ・斜めリボンを配置した3種類のカードを用意し、CSSでそれぞれの表示位置や形を設定しています。

使用するファイルはindex.htmlとstyle.cssの2つです。装飾の配置にはCSSのpositionやtransformを使用しており、JavaScriptは必要ありません。3種類のカードは1つのサンプルにまとめているため、それぞれの設定を比較しながら変更できます。

sample/
├── index.html
└── style.css

各ファイルの役割
index.htmlには、3種類のカードと装飾用の要素を記述しています。左上の「NEW」、右上からはみ出す「人気」、斜めに表示する「おすすめ」の文字は、このファイルで変更できます。不要なカードを削除したり、使用したい装飾を別のカードへ組み込んだりすることもできます。

style.cssでは、カードを基準とした装飾の位置、カード外側へのはみ出し量、リボンの回転角度を設定しています。装飾ごとにCSSクラスを分けているため、NEWバッジの位置を変更しても、丸型バッジや斜めリボンの設定には影響しません。

設置方法・使い方
「サンプル一式をダウンロード」をクリックしてZIPファイルを保存し、展開してください。作成されたsampleフォルダには、index.htmlとstyle.cssが入っています。

2つのファイルを同じ階層に配置した状態でindex.htmlをブラウザで開くと、3種類の装飾付きカードが表示されます。位置や角度を変更したい場合はstyle.cssを編集して保存し、ブラウザを再読み込みすると変更結果を確認できます。

実際のWebページで使用する場合は、必要なカードのHTMLを配置し、対応するCSSを読み込んでください。装飾の配置基準となる.card-decoration_cardのposition: relative;も必要です。

① 位置:NEWバッジを好きな場所に配置する
NEWバッジは、カード側のposition: relative;と、装飾側のposition: absolute;を組み合わせて配置しています。これにより、ページ全体ではなくカードの位置を基準にして、装飾を移動できます。

style.cssの.card-decoration_positionでは、次の2つの設定によってNEWバッジをカードの左上に配置しています。

  top: 10px; /* 上からの距離。値を大きくすると下へ移動 */
  left: 10px; /* 左からの距離。値を大きくすると右へ移動 */

top: 10px;はカードの上端から10px、left: 10px;は左端から10pxの位置を指定しています。例えば、topを20pxに変更するとバッジが下へ移動し、leftを20pxに変更すると右へ移動します。

右上に配置したい場合は、leftを削除してrightに変更します。右下ならbottomとright、左下ならbottomとleftを使用します。位置を変更するときは、不要になった方向の指定を残さないようにしてください。

また、カードの上辺中央に配置する場合は、left: 50%;とtransform: translateX(-50%);を組み合わせます。left: 50%;だけではバッジの左端が中央に来るため、translateX(-50%)でバッジ自身の横幅の半分だけ左へ戻します。

② はみ出し:丸型バッジをカードの外側へ出す
丸型の「人気」バッジは、位置を指定する数値にマイナス値を使用しています。style.cssの.card-decoration_overflowでは、次の設定でカードの右上からバッジをはみ出させています。

  top: -22px; /* 上側へのはみ出し量。マイナス値を大きくすると上へ移動 */
  right: -20px; /* 右側へのはみ出し量。マイナス値を大きくすると右へ移動 */

top: -22px;はバッジの上端をカードの上端より22px上へ移動させ、right: -20px;はバッジの右端をカードの右端より20px外側へ移動させます。

例えば、topを-30pxに変更すると、バッジはさらに上へ移動します。反対に-10pxへ変更すると、カードの内側に近づきます。rightも同じ考え方で調整できます。

バッジをカードの外側に表示するには、カード側で装飾を切り取らないことが重要です。今回の丸型バッジを配置したカードにはoverflow: hidden;を指定していないため、外側にはみ出した部分も表示されます。

はみ出した部分を隠したい場合は、.card-decoration_cardにoverflow: hidden;を追加します。ただし、そのカードから外側にはみ出す装飾はまとめて切り取られるため、ほかの装飾を組み合わせる場合は注意してください。

③ 回転:斜めリボンの角度と位置を変更する
「おすすめ」のリボンは、横長の装飾をtransform: rotate(45deg);で時計回りに45度回転させています。style.cssの.card-decoration_rotateでは、次の設定で右上の位置と角度を決めています。

  top: 20px; /* 上からの距離。値を大きくすると下へ移動 */
  right: -37px; /* 右端からの距離。マイナス値を大きくすると右へ移動 */
  width: 145px; /* リボンの横幅。値を大きくすると横に広がる */
  transform: rotate(45deg); /* 回転角度。正の値で時計回り、負の値で反時計回り */

rotate(45deg)の45は回転角度です。rotate(30deg)に変更すると傾きが緩やかになり、rotate(60deg)に変更するとさらに大きく傾きます。rotate(0deg)にすると水平に戻り、マイナス値を指定すると反時計回りに回転します。

回転角度を変更するとリボンの見た目の位置も変わるため、topとrightを合わせて調整してください。また、width: 145px;を変更するとリボンの長さが変わります。長さを変えた場合も、カードの角に収まるように位置を調整すると自然な仕上がりになります。

斜めリボンのカードには、.card-decoration_rotate-cardというクラスを追加しています。このクラスに指定したoverflow: hidden;によって、カードの外側にはみ出したリボンの両端を切り取り、角に沿った形で表示しています。

カスタマイズできる内容
index.htmlでは、バッジやリボンに表示する文字を変更できます。「NEW」を「新着」、「人気」を「注目」、「おすすめ」を「限定」などに書き換えるだけで、同じ配置方法を別の装飾として利用できます。文字数が増えた場合は、装飾の横幅や余白も調整してください。

style.cssでは、.card-decoration_position、.card-decoration_overflow、.card-decoration_rotateの各クラスで背景色・文字色・文字サイズなどを変更できます。丸型バッジはwidth: 65px;とheight: 65px;を同じ値にしているため、両方を同じ数値に変更すると円形を保ったまま大きさを調整できます。

カード本体の大きさを変更したい場合は、.card-decoration_cardのmin-height: 170px;で高さを、.card-decoration_wrapのmax-width: 1100px;で全体の最大横幅を調整できます。ただし、今回のサンプルでは装飾の配置が中心となるため、まずはバッジの位置やリボンの角度を変更して確認するのがおすすめです。

数値調整
3種類の装飾で特に重要なのは、位置を決めるtop・left・rightと、回転角度を決めるrotate()です。位置の数値はpx単位で調整し、回転角度はdeg単位で指定します。

NEWバッジはtop: 10px;とleft: 10px;、丸型バッジはtop: -22px;とright: -20px;、斜めリボンはtop: 20px;とright: -37px;が初期値です。装飾の形や文字数を変更したときは、これらの値を少しずつ調整すると位置を合わせやすくなります。

レスポンシブ対応
style.cssでは、通常時はgrid-template-columns: repeat(3, minmax(0, 1fr));によって3種類のカードを横並びにしています。画面幅が640px以下になると、メディアクエリによってgrid-template-columns: 1fr;へ切り替わり、カードを縦並びにします。

スマートフォン表示では、カード間の余白を45pxに広げています。これは、カードの外側にはみ出す丸型バッジが、隣のカードと重なりにくくするためです。装飾の位置や大きさを大幅に変更した場合は、スマートフォン表示でも重なりがないか確認してください。


こちらもおすすめ


コメント