首頁 > web前端 > css教學 > 為什麼 CSS 轉場無法與 Visibility 屬性配合使用?

為什麼 CSS 轉場無法與 Visibility 屬性配合使用?

DDD
發布: 2024-11-05 05:23:02
原創
758 人瀏覽過

Why Do CSS Transitions Fail To Work With the Visibility Property?

CSS 轉換與可見性:一種欺騙性的錯覺

在CSS 中,轉換允許在屬性狀態之間實現平滑的動畫。然而,在嘗試轉換可見性時出現了一個令人費解的問題,讓用戶感到困惑並想知道這是否是一個錯誤。

可見性轉換的案例

考慮以下程式碼:

<code class="css">#inner {
    visibility: hidden;
    transition: visibility 1000ms;
}

#outer:hover #inner {
    visibility: visible;
}</code>
登入後複製

此程式碼旨在將滑鼠懸停在ID 為「outer」的元素上時顯示ID 為「inner」的元素。然而,令我們沮喪的是,過渡未能如預期進行。可見性不是平滑過渡,而是在延遲後突然切換,這與指定的過渡持續時間相符。

罪魁禍首

根本原因在於可見性的本質財產。與表示連續值 (0-1) 的不透明度等屬性不同,可見度以二元狀態存在(可見或隱藏)。這種根本差異阻礙了轉換,因為沒有中間狀態可以插值。

可轉換屬性

轉換依賴於計算兩個數值之間的關鍵影格。在不透明度的情況下,過渡在 0 和 1 之間平滑淡出。但是,在可見性下,過渡缺乏插值所需的數值範圍。

結論

而這種行為最初類似於 bug,但它是 CSS 轉換的固有限制。只有具有可計算值的屬性才能平滑地進行動畫處理。對於像可見性這樣的二元屬性,突然的狀態變化是不可避免的。

以上是為什麼 CSS 轉場無法與 Visibility 屬性配合使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板