【css3】筆記

來源:互聯網
上載者:User

標籤:

一、過渡、變形和動畫

1. 過渡 transition

應用舉例:

    a元素normal狀態樣式為一種,:hover時為另一種,希望由normal轉為active時緩慢的變化,這是可以在normal樣式中添加transition,如transition: all 1s ease 0s.

屬性介紹:

    簡寫是transition: all 1s ease 0s, 從前到後屬性意義依次是:

    transition-property:要過渡的css屬性名稱

    transition-duration:完成過渡需要的時間

    transition-timing-function:過渡的速度如何變化,比如有ease linear ease-in ease-out ease-in-out cubic-bezier。如果沒定義瀏覽器預設用ease。

    transition-delay: 可選。定義過渡開始前的延遲時間

    也可以設定不同的css屬性有不同的過渡時間,像這樣:

    transition-property: border, color, text-shadow;

    transition-duration: 2s, 3s, 8s;

2. 2d變形 transform

    transfrom可以指定元素會做什麼樣的變形,可用的2d變形有:

    transfrom: translate(40px, 10px)

translate是上下左右移動,translate第一個值說的是左右移動值,第二個值是上下移動。上面的例子就是說向右移動40px,向下移動10px。

    transform : scale(1.7)

scale可以控制元素放大縮小。scale(1.7)是將元素放大1.7倍大小,scale(0.5)是將元素縮小到0.5倍大小。

    transform: rotate(45deg)

rotate是將元素旋轉多少度。rotate(45deg)是元素順時針旋轉45度。

    transform: skew(10deg, 20deg)

skew是將元素進行斜切。skew(10deg, 20deg)是x軸方向10度斜切,y軸方向20度斜切

    transform: matrix(1.678, -0.256, 1.522, 2.333, -51.533, -1.989)

matrix可以在像素級上完成上面幾個屬性值完成的效果,具體咋弄不研究了,我不是做設計的。。

    transform-origin: 20% 20%

transform-origin可以設定transform時中心點在哪裡,不設定預設是以元素的中心為中心點。

3. 3d變形

關於3d變形舉一個例子,翻拍效果

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
.blue{
    background: blue;
}
.pink{
    background: pink;
}
.face{
    width: 200px;
    height: 400px;
}
.container{
    -webkit-perspective: 500; /*透視,值越小效果越明顯*/
}
.card{
    transform-style: preserve-3d; /*3d變化在子項目上保留*/
    transition: 10s;
    width: 200px;
    height: 400px;
}
.container:hover .card{
    transform: rotateY(180deg); /*從下往上看順時針旋轉180度*/
}
.face{
    position: absolute;
    backface-visibility: hidden; /*反轉到後面看不見*/
}
.back{
    transform: rotateY(180deg); /*這沒有transition的過程哦*/
}
</style>
</head>
<body>

<div class="container">
     <div class="card">
          <div class="face front blue">front</div>
          <div class="face back pink">back</div>
     </div>
</div>

</body>
</html>

4. 動畫

上一個“顫抖吧”的例子

<!DOCTYPE html>
<html>
<head>
<title></title>
<style>
@keyframes shake{
    0% {
        transform: rotate(30deg);
    }
    50% {
        transform: rotate(-50deg);
    }
    100%{
        transform: rotate(20deg);
    }
}
@-webkit-keyframes shake{  /*定義動畫,名字是shake,不同階段的css*/
    0% {
        transform: rotate(30deg);
    }
    50% {
        transform: rotate(-50deg);
    }
    100%{
        transform: rotate(20deg);
    }
}
.float{
    position: absolute;
    top: 200px;
    left: 200px;
    animation: shake 0.5s infinite ease-in;  /*應用動畫,shake是動畫名,0.5是執行一次動畫的事件,infinite是動畫執行次數當然也可以設定成5表示執行5次*/
    -webkit-animation: shake 0.5s infinite ease-in;
    width: 30px;
    height: 30px;
    background: red;
}
</style>
</head>
<body>
    <div class="float"></div>
</body>
</html>

 

【css3】筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.