浪人のサムライ

TOP

プラグインやwebサービスなどでリンクカードを作ることは可能ですが、HTMLとCSSで充分、対応できます。まずは完成形を。

HTML


<div class="card">
<div class="link-card">
<div class="text-box">
<h4>タイトル</h4>
<p>テキスト</p>
<a href="#"></a>
</div>
<figure><img src="images/cloud.JPG" alt="画像" /></figure>
</div>
</div>

全体をcardで囲い、その中に、link-cardがあり、その中に、テキストと写真があります。

SCSS

.card {
  container-type: inline-size;
  width: 100%;


.link-card {
  position: relative;
  border: 1px solid #0067bb;
  padding: 10px;
  display: flex;
  gap: 10px;
  justify-content: space-between;

  figure img {
    width: 100px;
  }

  h4 {
    margin: 0;
    padding: 0;
    font-size: 1.5rem;
  }
  p {
    margin: 0;
    padding: 0;
  }
  a {
    position: absolute;
    inset: 0;
    padding: 10px;
    &:hover{
    border: 10px solid #ff0000;
    }
  }
}
}

@container (min-width:400px) {
  .link-card {
    width: 80%;
    figure img {
      width: 150px;
    }
  }
}

.cardに、container-type: inline-sizeを書き、コンテナクエリを使えるようにします。link-cardで、文章(text-box)と画像を囲みます。

そのあと、link-cardに対して、display:flexで、文章と画像を横並びにします。また、link-cardposition: relativeを書きます。

これは、リンクをリンクカード全体に効かす為に書きます。

それを実現するために、aに対して、position: absoluteinset: 0を書きます。これでリンクカード全体にリンクが張られます。

そのあと、@containerでlink-cardの幅や画像サイズを書きます。ここはお好みで問題ありません。

そもそも、画面サイズが変わっても見た目を同じにするのであれば、書く必要はありません。ここでは、400pxを超えると、リンクカードのサイズ及び画像サイズの調整をしています。

CSS

.card {
  container-type: inline-size;
  width: 100%;
}
.card .link-card {
  position: relative;
  border: 1px solid #0067bb;
  padding: 10px;
  display: flex;
  gap: 10px;
  justify-content: space-between;
}
.card .link-card figure img {
  width: 100px;
}
.card .link-card h4 {
  margin: 0;
  padding: 0;
  font-size: 1.5rem;
}
.card .link-card p {
  margin: 0;
  padding: 0;
}
.card .link-card a {
  position: absolute;
  inset: 0;
  padding: 10px;
}
.card .link-card a:hover {
  border: 10px solid #ff0000;
}

@container (min-width:400px) {
  .link-card {
    width: 80%;
  }
  .link-card figure img {
    width: 150px;
  }
}

SCSSとCSSの書き方は違いますが、内容は同じです。個人的に、SCSSの方が見やすいですね。お好みで構いません。

HTMLはともかく

HTMLは簡単ですが、SCSS(CSS)は長い。ある程度、CSSの知識がないと厳しいか。素直にオンラインサービスを使えばいいか。

ただ、自前で作るとデザインを自由にできます。もし、それを望んでいるのであれば、是非、お試しあれ。

リンクカード全体にリンクを張った方が

リンクカード全体にリンクを張った方が、押しやすい。リンクカードのどこかにマウスの矢印が来たら反応する。ストレスがなくなります。リンクカードはクリックされてナンボ。できるだけ、簡単にすることが重要。当サイトでも自作のリンクカードを使っています。

問題点

単にデザインしているだけなので、テキストの入力、リンクのURLは手動で書く必要があります。これが嫌であれば、例えば、ブックマークレットなどを使う必要があります。

当サイトでは、地道にURLをリンクカードのaタグに貼り付けています。出来るだけ楽にしています。

さいごに

リンクカードは細かい対応が必要です。小さいほど、対応が難しい気がします。もし、ホームページでリンクカードを作りたいのであれば、是非、参考にして下さい。

対応はバックアップを取ってからにしましょう。失敗しても元に戻れます。

面倒ですが、バックアップ後、対応して下さい。