cssのkeyfremesを利用して、文字が交互に変わっていくものを作りました。
html
1<div class="change"> 2 <span class="word1">空気</span><span class="word2">水</span>を変える 3</div>
scss
1 2 @keyframes fade_out { 3 0% { opacity: 1; } 4 50% { opacity: 0; } 5 100% { opacity : 1;} 6 } 7 8 @keyframes fade_in { 9 0% { opacity: 0; } 10 50% { opacity: 1; } 11 100% { opacity : 0;} 12 } 13 14.change { 15 font-size: 25px; 16 17 .word1 { 18 display: inline-block; 19 position: relative ; 20 font-size: 30px; 21 animation: fade_out 10s ease-in-out infinite normal forwards ; 22 } 23 24 .word2 { 25 display: inline-block; 26 position: absolute; 27 font-size: 40px; 28 top: 50%; 29 left : 20% ; 30 text-align: center; 31 transform: translateY(-50%); 32 -webkit-transform: translateY(-50%); 33 -ms-transform: translateY(-50%); 34 animation: fade_in 10s ease-in-out infinite normal forwards ; 35 } 36 }
問題点として、word1とword2が同じ位置にならないことです。
現在word2の位置を 「left : 20%」という数値でword1の中央に重ねようとしてますが、出来ていないです。
pxで指定しても良いですが、フォントサイズも変えるかもしれないし、%だと画面のサイズが変わればどうしてもズレてしまいます。
どうやったらword1とword2が同じ位置で重ねられるでしょうか?
また、この書き方以外にも別のやり方があるとか、javascriptで実現できるとかあれば教えていただきたいです。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/06/11 00:53