5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者でもわかる】cssだけで、徐々に透明にしていく方法

Last updated at Posted at 2021-02-20

どうも7noteです。徐々に透過して透明になっていく要素の作り方について

グラデーションを使って、画像やテキストなどの要素を徐々に透明になっていくように見せる方法。

sample.jpg

↓↓↓↓↓↓

mihon.png
こんな感じに徐々に透明にできます。

徐々に透明になる要素の書き方

index.html
<div class="transparent">
  <img src="sample.jpg">
</div>
style.css
.transparent {
  position: relative;  /* 基準位置とする */
}
.transparent::before {
  content: "";         /* 疑似要素に必須 */
  width: 100%;         /* 幅いっぱい */
  height: 100%;        /* 高さいっぱい */
  display: block;      /* 高さを指定するためにブロック要素にする */
  background: linear-gradient(rgba(255,255,255,0) 0, #fff 80%); /* 徐々に透明にする */
  position: absolute;  /*  */
  top: 0;
  left: 0;
}

解説

徐々に透明にするためには、画像要素を本当に透明にするのではなく、背景色と同じグラデーションを上にかぶせることで透明になっているように見せかけています。

疑似要素でposition指定をしたbeforeに対して、白→透明のグラデーションをかけます。
そしてブロック要素にして画像の高さと幅とおなじになるようそれぞれ100%を指定して位置を指定すれば、徐々に透明になっている要素の完成です。

backgroundのカラー(#fff)を100%にしていないのは、100%にしてしまうと画像の縁がはっきり見えてしまうからです。

まとめ

CSSでできることは限られているので、どうやって錯覚にかけてそれっぽく見せるかが重要だと思っています。
もちろんぐちゃぐちゃなソースはアレかもしれないですが、最終的に動いて思った通りに見えているのであれば、手段はなんでもいいのかなと思います。

おそまつ!

~ Qiitaで毎日投稿中!! ~
【初心者向け】WEB制作のちょいテク詰め合わせ

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?