CSS transform屬性詳解

導(dǎo)讀

  • 相關(guān)單詞
  • 坐標(biāo)軸
  • transform屬性(translate() scale() rotate() skew())
  • perspective
  • perspective-origin

相關(guān)單詞

  • transform 變換、轉(zhuǎn)換、變形
  • origin:起源、源頭
  • perspective: 透視
  • translate: 移動(dòng)(本意是翻譯)
  • scale: 縮放
  • rotate: 旋轉(zhuǎn)
  • skew: 傾斜、斜切

坐標(biāo)軸

3d_axes.jpg
  • x軸:水平軸俩垃。
  • y軸:垂直軸。
  • z軸:垂直于屏幕的軸。

transform屬性

定義:transform屬性定義元素的變換熙卡。允許您對元素進(jìn)行移動(dòng)、旋轉(zhuǎn)励饵、縮放和傾斜變換驳癌。

屬性 描述 屬性值
transform 向元素應(yīng)用變換。 translate(),scale(),rotate(),skew()
transform-origin 設(shè)置變換元素的位置役听。 length,left,center,right,top,bottom
transform-style 設(shè)置元素的變換風(fēng)格颓鲜。包括2D和3D兩種風(fēng)格 flat, preserve-3d
perspective 設(shè)置是否開啟透視 none, length
perspective-origin 設(shè)置透視源(視角位置) left,top,bottom,right,length
backface-visibility 定義元素在不面對屏幕時(shí)是否可見表窘。

translate()

定義:translate()函數(shù)用于對元素進(jìn)行移動(dòng)變換。

語法

div{
  transform: translate(12px, 50%);
  transform: translate3d(12px, 50%, 3em);
  transform: translateX(2em);
  transform: translateY(3in);
  transform: translateZ(2px);
}

屬性值:

  1. 可使用任何長度值:px % em rem vh vw
  2. 屬性值數(shù)量由函數(shù)決定:1 - 3 個(gè)

用法:

  • 當(dāng)子元素translateZ(100px)看不到時(shí):可通過為父元素添加transform: rotate3d(1,1,1,45deg)查看子元素的移動(dòng)效果甜滨,也可通過perspective屬性添加景深查看子元素移動(dòng)效果乐严。

scale()

定義:scale()函數(shù)用于對元素進(jìn)行縮放變換。

語法

div{
  transform: scale(2, 0.5);
  transform: scale3d(2.5, 1.2, 0.3);
  transform: scaleX(2);
  transform: scaleY(0.5);
  transform: scaleZ(0.3);
}

屬性值:

  1. 數(shù)值在[-1, 1]內(nèi)表示收縮,-0.5等同于0.5衣摩,否則表示放大昂验。
  2. 屬性值數(shù)量由函數(shù)決定:1 - 3 個(gè)

rotate()

定義:rotate()函數(shù)用于對元素進(jìn)行旋轉(zhuǎn)變換。

語法

div{
  transform: rotate(0.5turn); /* 效果等同于 rotateZ(45deg) */
  transform: rotateX(10deg);
  transform: rotateY(10deg);
  transform: rotateZ(10deg);
  transform: rotate3d(x, y, z, 10deg); 
}

屬性值:

  • deg: 表示旋轉(zhuǎn)角度艾扮。正值表示順時(shí)針旋轉(zhuǎn)既琴,負(fù)值表示逆時(shí)針旋轉(zhuǎn)。
  • turn: 表示旋轉(zhuǎn)圈數(shù)泡嘴。0.5表示1/4圈甫恩,1表示半圈,2表示1圈酌予。
  • rotate3d() 創(chuàng)建的旋轉(zhuǎn)量由x,y,z三個(gè)數(shù)值和一個(gè)角度指定磺箕。

用法:

  • rotate() :當(dāng)子元素rotate(90deg)看不到時(shí):可旋轉(zhuǎn)父元素以查看子元素的旋轉(zhuǎn)效果。
  • rotate()效果等同于rotateZ()

skew()

定義:skew()函數(shù)用于對元素進(jìn)行斜切變換霎终。

語法

div{
  transform: skew(30deg, 20deg);
transform: skew(10deg); /* 效果等同于skewX(10deg) */
  transform: skewX(30deg);
  transform: skewY(1.07rad);
}

屬性值

  • deg:表示斜切的角度
  • 默認(rèn)值:0
  • rad:表示半徑

transform-style

定義:

transform-origin

定義:指定原點(diǎn)的位置滞磺。默認(rèn)情況下,它位于元素的中心并且可以移動(dòng)莱褒。它被需要特定點(diǎn)作為參數(shù)的多種變換使用击困,例如旋轉(zhuǎn)、縮放或傾斜广凸。

示例:圖片以bottom left為原點(diǎn)順時(shí)針旋轉(zhuǎn)了90度

<img
  style="rotate: 90deg;
      transform-origin: bottom left;"
  src="logo.png"
  alt="MDN Logo" />

perspective

定義:定義z軸原點(diǎn)到屏幕的距離阅茶。開啟3D空間上下文。(Z軸是垂直屏幕的軸)
特征:大透視小變換谅海;小透視大變換脸哀。
語法

父元素{
  perspective: none | px | em;
}

屬性值:

  • none: 不開啟透視。默認(rèn)值
  • 長度值:開啟透視扭吁,并設(shè)置透視距離撞蜂。(最小值是1px)

perspective-origin

定義:要配置的第二個(gè)元素是觀察者的位置,具有 perspective-origin 屬性侥袜。默認(rèn)情況下蝌诡,視角以觀察者為中心,這并不總是足夠的枫吧。
語法

/* One-value syntax */
perspective-origin: x-position;

/* Two-value syntax */
perspective-origin: x-position y-position;

/* When both x-position and y-position are keywords,
   the following is also valid */
perspective-origin: y-position x-position;

x 位置: 表示消失點(diǎn)的橫坐標(biāo)位置浦旱。它可以具有以下值之一:

  • <length-percentage> 以絕對長度值或相對于元素寬度的形式指示位置。該值可能為負(fù)九杂。
  • left颁湖,關(guān)鍵字是 0 長度值的快捷方式宣蠕。
  • center,關(guān)鍵字是 50% 百分比值的快捷方式甥捺。
  • right抢蚀,關(guān)鍵字是 100% 百分比值的快捷方式。

y 位置

指示消失點(diǎn)的縱坐標(biāo)位置涎永。它可以具有以下值之一:

  • <length-percentage> 以絕對長度值或相對于元素高度的形式指示位置思币。該值可能為負(fù)。
  • top羡微,關(guān)鍵字是 0 長度值的快捷方式谷饿。
  • center,關(guān)鍵字是 50% 百分比值的快捷方式妈倔。
  • bottom博投,關(guān)鍵字是 100% 百分比值的快捷方式。

透視

透視指在平面上描繪物體的空間關(guān)系的方法盯蝴。

透視的特點(diǎn):

  1. 近大遠(yuǎn)小
  2. 近快遠(yuǎn)慢
  3. 近實(shí)遠(yuǎn)虛
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毅哗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子捧挺,更是在濱河造成了極大的恐慌虑绵,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闽烙,死亡現(xiàn)場離奇詭異翅睛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)黑竞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門捕发,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人很魂,你說我怎么就攤上這事扎酷。” “怎么了遏匆?”我有些...
    開封第一講書人閱讀 152,878評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵法挨,是天一觀的道長。 經(jīng)常有香客問我幅聘,道長凡纳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評(píng)論 1 279
  • 正文 為了忘掉前任喊暖,我火速辦了婚禮惫企,結(jié)果婚禮上撕瞧,老公的妹妹穿的比我還像新娘陵叽。我一直安慰自己狞尔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評(píng)論 5 373
  • 文/花漫 我一把揭開白布巩掺。 她就那樣靜靜地躺著偏序,像睡著了一般。 火紅的嫁衣襯著肌膚如雪胖替。 梳的紋絲不亂的頭發(fā)上研儒,一...
    開封第一講書人閱讀 49,071評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音独令,去河邊找鬼端朵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛燃箭,可吹牛的內(nèi)容都是我干的冲呢。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼招狸,長吁一口氣:“原來是場噩夢啊……” “哼敬拓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起裙戏,我...
    開封第一講書人閱讀 37,006評(píng)論 0 259
  • 序言:老撾萬榮一對情侶失蹤乘凸,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后累榜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體营勤,經(jīng)...
    沈念sama閱讀 43,512評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評(píng)論 2 325
  • 正文 我和宋清朗相戀三年信柿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冀偶。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,094評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡渔嚷,死狀恐怖进鸠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情形病,我是刑警寧澤客年,帶...
    沈念sama閱讀 33,732評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站漠吻,受9級(jí)特大地震影響量瓜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜途乃,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評(píng)論 3 307
  • 文/蒙蒙 一绍傲、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦烫饼、人聲如沸猎塞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荠耽。三九已至,卻和暖如春比藻,著一層夾襖步出監(jiān)牢的瞬間铝量,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評(píng)論 1 262
  • 我被黑心中介騙來泰國打工银亲, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留慢叨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評(píng)論 2 354
  • 正文 我出身青樓务蝠,卻偏偏與公主長得像插爹,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子请梢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容