好程式設計師web前端系列之CSS3-3D
好程式設計師
web前端系列之
CSS3
-
3D
,
什麼是
3d的場景呢? 2d場景,在螢幕上水平和垂直的交叉線x軸和y軸
3d場景,在垂直於螢幕的方法,相對於3d多出個z軸
Z軸:靠近螢幕的方向是正向,遠離螢幕的方向是反向
CSS3中的3D變換主要包括以下幾種功能函式: 3D位移: CSS3中的3D位移主要包括translateZ()和translate3d()兩個功能函式; 3D旋轉: CSS3中的3D旋轉主要包括rotateX()、rotateY()、rotateZ()和rotate3d()四個功能函式; 3D縮放: CSS3中的3D縮放主要包括scaleZ()和scale3d()兩個功能函式;
景深
生活中的 3d 區別於2d的地方
近大遠小
景深
程式中實現的方法
perspective 元素距離 視線的距離(物體和眼睛的距離越小,近大遠小的效果越明顯)
perspective: 1200px;(在父元素中使用)transform:perspective(1200px) (在子元素中使用)
兩個都設定會發生衝突,建議只設定父元素,通常的數值在
900-1200之間
如果當你的視線距離物體足夠遠的時候,基本上就不會有近大遠小的感覺
perspective-origin;
觀察
3d元素的(位置)角度 perspective-origin:center center (中心)
perspective-origin:left top (左上角)
perspective-origin:100% 100% (右下角)
transform-style屬性
transform-style屬性是3D空間一個重要屬性,指定巢狀元素如何在3D空間中呈現。他主要有兩個屬性值:flat和preserve-3d
其中
flat值為預設值,表示所有子元素在2D平面呈現。preserve-3d表示所有子元素在3D空間中呈現。
也就是說,如果對一個元素設定了
transform-style的值為flat,則該元素的所有子元素都將被平展到該元素的2D平面中進行呈現。沿著X軸或Y軸方向旋轉該元素將導致位於正或負Z軸位置的子元素顯示在該元素的平面上,而不是它的前面或者後面。如果對一個元素設定了transform-style的值為preserve-3d,它表示不執行平展操作,他的所有子元素位於3D空間中。
3d重要功能函式
1、 3D位移
在
CSS3中3D位移主要包括兩種函式translateZ()和translate3d()。translate3d()函式使一個元素在三維空間移動。
語法:
translate3d(tx,ty,tz)
tx:代表橫向座標位移向量的長度;
ty:代表縱向座標位移向量的長度;
tz:代表Z軸位移向量的長度。此值不能是一個百分比值,如果取值為百分比值,將會認為無效值。
ranslateZ()函式的功能是讓元素在3D空間沿Z軸進行位移。
語法:
translateZ(t)
t:指的是Z軸的向量位移長度。
2、 3D旋轉
在三維變形中,我們可以讓元素在任何軸旋轉。為此, CSS3新增三個旋轉函式:rotateX()、rotateY()、rotateZ()和rotate3d(x,y,z,a)。
rotateX(a)
rotateX()函式指定一個元素圍繞X軸旋轉,旋轉的量被定義為指定的角度;如果值為正值,元素圍繞X軸順時針旋轉;反之,如果值為負值,元素圍繞X軸逆時針旋轉。
rotateY(a)
rotateY()函式指定一個元素圍繞Y軸旋轉,旋轉的量被定義為指定的角度;如果值為正值,元素圍繞Y軸順時針旋轉;反之,如果值為負值,元素圍繞Y軸逆時針旋轉。
rotateZ(a)
rotateZ()函式和其他兩個函式功能一樣的,區別在於rotateZ()函式指定一個元素圍繞Z軸旋轉。
rotate3d(x,y,z,a)
x:是一個0到1之間的數值,主要用來描述元素圍繞X軸旋轉的向量值;
y:是一個0到1之間的數值,主要用來描述元素圍繞Y軸旋轉的向量值;
z:是一個0到1之間的數值,主要用來描述元素圍繞Z軸旋轉的向量值;
a:是一個角度值,主要用來指定元素在3D空間旋轉的角度,如果其值為正值,元素順時針旋轉,反之元素逆時針旋轉。
3、 3D縮放
CSS3 3D變形中的縮放主要有scaleZ()和scale3d()兩種函式,當scale3d()中X軸和Y軸同時為1,即scale3d(1,1,sz),其效果等同於scaleZ(sz)。透過使用3D縮放函式,可以讓元素在Z軸上按比例縮放。預設值為1,當值大於1時,元素放大,反之小於1大於0.01時,元素縮小
scale3d(sx,sy,sz)
sx:橫向縮放比例;
sy:縱向縮放比例;
sz:Z軸縮放比例;
scaleZ(s)
s:指定元素每個點在Z軸的比例。
注:
scaleZ()和scale3d()函式單獨使用時沒有任何效果,需要配合其他的變形函式一起使用才會有效果
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2643729/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師web前端教程JavaScript系列之HTTP程式設計師Web前端JavaScriptHTTP
- 好程式設計師web前端系列之css3動畫程式設計師Web前端CSSS3動畫
- 好程式設計師分享Web前端知識之HTML程式設計師Web前端HTML
- 好程式設計師web前端教程:字串程式設計師Web前端字串
- 好程式設計師Web前端分享前端CSS篇程式設計師Web前端CSS
- 好程式設計師web前端乾貨之web前端開發框架彙總程式設計師Web前端框架
- 好程式設計師web前端分享應該怎樣學好web前端?程式設計師Web前端
- 好程式設計師web前端分享web前端入門知識程式設計師Web前端
- 好程式設計師web前端精講 web前端三要素程式設計師Web前端
- 好程式設計師web前端教程分享前端javascript練習題之promise程式設計師Web前端JavaScriptPromise
- 好程式設計師web前端之JavaScript陣列去重方法程式設計師Web前端JavaScript陣列
- 好程式設計師web前端開發測驗之css部分程式設計師Web前端CSS
- 好程式設計師web前端教程分享web前端基礎知識程式設計師Web前端
- 好程式設計師分享Web前端開發工具程式設計師Web前端
- 好程式設計師web前端教程:Math函式程式設計師Web前端函式
- 好程式設計師web前端教程分享CSS技巧!程式設計師Web前端CSS
- 好程式設計師web前端分享Cookie知識程式設計師Web前端Cookie
- 好程式設計師web前端分享前端 javascript 練習題程式設計師Web前端JavaScript
- 好程式設計師web前端分享web測試之Js中的變數程式設計師Web前端JS變數
- 好程式設計師web前端培訓分享node學習筆記系列之四十一程式設計師Web前端筆記
- 好程式設計師web前端技術之CSS3過渡程式設計師Web前端CSSS3
- 好程式設計師web前端分享CSS基礎知識之position程式設計師Web前端CSS
- 好程式設計師web前端教程分享前端javascript練習題之閉包案例程式設計師Web前端JavaScript
- 好程式設計師web前端分享:如何理解web語義化?程式設計師Web前端
- 好程式設計師web前端分享前端javascript練習題三程式設計師Web前端JavaScript
- 好程式設計師web前端分享前端javascript練習題一程式設計師Web前端JavaScript
- 好程式設計師web前端教程分享JavaScript面試題程式設計師Web前端JavaScript面試題
- 好程式設計師分享Web前端效能最佳化程式設計師Web前端
- 好程式設計師web前端分享邏輯運算程式設計師Web前端
- 好程式設計師web前端教程分享js閉包程式設計師Web前端JS
- 好程式設計師web前端分享常見面試題程式設計師Web前端面試題
- 好程式設計師web前端分享HTML 字符集程式設計師Web前端HTML
- 好程式設計師web前端分享CSS元素型別程式設計師Web前端CSS型別
- 好程式設計師web前端分享HTML基礎篇程式設計師Web前端HTML
- 好程式設計師web前端分享CSS基礎篇程式設計師Web前端CSS
- 好程式設計師web前端分享高度自適應程式設計師Web前端
- 好程式設計師web前端教程分享js模板模式程式設計師Web前端JS模式
- 好程式設計師web前端細解cookie那些事程式設計師Web前端Cookie