擬似要素 画像 重ねる

一日一練-CSS-擬似要素を使って画像重ね合わせ効果を作成する

一日一練-CSS-擬似要素を使って画像重ね合わせ効果を作成する

この記事では、CSS擬似要素::before::afterを使って画像を重ねる方法を紹介します。具体的には、画像に虫眼鏡効果を追加する例を紹介します。

1. 擬似要素とは

CSS擬似要素は、実際のDOM要素としては存在しない要素にスタイルを適用するためのものです。 これらは、要素の特定の部分を選択したり、コンテンツを挿入したりするために使用されます。

よく使われる擬似要素には、次のようなものがあります。

擬似要素 説明
::before 要素のコンテンツの前にコンテンツを挿入します。
::after 要素のコンテンツの後にコンテンツを挿入します。
::first-letter 要素の最初の文字を選択します。
::first-line 要素の最初の行を選択します。

擬似要素は、装飾効果を追加したり、特別なレイアウトを作成したりするなど、さまざまな用途に使用されます。

2. 擬似要素を使って画像を重ねる

ここでは、「画像に虫眼鏡アイコンを追加する」を例に、::before擬似要素の使い方を詳しく解説します。

  1. contentプロパティを使用して、擬似要素の内容を空に設定します。
  2. background-imageプロパティを使用して、擬似要素に虫眼鏡アイコンを追加します。
  3. positionプロパティを使用して、擬似要素を画像の右下に絶対配置します。

3. コード例

擬似要素を使って画像重ね合わせ効果を実現するHTMLとCSSの完全なコードを以下に示します。


<html>
<head>
  <style>
    .image-container {
      position: relative;
      width: 300px; /* 画像の幅に合わせて調整 */
      height: 200px; /* 画像の高さに合わせて調整 */
    }

    .image-container img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .image-container::before {
      content: '';
      position: absolute;
      bottom: 10px; /* 位置調整 */
      right: 10px; /* 位置調整 */
      width: 40px; /* 虫眼鏡アイコンの幅に合わせて調整 */
      height: 40px; /* 虫眼鏡アイコンの高さに合わせて調整 */
      background-image: url('magnifying-glass.svg'); /* 虫眼鏡アイコンのパス */
      background-size: contain;
      background-repeat: no-repeat;
    }
  </style>
</head>
<body>

<div class="image-container">
  <img src="image.jpg" alt="サンプル画像"> 
</div>

</body>
</html>

4. まとめ

CSS擬似要素を使って画像重ね合わせ効果を実現することには、次のようなメリットがあります。

  • コードがシンプルで分かりやすい。
  • HTML要素を追加する必要がなく、メンテナンスしやすい。

ぜひ、擬似要素を使って、他のクリエイティブな効果も試してみてください。

Q&A

Q: 擬似要素::beforeと::afterの違いは何ですか?

A: ::beforeは要素のコンテンツの前に、::afterは要素のコンテンツの後にコンテンツを挿入します。どちらも同じプロパティを使用できますが、コンテンツを追加する位置が異なります。

Q: 擬似要素で画像以外のコンテンツを追加できますか?

A: はい、擬似要素にはテキスト、アイコンフォント、シェープなど、任意のコンテンツを追加できます。contentプロパティを使用してコンテンツを指定します。

Q: 擬似要素の位置を細かく調整するにはどうすればよいですか?

A: 擬似要素の位置は、positionプロパティとtop、right、bottom、leftプロパティを使用して調整できます。親要素にposition: relativeを設定し、擬似要素にposition: absoluteを設定することで、親要素からの相対位置で配置できます。

その他の参考記事:CSS 疑似要素