記事内にcssを使って蛍光ペンのアニメーションを表示させる時にbackground-positionの定義で迷った話
蛍光ペンのアニメーションを表示させたい!
いわゆる下のようなやつです。今でこそ、このcssを全記事に適用させたので、すべて蛍光ペンのアニメーションになっていますが、それまでは、蛍光ペンが引かれているのみでした。控えめだけど、もう少し太字を強調したいなあと思っておりました。最近の若者は、流し読みするっていうから、、、
蛍光ペンのアニメーションっていうのはこういうやつです
そこで参考にさせていただいたのが以下のページ。googleで「蛍光ペン アニメーション」とかで検索して出てくる記事のほとんどが参考にしていたページでした。実際、githubにもアップロードしており、コピペでブログをアレンジしているような人とは違って、信憑性がありました。
cssの内容の意味がわからない
しかし、cssの内容がわたしには理解できませんでした。以下が詰まった点です。
- linear-gradientの最初の引数は、leftとto leftで違うのか
- なぜ、background-sizeを2倍にしたあとに、repeat-xなのか
- background-positionが0%→-100%なのか
しかし、詰まった原因の主犯格は最後のbackground-positionでした。これの定義がわからなかったために、上記2つに関してもよくわからなくなり、見返したということになります。
詰まった原因の主犯格「background-positionの定義」
これでした。これが原因でわかりませんでした。わたしの当初のイメージはこうでした。
しかし、実際の定義は以下でした。
ある要素の水平方向(X軸)の background-position を “n%” と指定した場合、その要素の水平方向 n% の座標が「基準点」となり、背景画像は、その画像自体の水平方向 n% の座標が「基準点」と一致するように配置される
https://qiita.com/shouchida/items/19888ee1916321e71cdb
つまり、図にするとこうです。
いやあ、これはわからないわ。
linear-gradientには、leftとto leftがある
background-positionのせいでこれも迷いました。
ん?leftとto leftって同じなのか、いや、違うような。。。いや、でも、左から右のグラデーションで、サイズを2倍にして、ポジションを変えると、、、
って考えたら迷走してました。何度も言いますが、background-positionのせいです。
background-sizeを2倍にしたあとにrepeat-x
これは、cssの性質上、しょうがないことのようですね。blockがあったら、その右端から左方向には背景を作れないので、左端から大きいのを作って、それをリピートしてblockの左側にも作る。そして結局使うのは、左端の左側と、blockの部分ということですね。