CSS學習筆記2-2d變換和過渡屬性

來源:互聯網
上載者:User

標籤:情境   中心   scale   中間   時間   統一   狀態   小數   css3   

前言:今天又是一個周末,心情不錯,趁著閑暇之餘,把剩下來的CSS3學習的內容全部整理出來,練慣用的源碼也稍微整理了一下。

2D轉換

transform:translate||rotate||scale||skew

平移、旋轉、縮放、斜切

1. 平移 transform:translate()

參數說明:

  1. 只有一個值的情況下,表示水平方向運動,正值向右,負值向左,也可以接受百分比,百分比參照的是自身的寬,高
  2. 兩個值分別控制水平和垂直
  3. 移動不會影響其他的元素,類似於相對定位
  4. 我們可以通過盒子的絕對位置配合transform:translate(-50%,-50%)實現一個沒有寬度高度的盒子水平垂直置中 ,如果沒有寬度的話,盒子最大的寬只能達到父盒子的一半
  5. 如果想要單個的方向移動 可以寫成 translateX()和translateY()
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 200px; height: 200px; background-color: pink; } .box:hover{ /* transform: translate(-10px,10px); */ /* transform: translateY(-10px); */ transform: translateY(10%); } </style></head><body> <div class="box">1</div> <div class="box">2</div></body></html>
2. 旋轉 transform:rotate()

參數說明:

  1. 單位是deg 角度
  2. 整體發生旋轉(包括裡面的內容)
  3. 正值是順時針方向旋轉 負值反之
  4. 中心點可以控制 transform-origin:值(值可以是方位名詞,可以是像素,也可以是百分比,參照的是自身的寬高)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 200px; height: 200px; background-color: pink; margin: 100px auto; transition: all 10s; transform-origin: 50% 50%; } .box:hover{ transform: rotate(-50deg); } </style></head><body> <div class="box">1</div></body></html>
3.縮放 transform:scale()

參數說明:

  1. 沒有單位,接受數值和小數
  2. 只有一個值的情況,整體縮放(等比例)
  3. 兩個值的情況,寬度和高度分別縮放(可能會變形)
  4. 邊框也是會縮放的,並且如果想要一個方向縮放,另外一個方向需要寫一個1
  5. 縮放的中心點也可以被控制
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 200px; height: 200px; background-color: pink; margin: 100px auto; transition: all 1s; border: 5px solid #000; transform-origin: right; } .box:hover{ transform: scale(2,1); } </style></head><body> <div class="box">1</div></body></html>
4.斜切 transform:skew()

參數說明:

  1. 單位是deg
  2. 只有一個值的情況下,水平斜切
  3. 兩個值的情況下,水平垂直分別斜切
  4. 斜切的中心點也可以被控制 如果是X軸斜切 中心點控制上下 如果是Y軸斜切 中心點控制左右
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 200px; height: 200px; background-color: pink; margin: 100px auto; transition: all 1s; border: 5px solid #000; transform-origin: bottom; } .box:hover{ transform: skew(45deg); } </style></head><body> <div class="box">1</div></body></html>
5.過渡 transition

transition:屬性 期間 過渡曲線 延時

過渡不是動畫,是由css的一種狀態到另外一種狀態中間變換的過程。

值說明:

  1. 那個屬性需要過渡就寫什麼屬性 可以用all來代替全部 (必寫)
  2. 過渡持續的時間,單位可以s或者是ms (必寫)
  3. 過渡的曲線
  4. 過渡從延時多長時間開始
6.2D轉換總結
  1. 移動,斜切,放大都是可以通過X或者Y去控制某一個方向
  2. 中心點可以控制旋轉,縮放,斜切
  3. 如果我們想要多個2D效果共存,需要採用連寫的方式
  4. 當在不同情境出現需要transfrom的時候,需要複製前面已經存在的,防止覆蓋
  5. Transform的轉換效果順序盡量保持統一,如果不統一會出現一些問題
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title> <style> .box{ width: 200px; height: 200px; background-color: pink; transition: all 1s; border: 5px solid #000; position: absolute; left: 50%; top: 50%; transform:translate(-50%,-50%) rotate(0deg) scale(1); } .box:hover{ transform:translate(-50%,-50%) rotate(360deg) scale(2); } </style></head><body> <div class="box">1</div></body></html>

CSS學習筆記2-2d變換和過渡屬性

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.