CSS中的transform

在 CSS 中,transform 是用于用于用于對元素進行幾何變換的屬性,可實現旋轉、縮放、平移、傾斜等效果,且不會影響其他元素的布局(不會觸發重排)。以下是其核心用法和特性:

1. 基本語法

element {transform: 變換函數1(參數) 變換函數2(參數); /* 多個變換可疊加 */transform-origin: x-axis y-axis; /* 變換原點(默認中心) */transition: transform 0.3s; /* 配合過渡實現平滑動畫 */
}

2. 常用變換函數

(1)平移(translate
  • 沿 X/Y 軸移動元素,不影響布局。
     .box {transform: translate(50px, 30px); /* X軸+50px,Y軸+30px */transform: translateX(50px);      /* 僅X軸 */transform: translateY(30px);      /* 僅Y軸 */transform: translateZ(100px);     /* 3D Z軸(需配合perspective) */
    }
    

百分比基于元素自身尺寸:translate(50%, 50%) 表示移動自身寬高的一半。

(2)旋轉(rotate
  • 繞原點旋轉元素,單位為 deg(度)或 rad(弧度)。
    .box {transform: rotate(45deg);      /* 順時針旋轉45度 */transform: rotate(-30deg);     /* 逆時針旋轉30度 */transform: rotateX(60deg);     /* 3D 繞X軸旋轉 */transform: rotateY(60deg);     /* 3D 繞Y軸旋轉 */
    }
    
  • 配合 transform-origin: left top; 可改變旋轉中心(如繞左上角旋轉)。
(3)縮放(scale
  • 放大或縮小元素,默認以中心為基準。
    .box {transform: scale(1.5);       /* 寬高均放大1.5倍 */transform: scaleX(0.8);      /* 僅寬度縮小到80% */transform: scaleY(1.2);      /* 僅高度放大到120% */
    }
    
  • 負值會翻轉元素(如 scaleX(-1) 水平翻轉)。
(4)傾斜(skew
  • 沿 X/Y 軸傾斜元素,產生扭曲效果。
    .box {transform: skew(20deg, 10deg); /* X軸傾斜20度,Y軸傾斜10度 */transform: skewX(30deg);       /* 僅X軸 */transform: skewY(15deg);       /* 僅Y軸 */
    }
    
(5)矩陣變換(matrix
  • 用矩陣值一次性定義復雜變換(較少直接使用)。
    .box {transform: matrix(1, 0, 0, 1, 50, 30); /* 等價于translate(50px, 30px) */
    }
    

3. 關鍵特性

(1)不影響布局

transform 變換后的元素仍占據原位置(不會改變文檔流),避免了 margintop/left 帶來的重排性能問題。

(2)疊加變換

多個變換函數可按順序疊加(從右到左執行):

/* 先旋轉45度,再平移50px(注意順序影響結果) */
.box {transform: translate(50px) rotate(45deg);
}

4. 應用場景

(1)懸停動畫
.button {transition: transform 0.3s;
}
.button:hover {transform: scale(1.05) translateY(-3px); /* 輕微放大+上移 */
}
(2)居中對齊
/* 未知尺寸元素水平垂直居中 */
.box {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%); /* 基于自身尺寸偏移 */
}
(3)3D 卡片效果
.card {transition: transform 0.5s;transform-style: preserve-3d;
}
.card:hover {transform: rotateY(180deg); /* 翻轉卡片 */
}
(4)滾動動畫

結合 JavaScript 監聽滾動,動態改變 transform

window.addEventListener('scroll', function() {const scrollY = window.scrollY;document.querySelector('.box').style.transform = `translateY(${scrollY * 0.5}px)`;
});

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90015.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90015.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90015.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MyBatis攔截器插件:實現敏感數據字段加解密

文章目錄一、寫在前面二、編碼實現1、注解2、攔截器插件3、配置插件4、實體類5、測試三、擴展1、優化點一、寫在前面 日常開發中,經常有一些敏感數據,直接寫入數據庫的話,很容易泄露。 本文基于mybatis攔截器插件,實現敏感數據的…

C++_Hello算法_隊列

隊列(queue)是一種遵循先入先出規則的線性數據結構。顧名思義,隊列模擬了排隊現象,即新來的人不斷加入隊列尾部,而位于隊列頭部的人逐個離開。 如圖 5-4 所示,我們將隊列頭部稱為“隊首”,尾部…

LeetCode 1.

問題描述 倆數之和: 給定一個整數數組 nums 和一個整數目標值 target,請你在該數組中找出 和為目標值 target 的那 兩個 整數,并返回它們的數組下標。你可以假設每種輸入只會對應一個答案,并且你不能使用兩次相同的元素。你可以按…

c練習-c基礎

#include <stdio.h>int main() {//打印數組中的最大值int arr[10];int max,i;for (i 0; i < 10; i){scanf_s("%d", &arr[i]);}max arr[0];for (i 0; i < 10; i){if(max < arr[i 1]){max arr[i 1];}}printf("數組中最大值&#xff1a;%…

Numpy科學計算(五分鐘小白從入門到精通)

2.1 numpy介紹numpy是Python中科學計算的基礎包。它是一個Python庫&#xff0c;提供多維數組對象、各種派生對象&#xff08;例如掩碼數組和矩陣&#xff09;以及用于對數組進行快速操作的各種方法&#xff0c;包括數學、邏輯、形狀操作、排序、選擇、I/O 、離散傅里葉變換、基…

從零掌握微服務通信安全:mTLS全解析

&#x1f525;「炎碼工坊」技術彈藥已裝填&#xff01; 點擊關注 → 解鎖工業級干貨【工具實測|項目避坑|源碼燃燒指南】 在云原生時代&#xff0c;微服務架構的普及帶來了靈活性和可擴展性&#xff0c;但也讓服務間通信的安全性成為核心挑戰。mTLS&#xff08;Mutual TLS&…

Node.js net.Socket.destroy()深入解析

socket.destroy() 是 Node.js net 模塊中用于強制銷毀 TCP 套接字的方法&#xff0c;比 socket.end() 更徹底。下面我將從多個方面全面講解這個方法。 基本用法 const net require(net);const server net.createServer((socket) > {// 強制銷毀套接字socket.destroy(); })…

vmware 克隆虛擬機,報錯:克隆時出錯:指定不存在的設備。然后電腦卡死,只能強制關機再開機。

vmware 克隆虛擬機&#xff0c;報錯&#xff1a;克隆時出錯:指定不存在的設備。然后電腦卡死&#xff0c;只能強制關機再開機。1、問題描述2、問題原因3、解決方法1、問題描述 vmware 版本&#xff1a;vmware workstation pro 17.6.3 克隆虛擬機時&#xff0c;創建完整克隆&am…

如何使用Python將任意PPT變為“智能模板”(解決 python-pptx 替換元素無法保留格式的問題,陰影、填充等屬性保留!)

文章目錄 ?? 介紹 ?? ?? 演示環境 ?? ?? 深入 OpenXML:格式保留的終極武器 ?? ?? 如何打造你自己的“格式保留”PPT模板? ?? 為什么格式會丟失? ??? 方案一:圖片的“格式移植”大法 ??? 實現代碼 ?? 原理解析 ?? 方案二:文本的“外科手術”大法…

學習python中離線安裝pip及下載package的方法

正常而言&#xff0c;Python 3.4及以上版本默認自帶pip工具?&#xff0c;無需額外安裝&#xff0c;如果需要單獨離線安裝pip&#xff0c;可以先使用DeepSeek查看指定操作系統能安裝的最高pip版本&#xff0c;然后在參考文獻1中現在指定版本的pip離線安裝文件&#xff0c;通常為…

liunx運維進階腳本

一、文件與目錄操作1.快速創建目錄樹mkdir -p project/{src,doc,test/{unit,integration}}創建嵌套目錄結構&#xff0c;避免逐層創建。2查找并刪除7天前的日志文件find /var/log -name "*.log" -mtime 7 -exec rm -f {} \;結合find和exec實現定時清理。3.批量重命名…

Apache Ignite 中的 SQL 模式(Schema)管理機制

這段內容講的是 Apache Ignite 中的 SQL 模式&#xff08;Schema&#xff09;管理機制。我們可以從幾個方面來理解&#xff1a; 一、什么是 Schema&#xff08;模式&#xff09;&#xff1f; 在 SQL 中&#xff0c;Schema 是數據庫對象&#xff08;如表、視圖等&#xff09;的…

分布式光伏發電多合一(也稱為五合一或者群調群控)終端,從功能、市場前景等等方面介紹

對于當下分布式光伏從業者&#xff0c;多合一終端經常被提及到。而且很多地區也有正常使用&#xff0c;目前來看&#xff0c;使用效果也是比較好的&#xff0c;滿足當下的使用要求。并且價格也是可以接受。下面從幾個方面簡單介紹一下。功能介紹 5G通信功能 設備內置 5G通信模組…

AWE2026啟動:加碼AI科技,雙展區聯動開啟產業新格局

7月22日&#xff0c;由中國家用電器協會主辦的2026年中國家電及消費電子博覽會&#xff08;AWE2026&#xff09;啟動發布會在上海舉行。據「TMT星球」了解&#xff0c;AWE2026將以“AI科技、慧享未來”為主題&#xff0c;首次啟用“一展雙區”的新模式&#xff0c;于2026年3月1…

Django基礎(六)———數據庫

前言上篇文章給大家介紹了DTL模板結構這篇文章將講述Django框架與MySQL數據庫的綜合使用一、Django配置連接數據庫在操作數據庫之前&#xff0c;首先先要連接數據庫&#xff0c;這里我們以配置MySQL為例來講解。Diango連接數據庫&#xff0c;不需要單獨的創建一個連接對象。 只…

postgresql使用記錄 SCRAM authentication requires libpq version 10 or above

文章目錄 背景 如何用命令行連接數據庫 報錯 原因 解決方案 psql常見命令 ?? **核心數據庫操作命令** 1. **查看所有數據庫** 2. **切換數據庫** 3. **查看表及結構** 4. **執行 SQL 文件** 5. **退出 psql** ?? **高級管理命令** ? **注意事項** 背景 由于某種原因,無法…

2.0版本seata、nacos+ruoyi(微服務)配置

一、下載&#xff1a; seata下載&#xff1a;點擊這里 nacos下載&#xff1a;點擊這里 ruoyi&#xff08;微服務&#xff09;下載&#xff1a;點擊這里 Git bash下載&#xff1a;點擊這里 本文所用的版本&#xff1a; seata-2.2.0&#xff08;下圖紅色框框&#xff09;&a…

面試高頻題 力扣 LCR 130.衣柜整理 洪水灌溉(FloodFill) 深度優先遍歷(dfs) 暴力搜索 C++解題思路 每日一題

目錄零、題目描述一、為什么這道題值得一看&#xff1f;二、題目拆解&#xff1a;核心要素與約束三、算法實現&#xff1a;基于 DFS 的解決方案代碼邏輯拆解五、時間復雜度與空間復雜度時間復雜度空間復雜度六、坑點總結七、舉一反三八、洪水灌溉&#xff08;Flood Fill&#x…

Ext4文件系統全景解析

目錄Ext4文件系統全景解析&#xff1a;從inode到數據恢復實戰1. Ext文件系統的"小區規劃"&#xff1a;塊組結構詳解 &#x1f3d8;?1.1 塊組&#xff1a;文件系統的基本管理單元1.2 超級塊的"多重備份"機制 &#x1f6e1;?2. inode&#xff1a;文件的&qu…

貪心算法Day4學習心得

先來看第一道&#xff1a;860. 檸檬水找零 - 力扣&#xff08;LeetCode&#xff09; 有如下三種情況&#xff1a; 情況一&#xff1a;賬單是5&#xff0c;直接收下。情況二&#xff1a;賬單是10&#xff0c;消耗一個5&#xff0c;增加一個10情況三&#xff1a;賬單是20&#…