天天看點

background、轉換、過渡

1.background
//----------------------------------
            background: url("CSS3%20DAY%2003/images/baby0.jpg") no-repeat;
            /*cover:不改變圖檔的比例,完全放大填充,溢出隐藏*/
            /*background-size: cover;*/
            /*contain:不改變圖檔的比例,放大到一邊達到100%,另一個方向不管*/
            /*background-size: contain ;*/
            /*100% 100%:改變圖檔的比例,雙邊都放大到100%*/
            background-size: 100% 100%;
            
//---------------------------------

            /*背景原點:控制背景圖從哪兒開始顯示*/
            /*預設值,padding也有背景圖*/
            /*background-origin: padding-box;*/
            /*邊框開始有背景圖*/
            /*background-origin: border-box;*/
            /*隻有内容區域有背景圖*/
            background-origin: content-box;
            
//----------------------------------

            /*背景裁切,不改變背景的位置*/
            background-clip: content-box;
            /*三個參數:padding-box,border-box,content-box*/           

複制

2.漸變
//----------------------------------

//linear-gradient()

            .s{
                /*标準寫法*/
                /*linear-gradient表示線性漸變的意思*/
                /*括号裡面兩個參數,表示從黃色漸變到綠色*/
                background-image: linear-gradient(yellow,green);
            }
            /*多顔色線性漸變*/
            .s1{
                background-image: linear-gradient(red,orange,yellow,green,cyan);
            }
            /*漸變方向,預設都是從上往下,我們可以通過設定,來更改漸變的方向*/
            /*用角度确定方向*/
            .s2{
                background-image: linear-gradient(270deg,yellow,green);
            }   
            /*用關鍵字确定方向*/
            .s3{
                background-image: linear-gradient(to left top,yellow,green);
            }
            /*在漸變裡面,可以通過百分比,控制漸變的起點*/
            /*下面這個,就是黃色從20%地方開始漸變,綠色從40%的地方開始漸變,
            如果百分比不到100%,那麼,缺少的用純顔色填充*/
            .s4{
                background-image: linear-gradient(90deg,yellow 20%,green 40%);
            }
            
            .s5{
                background-image: linear-gradient(90deg,yellow 40%,green 40%,green 50%,blue 50%);
            }
            <!--控制得當有點像進度條-->
        
//--------------------------------

//repeating-linear-gradient():重複線性漸變,文法與線性漸變一樣
//---------------------------------

//radial-gradient()

           .s{
                background-image: radial-gradient(yellow,green);
                /*基本寫法*/
            }
            /*标準寫法:三要素:1輻射範圍2中心點3顔色起止*/
            .s1{
                /*120px表示輻射範圍(半徑),at後面跟的屬性表示中心點*/
                background-image: radial-gradient(200px at 0 center,yellow,green);
            }
            
//-------------------------------------------

//repeating-radial-gradient():重複徑向漸變,文法與徑向漸變一樣           

複制

3.過渡
<!------------------------------------>

<!--簡寫:transition:property duration timing-function times-->
<!--<' transition-property '>: 檢索或設定對象中的參與過渡的屬性 -->
<!--<' transition-duration '>: 檢索或設定對象過渡的持續時間 -->
<!--<' transition-timing-function '>: 檢索或設定對象中過渡的動畫類型 -->
<!--<' transition-delay '>: 檢索或設定對象延遲過渡的時間 -->

<!--多個屬性-->
<!--縮寫方式-->
transition: border-color .5s ease-in .1s,
            background-color .5s ease-in .1s,
            color .5s ease-in .1s;
        

<!--拆分方式-->

transition-property: border-color, background-color, color;
transition-duration: .5s, .5s, .5s;
transition-timing-function: ease-in, ease-in, ease-in;
transition-delay: .1s, .1s, .1s;

<!--所有屬性-->
transition:all 2s linear 1s;           

複制

4.轉換
//-------------------------------
transform:

2D Transform Functions:
matrix(): 以一個含六值的(a,b,c,d,e,f)變換矩陣的形式指定一個2D變換,相當于直接應用一個[a,b,c,d,e,f]變換矩陣 
translate(): 指定對象的2D translation(2D平移)。第一個參數對應X軸,第二個參數對應Y軸。如果第二個參數未提供,則預設值為0 
translatex(): 指定對象X軸(水準方向)的平移 
translatey(): 指定對象Y軸(垂直方向)的平移 
rotate(): 指定對象的2D rotation(2D旋轉),需先有 <' transform-origin '> 屬性的定義 
scale(): 指定對象的2D scale(2D縮放)。第一個參數對應X軸,第二個參數對應Y軸。如果第二個參數未提供,則預設取第一個參數的值 
scalex(): 指定對象X軸的(水準方向)縮放 
scaley(): 指定對象Y軸的(垂直方向)縮放 
skew(): 指定對象skew transformation(斜切扭曲)。第一個參數對應X軸,第二個參數對應Y軸。如果第二個參數未提供,則預設值為0 
skewx(): 指定對象X軸的(水準方向)扭曲 
skewy(): 指定對象Y軸的(垂直方向)扭曲

3D Transform Functions:
matrix3d(): 以一個4x4矩陣的形式指定一個3D變換 
translate3d(): 指定對象的3D位移。第1個參數對應X軸,第2個參數對應Y軸,第3個參數對應Z軸,參數不允許省略 
translatez(): 指定對象Z軸的平移 
rotate3d(): 指定對象的3D旋轉角度,其中前3個參數分别表示旋轉的方向x,y,z,第4個參數表示旋轉的角度,參數不允許省略 
rotatex(): 指定對象在x軸上的旋轉角度 
rotatey(): 指定對象在y軸上的旋轉角度 
rotatez(): 指定對象在z軸上的旋轉角度 
scale3d(): 指定對象的3D縮放。第1個參數對應X軸,第2個參數對應Y軸,第3個參數對應Z軸,參數不允許省略 
scalez(): 指定對象的z軸縮放 
perspective(): 指定透視距離


//--------------------------------
transform-origin:設定或檢索對象以某個原點進行轉換,

該屬性提供2個參數值。 
如果提供兩個,第一個用于橫坐标,第二個用于縱坐标。 
如果隻提供一個,該值将用于橫坐标;縱坐标将預設為50%。 
對應的腳本特性為transformOrigin。



//--------------------------------

perspective:透視,在電腦上相當于到螢幕的距離

//-----------------------------

transfrom-style:flat: 指定子元素位于此元素所在平面内 
                preserve-3d: 指定子元素定位在三維空間内 
                
指定某元素的子元素是(看起來)位于三維空間内,還是在該元素所在的平面内被扁平化。

/*1.當該屬性值為「preserve-3d」時,元素将會建立局部堆疊上下文。 
2.決定一個變換元素看起來是處在三維空間還是平面内,需要該元素的父元素上定義 
3.<' transform-style '> 屬性。 對應的腳本特性為transformStyle。 */           

複制

5.六壬神骰

//樣式
 <style>
        .box{
            width: 600px;
            height: 600px;
            margin: 100px auto;
            /*border: 1px solid #eee;*/
            font-size: 40px;
            color: white;
            text-align: center;
            line-height: 160px;
            transform-style: preserve-3d;
            perspective: 3000px;
            position: relative;
            transition: all 2s;
            transform: rotateY(45deg) rotateX(45deg);
        }
        .box:hover{
            transform: rotateY(360deg) rotateX(360deg);
        }
        .box>div{
            width: 160px;
            height: 160px;
            position: absolute;
            left: 50%;
            top:50%;
            margin-left: -80px;
            margin-top: -80px;
        }
        .one{
            background: rgba(186,175,12,0.6);
            transform: translateZ(80px);
        }
        .two{
            background: rgba(12,210,56,0.6);
            transform: translateX(-80px) rotateY(90deg);
        }
        .three{
            background: rgba(182,42,156,0.6);
            transform: translateY(-80px) rotateX(90deg);
        }

        .four{
            background: rgba(12,210,56,0.6);
            transform: translateX(80px) rotateY(-90deg);
        }
        .five{
            background: rgba(182,42,156,0.6);
            transform: translateY(80px) rotateX(-90deg);
        }
        .six{
            background: rgba(12,175,186,0.6);
            transform: translateZ(-80px);
        }
    </style>
//結構
<div class="box">
    <div class="one">洗碗</div>
    <div class="two">拖地</div>
    <div class="three">做飯</div>
    <div class="four">看電視</div>
    <div class="five">買菜</div>
    <div class="six">獎品</div>
</div>           

複制

background、轉換、過渡