::view-transition-old()
Baseline
2025
Newly available
Since October 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
::view-transition-old() は CSS の擬似要素で、ビュー遷移の「古い」ビュー状態、すなわち遷移前の古いビューの静的なスナップショットを表します。
ビュー遷移の間、 ::view-transition-old() はビュー遷移のプロセスで説明されているように、「古い」ビュー状態があることを表すために、関連する擬似要素ツリーに含まれます。これは ::view-transition-image-pair() の子要素でしかなく、子要素を持つことはありません。
これは置換要素であり、 object-fit や object-position などのプロパティで操作できます。コンテンツのサイズに等しい自然な寸法を持ちます。
UA スタイルシートでは、以下のデフォルトのスタイルを与えられています。
:root::view-transition-old(*),
:root::view-transition-new(*) {
position: absolute;
inset-block-start: 0;
inline-size: 100%;
block-size: auto;
animation-duration: inherit;
animation-fill-mode: inherit;
animation-delay: inherit;
}
/* 2 つの画像があった場合の合成を行うためのキーフレーム */
@keyframes -ua-mix-blend-mode-plus-lighter {
from {
mix-blend-mode: plus-lighter;
}
to {
mix-blend-mode: plus-lighter;
}
}
@keyframes -ua-view-transition-fade-out {
to {
opacity: 0;
}
}
メモ:
::view-transition-old() のアニメーションを設定するために、追加のビュー遷移スタイルシートスタイルも設定されます。これらはビュー遷移中に動的に生成されます。詳細については、仕様書の遷移擬似要素の設定(英語)および擬似要素スタイルの更新(英語)の節を参照してください。
構文
::view-transition-old([ <pt-name-selector> <pt-class-selector>? ] | <pt-class-selector>) {
/* ... */
}
引数
*-
全称セレクター (
*) です。ページ上のすべてのビュー遷移グループを選択します。 root-
擬似要素が、ページ全体のビュー遷移を含むためにユーザエージェントによって作成されたデフォルトの
rootビュー遷移グループに一致するようにします。すなわち、view-transition-nameプロパティによって自分自身を固有のビュー遷移グループに割り当てていない要素を意味します)。 <pt-name-selector>-
一連の
<custom-ident>で、view-transition-nameプロパティの値です。 <pt-class-selector>-
一連の
<custom-ident>で、view-transition-classプロパティの値の前にピリオド (.) を置いたものです。
例
figcaption {
view-transition-name: figure-caption;
}
@keyframes grow-x {
from {
transform: scaleX(0);
}
to {
transform: scaleX(1);
}
}
@keyframes shrink-x {
from {
transform: scaleX(1);
}
to {
transform: scaleX(0);
}
}
::view-transition-old(figure-caption),
::view-transition-new(figure-caption) {
height: auto;
right: 0;
left: auto;
transform-origin: right center;
}
::view-transition-old(figure-caption) {
animation: 0.25s linear both shrink-x;
}
::view-transition-new(figure-caption) {
animation: 0.25s 0.25s linear both grow-x;
}
仕様書
| Specification |
|---|
| CSS View Transitions Module Level 1> # ::view-transition-old> |