CSS3-Transform

来源:http://www.cnblogs.com/webcome/archive/2016/05/01/5450445.html
-Advertisement-
Play Games

Transform-變形 CSS3 2D Transform translate() 移動:將HTML元素在x-y軸平面上做位移,且不會影響到其他元素 translate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動) translateX(x)僅水平方向移動(X軸移動) trans ...


Transform-變形

CSS3 2D Transform

translate() //移動
rotate() //旋轉
scale() //縮放
skew()  //扭曲
matrix()  //矩陣變形

translate() 移動:將HTML元素在x-y軸平面上做位移,且不會影響到其他元素

translate(x,y)水平方向和垂直方向同時移動(也就是X軸和Y軸同時移動)

translateX(x)僅水平方向移動(X軸移動)

translateY(y)僅垂直方向移動(Y軸移動)

例:

-webkit-transform: translate(20px,20px); /*Webkit內核瀏覽器:Safari and Chrome*/
-moz-transform: translate(20px,20px);  /*Mozilla內核瀏覽器*/
-o-transform: translate(20px,20px);  /*Opera*/
-ms-transform:translate(20px,20px);  /*IE9*/
transform: translate(20px,20px);  /*W3C標準*/

rotate() 旋轉

需先有transform-origin屬性的定義。transform-origin定義的是旋轉的基點

如果設置的值為正數表示順時針旋轉,如果設置的值為負數,則表示逆時針旋轉。

如:

transform:rotate(30deg);

scale() 縮放

scale(x,y)使元素水平方向和垂直方向同時縮放(也就是X軸和Y軸同時縮放)

scaleX(x)元素僅水平方向縮放(X軸縮放)

scaleY(y)元素僅垂直方向縮放(Y軸縮放)

但它們具有相同的縮放中心點和基數,其中心點就是元素的中心位置

縮放基數為1,如果其值大於1元素就放大,反之其值小於1,元素縮小

如:

transform:scale(1.5,1.3)

 skew() 扭曲,斜切變換

skew(x,y)使元素在水平和垂直方向同時扭曲(X軸和Y軸同時按一定的角度值進行扭曲變形)

skewX(x)僅使元素在水平方向扭曲變形(X軸扭曲變形)

skewY(y)僅使元素在垂直方向扭曲變形(Y軸扭曲變形)

如:

transform:skewX(30deg)

 

transform:skewY(10deg)

matrix() 矩陣變形

transform: matrix(a,b,c,d,tx,ty);

本質上scale、skew、rotate、translate的效果都是通過matrix實現的,tx、ty表示位移量,matrix方法更詳細的介紹可以參考這裡:理解CSS3 transform中的Matrix(矩陣)

改變元素基點transform-origin

transform-origin(X,Y):用來設置元素的運動的基點(參照點)。預設點是元素的中心點。其中X和Y的值可以是百分值,em,px

其中X也可以是字元參數值left,center,right;Y和X一樣除了百分值外還可以設置字元值top,center,bottom

支持transform瀏覽器

IE9以下不支持

 

CSS3 3D Transform

3D Transform,2D Transform相比,它給HTML元素在x-y平面加上了z軸

translate3d(tx,ty,tz):他定義了一個3D的位移方法,增加了z軸的偏移量
translateZ(tz):這個方法只在Z軸偏移,與translateX()和translateY()相似
scale3d(sx,sy,sz):在原有的scale方法上增加了z軸的參數
scaleZ(sz):同理,只放大z軸,與scaleX()和scaleY()類似
rotate3d(rx,ry,rz):將元素以給定參數的某一個軸方向旋轉
rotateX(angle),rotateY(angle)和rotateZ(angle):只按照某一個軸旋轉,rotate3d(1,0,0,30deg)相當於rotateX(30deg),其他類推。

激活元素的3D空間,需要perspective屬性,寫法有兩種:

transform: perspective( 600px );
perspective: 600px;

寫法 transform:perspective(600px) 適用於單個元素,會對每一個元素做3D視圖的變換

perspective:600px 的寫法,需寫在父元素上,然後以父元素的視角,對多個子元素進行3D變換,多個子元素共用同一個3D空間

perspective的參數值,決定了3D效果的強烈程度,可以想象為距離多遠去觀察元素。值越大,觀察距離就越遠,同樣的旋轉值,看起來效果就弱一些;值越小,距離越近,3D效果就更強烈

perspective-orgin

同樣,對一個元素進行3D變換的時候,變換點都是元素的中心點,如果你想以其他的位置為變換點,那就可以用這個屬性來做調整

transform-style

這個參數用來共用父元素的3D空間

transform-style有兩個值,一個是預設的flat一個是preserve-3d

backface-visibility

backface-visibility 屬性可用於隱藏內容的背面。預設情況下,背面可見,這意味著即使在翻轉後,變換的內容仍然可見。但當 backface-visibility 設置為 hidden 時,旋轉後內容將隱藏確保只有正面可見

CSS3 3D Transform 理解詳見:http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/

參考資料:

http://www.w3cplus.com/content/css3-transform

http://beiyuu.com/css3-animation/

http://www.zhangxinxu.com/wordpress/2012/06/css3-transform-matrix-%E7%9F%A9%E9%98%B5/

http://www.ruanyifeng.com/blog/2014/02/css_transition_and_animation.html

http://www.zhangxinxu.com/wordpress/2012/09/css3-3d-transform-perspective-animate-transition/

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • CSS3 Transition css屬性值在一定時間內平滑地過渡; transition主要包含四個屬性值: transition-property 執行變換的屬性;應用所有屬性用all; transition-duration 動畫持續的時間;註意要加單位s或者ms transition-tim ...
  • 聖杯佈局和雙飛翼佈局的目的都是:左右兩欄固定寬度,中間部分自適應; 聖杯佈局 聖杯佈局HTML: 聖杯佈局CSS: 聖杯佈局的優點: 使主要內容列先載入。 允許任何列是最高的。 沒有額外的div。 需要的hack很少。 雙飛翼佈局 雙飛翼HTML 雙飛翼CSS 聖杯佈局和雙飛翼的比較: 1.兩種佈局 ...
  • 本文介紹使用圖標字體和SVG取代雪碧圖的方法。雪碧圖是很多網站經常用到的一種技術,但是它有缺點:高清屏會模糊、無法動態變化如hover時候反色。而使用圖標字體可以完美解決上述問題,同時具備相容性好,生成的文件小等優點。 雪碧圖 雪碧圖實例:淘寶PC端 將多張小圖放至一張大圖 將多張小圖放至一張大圖 ...
  • 在HTML4.01中:< b > < i > 是視覺要素(presentationl elements),分別表示無意義的加粗,無意義的斜體,僅僅表示樣式上是粗體或斜體,而沒有強調的語義,這兩個標簽在HTML4.01中不推薦使用,建議用CSS樣式; < em > 和 < strong > 是表達要素 ...
  • 學習要點: 1.安裝方式 2.自定義!生成 3.快速生成 主講教師:李炎恢 本章主要探討瞭解一下 Sublime Text3 的一個 HTML5 代碼提示插件:Emmet,這個插件比自帶原生的要強大許多。 一.安裝方式 Emmet 插件安裝一般採用兩種方式,1.通過命令安裝;2.下載離線安裝。我這裡 ...
  • 學習要點: 1.新版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.新版本 新版本的 Flexbox 模型是 2012 年 9 月提出的工作草案,這個草案是由 W3C 推出的最新語法。這個版本立志於指定標準,讓新式的 ...
  • 學習要點: 1.混合過度版 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.混合過渡版 混合版本的 Flexbox 模型是 2011 年提出的工作草案,主要是針對 IE10 瀏覽器實現的伸縮佈局效果,其功能和舊版本的屬性 ...
  • 學習要點: 1.佈局簡介 2.舊版本 主講教師:李炎恢 本章主要探討 HTML5 中 CSS3 提供的用來實現未來響應式彈性伸縮佈局方案,這裡做一個初步的瞭解。 一.佈局簡介 CSS3 提供一種嶄新的佈局方式:Flexbox 佈局,即彈性伸縮佈局模型(Flexible Box)。用來提供一個更加有效 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...