【CSS】@starting-styleについて

どうも、くまだです。

CSSの@starting-styleについてのメモ。

@starting-styleはトランジション開始時のスタイル指定

@starting-styleはトランジションされる要素にCSSのプロパティ開始値を指定します。

例えば、以下のようなコードになります。

<button class="button">ボタン</button>
<div class="box"></div>
button {
  background-color: orange;
  padding: 10px;
  margin: 20px;
}


.box {
  inline-size: 100px;
  max-inline-size: 100px;
  block-size: 50px;
  background-color: red;
  display: none;

  margin: 10px;

}

@starting-style {
  .box {
    inline-size: 0;

  }

}
.box.add {
  display: block;
  transition: inline-size 2s;
}
const button = document.querySelector(".button");

button.addEventListener("click", () => {
  const openContent = document.querySelector(".box");
  openContent.classList.toggle("add");
});

See the Pen @starting-style by kuma0605 (@kuma0605) on CodePen.

ボタンをクリックすると、要素の横幅がするっと表示されます。

以下の部分で、トランジション開始時の初期のスタイルを指定しています。以下の場合だと要素の横幅は0pxを初期値に設定しています。

@starting-style {
  .box {
    inline-size: 0;
  }
}

display:none;が指定されている要素にはトランジションが効きませんでしたが、@starting-styleを使えばトランジションを設定することができます。

ここまで読んでくださりありがとうございました。

この記事を書いた人