新手指南:CSS transition 屬性簡介與應用

更新日期: 2024 年 9 月 14 日

在現代網頁設計中,動畫效果可以提升用戶的互動體驗。

CSS transition 屬性允許你在兩個狀態之間創造平滑的過渡效果。它可以應用在元素的樣式變化上,如顏色、大小、位置等,從而讓頁面看起來更自然。

什麼是 transition?

transition 是一個 CSS 屬性,用來控制當元素狀態改變時,樣式變化的過渡效果。

比如:當滑鼠懸停在按鈕上,按鈕的背景顏色或大小會隨著一段時間內平滑變化,而不是瞬間完成。

基本語法

transition: property duration timing-function delay;
  • property:指定要過渡的 CSS 屬性(例如 background-color 或 width),可以使用 all 來過渡所有可變屬性。
  • duration:過渡持續的時間(例如 0.5s 表示 0.5 秒)。
  • timing-function:指定過渡的加速度方式(例如 ease、linear、ease-in、ease-out)。
  • delay:過渡開始前的延遲時間(例如 0.2s)。

在 CSS transition 中,四個屬性不是必填的

你可以只填一個或兩個屬性。最常見的組合是 property 和 duration,它們是最基本的:

transition: background-color 0.5s;

這裡僅指定了 background-color 和持續時間 0.5s。如果不填其他屬性,瀏覽器會使用默認值:

  • timing-function 默認值是 ease(平滑的加速和減速)。
  • delay 默認值是 0s(即沒有延遲)。

常見的 transition 應用

改變顏色

div {
    background-color: red;
    width: 200px;
    height: 200px;
    transition: background-color 0.5s ease;
}

div:hover {
    background-color: blue;
}

當滑鼠懸停時,div 的背景顏色會平滑地從紅色變為藍色。

改變尺寸

.box {
  width: 100px;
  height: 100px;
  background-color: lightblue;
  transition: width 0.4s ease-in-out;
}

.box:hover {
  width: 200px;
}

這個例子展示了當滑鼠懸停時,box 的寬度將在 0.4 秒內從 100px 平滑地變為 200px。

複合過渡

你可以同時過渡多個屬性:

button {
    background-color: lightgray;
    transform: scale(1);
    transition: background-color 0.3s ease, transform 0.3s ease;
    padding: 10px 20px;
    border: none;
    font-size: 16px;
    cursor: pointer;
}

button:hover {
    background-color: green;
    transform: scale(1.2); /* 放大按鈕 */
    color: white;
}

這裡按鈕會在背景色變化的同時放大,讓動畫效果更加豐富。

結語

CSS transition 是創建流暢動畫效果的簡單工具,適合在網頁中應用各種樣式過渡效果,提升頁面動態性和用戶體驗。

無論是改變顏色、大小,還是旋轉元素,transition 都能讓網頁更加自然生動。希望這篇文章能幫助你理解並應用 transition,讓你的設計更上一層樓!

Similar Posts