::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() là một phần tử giả CSS đại diện cho trạng thái khung nhìn "cũ" của quá trình chuyển tiếp khung nhìn — một ảnh chụp tĩnh của khung nhìn cũ, trước khi chuyển tiếp.

Trong quá trình chuyển tiếp khung nhìn, ::view-transition-old() được đưa vào cây phần tử giả liên kết như mô tả trong Cây phần tử giả chuyển tiếp khung nhìn, với điều kiện có trạng thái "cũ" để đại diện. Nó luôn là phần tử con của ::view-transition-image-pair(), và không bao giờ có phần tử con.

Đây là một phần tử được thay thế và do đó có thể được thao tác với các thuộc tính như object-fitobject-position. Nó có kích thước tự nhiên bằng với kích thước nội dung.

Các kiểu mặc định sau đây được đưa vào bảng kiểu của tác nhân người dùng (UA stylesheet):

css
: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;
}

/* Keyframes for blending when there are 2 images */
@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;
  }
}

Note: Các kiểu chuyển tiếp khung nhìn bổ sung cũng được thiết lập để tạo hoạt ảnh ::view-transition-old(). Chúng được tạo động trong quá trình chuyển tiếp; xem phần setup transition pseudo-elementsupdate pseudo-element styles trong đặc tả để biết thêm chi tiết.

Cú pháp

css
::view-transition-old([ <pt-name-selector> <pt-class-selector>? ] | <pt-class-selector>) {
  /* ... */
}

Tham số

*

Bộ chọn toàn thể (*) chọn tất cả các nhóm chuyển tiếp khung nhìn trên trang.

root

Khiến phần tử giả khớp với nhóm ảnh chụp chuyển tiếp khung nhìn root mặc định được tác nhân người dùng tạo ra để chứa quá trình chuyển tiếp khung nhìn cho toàn bộ trang. Nhóm này bao gồm bất kỳ phần tử nào không được gán nhóm ảnh chụp chuyển tiếp khung nhìn riêng thông qua thuộc tính view-transition-name.

<pt-name-selector>

<custom-ident> được đặt làm giá trị của thuộc tính view-transition-name.

<pt-class-selector>

<custom-ident> được đặt làm giá trị của thuộc tính view-transition-class đứng trước bởi một dấu chấm (.).

Ví dụ

css
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;
}

Đặc tả

Specification
CSS View Transitions Module Level 1
# ::view-transition-old

Tương thích trình duyệt

Xem thêm