CSS - オーバーレイ:動的ウェブエフェクト作成の初級者ガイド

こんにちは、未来のウェブデザインスーパースターたち!今日は、CSSオーバーレイの魅力あふれる世界に飛び込みましょう。新しいことについて不安に思わないでください - 私も初めてオーバーレイについて学んだ時を覚えていますし、あなたも楽しくて報酬のあるものだと感じることでしょう。それでは、一緒にこの旅に出発しましょう!

CSS - Overlay

CSSオーバーレイとは?

コードに飛び込む前に、まずオーバーレイとは何かを理解しましょう。美しい絵画を見ていると、突然誰かが透明なシートをのせてテキストを書いたとします。ウェブサイト上でのオーバーレイも基本的に同じことをしています - 既存のコンテンツの上に追加の層を追加し、追加情報を提供するか視覚効果を作成するために使います。

CSSオーバーレイ - 基本例

まずは簡単なオーバーレイの例から始めましょう。以下はHTMLとCSSのコードです:

<div class="container">
<img src="cute-puppy.jpg" alt="可愛い子犬">
<div class="overlay">
<div class="text">こんにちは、私は子犬です!</div>
</div>
</div>
.container {
position: relative;
width: 100%;
}

.image {
display: block;
width: 100%;
height: auto;
}

.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
opacity: 0;
transition: .5s ease;
background-color: rgba(0,0,0,0.5);
}

.container:hover .overlay {
opacity: 1;
}

.text {
color: white;
font-size: 20px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
text-align: center;
}

これを分解すると:

  1. コンテナには画像とオーバーレイdivがあります。
  2. オーバーレイはコンテナ内で絶対位置されています。
  3. 初めはオーバーレイは透明度0(見えない)です。
  4. コンテナにホバーすると、オーバーレイの透明度が1(完全に見える)に変わります。
  5. テキストはオーバーレイ内で中央に配置されています。

CSSオーバーレイ - 上下滑动

さらに楽しくなりますね!スライディングエフェクトを追加してみましょう。以下のようにCSSを修正して、オーバーレイが上から下にスライドするようにします:

.overlay {
position: absolute;
bottom: 100%;
left: 0;
right: 0;
background-color: rgba(0,0,0,0.5);
overflow: hidden;
width: 100%;
height: 0;
transition: .5s ease;
}

.container:hover .overlay {
bottom: 0;
height: 100%;
}

この例では、オーバーレイは画像の上に始まり(bottom: 100%)、ホバーすると下にスライドして画像を覆います。

CSSオーバーレイ - 下上滑动

オーバーレイを上にスライドさせたい場合はどうするでしょうか?簡単です!

.overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(0,0,0,0.5);
overflow: hidden;
width: 100%;
height: 0;
transition: .5s ease;
}

.container:hover .overlay {
height: 100%;
}

今度はオーバーレイが下に始まり、ホバーすると上にスライドします。

CSSオーバーレイ - 左右滑动

次は、オーバーレイを左から右にスライドさせることにします:

.overlay {
position: absolute;
bottom: 0;
left: 0;
right: 100%;
background-color: rgba(0,0,0,0.5);
overflow: hidden;
width: 0;
height: 100%;
transition: .5s ease;
}

.container:hover .overlay {
width: 100%;
right: 0;
}

ここでは、オーバーレイが左側に始まり、ホバーすると右にスライドします。

CSSオーバーレイ - 右左滑动

もちろん、右から左にスライドさせることもできます:

.overlay {
position: absolute;
bottom: 0;
left: 100%;
right: 0;
background-color: rgba(0,0,0,0.5);
overflow: hidden;
width: 0;
height: 100%;
transition: .5s ease;
}

.container:hover .overlay {
width: 100%;
left: 0;
}

今度はオーバーレイが右側に始まり、ホバーすると左にスライドします。

CSSオーバーレイ - フェードエフェクト

最初の例は実はフェードエフェクトでした!さらにスムーズにするために:

.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
opacity: 0;
transition: .5s ease;
background-color: rgba(0,0,0,0.5);
}

.container:hover .overlay {
opacity: 1;
}

これで、画像にホバーするとスムーズにフェードインします。

CSSオーバーレイ - 画像タイトルオーバーレイ

ホバーすると画像タイトルを表示するオーバーレイを作成しましょう:

<div class="container">
<img src="cute-puppy.jpg" alt="可愛い子犬" class="image">
<div class="overlay">
<div class="title">可愛い子犬</div>
</div>
</div>
.container {
position: relative;
width: 100%;
}

.image {
display: block;
width: 100%;
height: auto;
}

.overlay {
position: absolute;
bottom: 0;
background: rgb(0, 0, 0);
background: rgba(0, 0, 0, 0.5);
color: #f1f1f1;
width: 100%;
transition: .5s ease;
opacity:0;
color: white;
font-size: 20px;
padding: 20px;
text-align: center;
}

.container:hover .overlay {
opacity: 1;
}

これで、画像の下部からタイトルオーバーレイが表示されます。

CSSオーバーレイ - 画像アイコンオーバーレイ

次に、画像にアイコンオーバーレイを追加してみましょう:

<div class="container">
<img src="cute-puppy.jpg" alt="可愛い子犬" class="image">
<div class="overlay">
<a href="#" class="icon" title="ユーザープロフィール">
<i class="fa fa-user"></i>
</a>
</div>
</div>
.container {
position: relative;
width: 50%;
}

.image {
display: block;
width: 100%;
height: auto;
}

.overlay {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
height: 100%;
width: 100%;
opacity: 0;
transition: .5s ease;
background-color: rgba(0,0,0,0.5);
}

.container:hover .overlay {
opacity: 1;
}

.icon {
color: white;
font-size: 100px;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
text-align: center;
}

.fa-user:hover {
color: #eee;
}

これで、画像の中央にアイコンオーバーレイが表示されます。

CSSオーバーレイ - 関連プロパティ

以下は、CSSオーバーレイでよく使われるプロパティの表です:

プロパティ 説明
position 配置方法を設定
top, bottom, left, right オーバーレイの位置を指定
width, height オーバーレイの寸法を設定
opacity オーバーレイの透明度を制御
transition オーバーレイの表示/非表示の方法を定義
background-color オーバーレイの色を設定
z-index 要素のスタック順序を制御

そして、ここまでがCSSオーバーレイの基本です!練習すれば完璧になりますので、これらの例を試してみてください。誰 knows? 次のウェブデザインのトレンドを作るかもしれません!ハッピーコーディング、そしてあなたのオーバーレイは常にスムーズで、トランジションは常に綺麗にしてください!

Credits: Image by storyset