CSS
 Computer >> コンピューター >  >> プログラミング >> CSS

CSSでoutline-offsetプロパティをアニメーションさせる方法

CSSのoutline-offsetプロパティは、要素の輪郭線(アウトライン)と要素の端との間隔を調整するためのプロパティです。正の値を指定するとアウトラインが外側へ移動し、負の値を指定すると内側へ移動します。このプロパティは数値ベースのため、@keyframesと組み合わせることで、アウトラインが浮き出たり引っ込んだりする滑らかなアニメーションを簡単に実装できます。

アニメーションの実装例

以下のコードでは、3秒周期でアウトラインが要素から離れ、また元に戻る動作を無限に繰り返します。実際にブラウザで実行して挙動を確認してみてください。

<!DOCTYPE html>
<html>
   <head>
      <style>
         div {
            width: 350px;
            height: 150px;
            outline: 2px solid blue;
            animation: myanim 3s infinite;
         }
         @keyframes myanim {
            50% {
              outline-offset: 50px;
            }
         }
      </style>
   </head>
   <body>
      <h1>CSS outline-offset property</h1>
      <div> </div>
   </body>
</html>

コードのポイント解説

  • outline: 2px solid blue; … 太さ2px・青色の実線アウトラインをdiv要素に適用しています。
  • animation: myanim 3s infinite; … 後述のキーフレーム「myanim」を3秒かけて無限に繰り返すよう設定しています。
  • @keyframes myanim { 50% { outline-offset: 50px; } } … アニメーションの中間地点(50%)でoutline-offsetを50pxにすることで、アウトラインが要素の外側へ最大50pxまで広がります。

このコードをブラウザで開くと、青いアウトラインが要素からふわりと浮き出し、再び元の位置へ戻る動きが繰り返されるのが確認できます。ボタンやカードなどにフォーカス時の演出として応用すれば、視覚的に魅力的なUIを作ることができます。

  1. CSSでz-indexプロパティをアニメーションさせる方法

    CSSでは、z-indexプロパティもアニメーションの対象にできます。@keyframesルールの中でz-indexの値を段階的に変化させることで、要素の重なり順序を時間の経過とともに動的に変更できます。以下のコードを実行して、その動作を確認してみましょう。サンプルコード<!DOCTYPE html> <html>    <head>       <style>         

  2. CSSのwidthプロパティをアニメーション化する方法

    CSSで要素の width(幅)プロパティをアニメーションさせるには、@keyframes ルールと animation プロパティを組み合わせて使用します。幅の変化を滑らかに表現することで、開閉パネルやホバーエフェクトなど、さまざまなインタラクティブな演出が可能になります。実装のポイント@keyframes 内で、アニメーションの途中経過(例:30%)における幅の値を指定します。animation プロパティで、キーフレーム名・再生時間などを設定します。幅は数値(px など)で指定するため、ブラウザは値の補間を行い滑らかなアニメーションを実現します。サンプルコード以下のコードでは、div要素