CSS筆記 ▎還分不清楚 transform 和 transition 嗎?

閱讀時間約 4 分鐘
前幾天在學左側選單收合的技巧,發現自己還是常常把transform、transition,甚至是translate搞混!為了分清楚中文意思全部有「轉變」的三個關係字,並且理解到底什麼時候要用哪個屬性才正確,這篇筆記誕生了!

Transform

transform (v.) 轉換
to change completely the appearance or character of something or someone
翻譯:一個人或一件事物的特性或外觀完全改變
從單字分析上著手比較好記,字根trans加上form(形式),即為形式上完全改變
transform是CSS的屬性之一,可以用它來控制HTML元素,做出旋轉、縮放、移動等效果
CSS寫法➜  transform: 要帶入的效果(給效果設定的數值);
.box1{
    transform: scale(2,2);
    }
.box2{
  transform:translateX(150px);
  }
範例:
  • 滑鼠滑過綠色box,會透過 scale 放大2倍
  • 滑鼠滑過黃色box,會透過 translate 右移150px

Translate

剛剛的範例看到translate出現了!因此translate並不是CSS屬性,而是transform裡面的「屬性值」,具有位移效果,從單字分析上來看:
translate (v.) 轉變
to change something into a new form
翻譯:將某物變成新的形式,就位移的效果而言,跟字詞解釋也是符合的!

Transition

transition (n.) 過渡、轉變
a change from one form or type to another, or the process by which this happens
翻譯:從一種形式或類型轉換成另一種,或是這個轉變發生的過程
transition可以用來設定基礎的動畫效果,直接指定要產生變化的CSS屬性
CSS寫法➜
transition: 指定CSS屬性 要執行的時間 延遲執行的時間 動態執行參數;
.aside{  
  transition: margin-left 1s .3s cubic-bezier(0.3, 0.9, 0.1, -0.2);
  }
上面是合併寫法,也可以把每個值分開寫成
.aside{
  transition-property: margin-left;
  transition-duration: 1s;
  transition-delay: 0.3s;
  transition-timing-function: ease;
  }
  • 動態執行參數 transition-timing-function 有以下幾個:
    linear: 平均速度
    ease: 快入緩出 (預設)
    ease-in: 緩入
    ease-out: 緩出
    ease-in-out: 緩入緩出
    cubic-bezier: 貝茲曲線 自定義速度模式
來看看範例吧:
Amber速記法:轉折詞 = transition words ➜ 因此transition就是迂迴轉變的過程

左側選單實際運用

研究完三個搞混的單詞後,回到左側選單的實際運用上,整理了兩種寫法:
寫法一:讓該物件透過transform位移,搭配transition的漸變轉換
.aside{  
  transform:translateX(250px);
  transition:0.3s ease;
  }
寫法二:利用CSS本身的屬性去移動距離,搭配transition調整屬性轉變過程,之後用javaScript或jQuery去動態增加這個class名稱給該物件
.active{  
  margin-left: 250px;
  transition: margin-left 3s;
  }
總結
  • transform :是CSS屬性,可以改變HTML元素特性
  • translate:transform屬性值之一,能夠讓元素位移
  • transition:是CSS屬性,改變CSS屬性的過程
今天的「變變變」筆記到此結束,我是Amber,前端學習中,歡迎交流討論🤞🏻
文中英文解釋擷取自劍橋辭典,技術概念及解釋為個人整理筆記。
為什麼會看到廣告
21會員
19內容數
留言0
查看全部
發表第一個留言支持創作者!
你可能也想看
CSS在現代網站設計中扮演的關鍵角色在當今日新月異的數位時代,網站已經不僅僅是一個給人們提供資訊的平臺,更是一個互動性、視覺吸引力和功能性兼具的數位體驗。而CSS(Cascading Style Sheets)正是網站設計中的一個重要元素,扮演著關鍵的角色。
avatar
SEO大師筆記
2024-05-30
CSS - margin、paddingCSS Box Model 是在 CSS 裡面,html 的每個元素都可被視作為一個盒子,然後可以針對這個盒子去做調整,看以下圖片: 簡單來說margin就是一個是外邊距,與外層元素的間距 Margin 用於控制元素與其周邊元素的間隔,可以設定為正數(增加與其他元素的距離)、負數(減少與其他
avatar
郭欣玫
2024-05-11
CSS Grid 學習筆記 (二)CSS Grid 基礎學習筆記第二彈
Thumbnail
avatar
蕭宇廷
2023-12-07
CSS Grid 學習筆記 (一)紀錄 CSS Grid 的基礎用法。
Thumbnail
avatar
蕭宇廷
2023-12-06
CSS 筆記 | Sass/SCSS這篇記錄 Sass/SCSS 編譯與語法
Thumbnail
avatar
Jeremy Ho
2023-08-15
CSS - @import的使用@import可以將一個style sheet 導入另一個style sheet example: 匯入式: 連結式: 顧名思義,就是創造一個css的stylesheet,然後進行連結(link) 再來我們開啟***.css的頁面,再進行匯入 讀取順位請將@import放在css頁面的最前列。
avatar
Yi-Ming Ou
2022-03-14
【CSS必學屬性】box-sizing都市傳說:「網頁跑版時,設定 box-sizing: border-box一切搞定!」
Thumbnail
avatar
Kate Liu
2022-03-08
[CSS筆記] transition、transform、animation 動畫屬性這是一篇關於 CSS 動畫屬性的學習筆記,如果你剛好也在學習的話,歡迎進來看看!
Thumbnail
avatar
Allison
2022-01-09
css overflow-y: auto not working in iPad筆記一下,原本寫成overflow-y: auto,在windows chrome瀏覽器有y scroll bar,唯獨iPad沒有scroll bar,解法如下: overflow-y: scroll; -webkit-overflow-scrolling: touch; 本筆記參考: 1. h
avatar
Vic Lin
2021-10-07
【CSS 教學】什麼時候該使用 margin 、padding?前端都該要懂的盒模型! 對於前端初學者來說,在切版時會出現很多規則、不規則的網頁區塊,這時候我們會嘗試用各種相對定位、絕對定位、margin 或是 padding 的方式來進行網頁區塊的推擠。
Thumbnail
avatar
Vivian Yeh
2021-09-28