1. 程式人生 > >CSS3常用知識點梳理

CSS3常用知識點梳理

CSS3中新特性樣式篇

背景

background-origin:   規定背景圖片的定位區域。
    ☞ padding-box    背景影象相對內邊距定位(預設值)
    ☞ border-box     背景影象相對邊框定位【以邊框左上角為參照進行位置設定】
    ☞ content-box    背景影象相對內容區域定位【以內容區域左上角為參照進行位置設定】

   備註:
        1. 預設盒子的背景圖片是在盒子的內邊距左上角對齊設定。


background-clip:     規定背景的繪製區域。
    ☞ border-box     背景被裁切到邊框盒子位置 【將背景圖片在整個容器中顯示】
    ☞ padding-box    背景被裁切到內邊距區域【將背景圖片在內邊距區域(包含內容區域)顯示】
    ☞ content-box    背景被裁切到內容區域【將背景圖片在內容區域顯示】
    應用:
        1.移動端開發圖片裁切到內容區域,左右新增padding使可點選區域變大。

background-size:     規定背景圖片的尺寸。
    ☞ cover
    ☞ contain

邊框

 box-shadow:10px,10px,10px,red;      盒子陰影
 四個引數代表的意思
 1.陰影水平偏移量,正右負左
 2.陰影垂直偏移量,正下負上
 3.陰影模糊度,不能為負。
 4.陰影顏色。
 border-radius:   邊框圓角
 border-image:    邊框圖片


             /* 設定邊框圖片 */
             border-image-source: url("2.png");

             /* 邊框圖片裁切 : 不需要帶單位*/
             border-image-slice: 20;

             /* 設定邊框圖片的平鋪方式 */
             /* border-image-repeat: stretch; */
             border-image-repeat: round;
            /*  border-image-repeat: repeat; */

            border-image-width: 20px;

文字

  ☞text-shadow: 設定文字陰影  同box-shadow 

CSS3新特性之選擇器篇

☞ 屬性選擇器: 
        [屬性名=值] {}  div[class="selected"]   
        [屬性名] {}       匹配對應的屬性即可  div[class] 
        [屬性名^=值] {}    以值開頭
        [屬性名*=值] {}    包含
        [屬性名$=值] {}       以值結束

☞ 結構偽類選擇器:
      :first-child {}     選中父元素中第一個子元素 必須是父元素中第一個元素
      :last-child {}      選中父元素中最後一個子元素 必須是父元素中最後一個才會被選中
      :nth-child(n) {}    選中父元素中正數第n個子元素
      :nth-last-child(n) {}    選中父元素中倒數第n個子元素

      備註;
         n 的取值大於等於0
         n 可以設定預定義的值
            odd[選中奇數位置的元素]  
            even【選中偶數位置的元素】

         n 可以是一個表示式:
             an+b的格式

☞ 其他選擇器:
    :target          被錨鏈接指向的時候會觸發該選擇器
    ::selection      當被滑鼠選中的時候的樣式
    ::first-line     選中第一行
    ::first-letter   選中第一個字元
    word-break:break-all;換行
偽類和偽元素的區別?
偽類是選擇器,偽元素是頁面中用css程式碼實現的元素。

CSS3新特性之顏色漸變

  ☞ 線性漸變:
         1. 開始顏色和結束顏色
         2. 漸變的方向
         3. 漸變的範圍

       background-image:  linear-gradient(
                to right,
                red,
                blue
        );

    備註:
        表示方向:
             1. to + right | top | bottom | left 
             2. 通過角度表示一個方向
               0deg [從下向上漸變] 
               90deg【從左向右】

  ☞ 徑向漸變:
           /* 徑向漸變 */
            background-image: radial-gradient(
                 100px at center,
                 red,
                 blue
            );

2D轉換

  ☞ 位移
       transform: translate(100px,100px);

       備註:
           位移是相對元素自身的位置發生位置改變

  ☞ 旋轉
        transform: rotate(60deg);
       備註:
           取值為角度
  ☞ 縮放
        transform: scale(0.5,1);
        備註:
             取值為倍數關係,縮小大於0小於1,放大設定大於1

  ☞ 傾斜
       transform: skew(30deg,30deg);
       備註:
          第一個值代表沿著x軸方向傾斜
          第二個值代表沿著y軸方向傾斜

3D轉換

  ☞ 位移
    transform: translateX()  translateY()   translateZ()

  ☞ 旋轉
     transform: rotateX(60deg)  rotateY(60deg)  rotateZ(60deg);

  ☞ 縮放
      transform: scaleX(0.5)  scaleY(1)  scaleZ(1);
  ☞ 傾斜
      transform: skewX(30deg) skewY();

  ☞ transform-style: preserve-3d;
     將平面圖形轉換為立體圖形

CSS3新特性之動畫篇

過渡

 https://www.cnblogs.com/afighter/p/5731293.html

 補間動畫

            /* 設定哪些屬性要參與到過渡動畫效果中: all */
            transition-property: all;

            /* 設定過渡執行時間 */

            transition-duration: 1s;

            /* 設定過渡延時執行時間 */
            transition-delay: 1s;

            /* 設定過渡的速度型別 */

            transition-timing-function: linear;

動畫

    /* 1定義動畫集 */
        @keyframes  rotate {

            /* 定義開始狀態  0%*/
            from {
                transform: rotateZ(0deg);
            }

            /* 結束狀態 100%*/
            to {
               transform: rotateZ(360deg);
            }
        }



    注意:
         1. 如果設定動畫集使用的是百分比,那麼記住百分比是相對整個動畫執行時間的。

CSS3新特性之網頁佈局篇

伸縮佈局或者彈性佈局【響應式佈局】

  ☞ 設定父元素為伸縮盒子【直接父元素】
        display: flex

      為什麼在伸縮盒子中,子元素會在一行上顯示?
             1. 子元素是按照伸縮盒子中主軸方向顯示
             2. 只有伸縮盒子才有主軸和側軸
             3. 主軸: 預設水平從左向右顯示
             4。 側軸: 始終要垂直於主軸

  ☞ 設定伸縮盒子主軸方向(flex-direction)
            flex-direction: row; 【預設值】
            flex-direction: row-reverse;
            flex-direction: column;
            flex-direction: column-reverse;
  ☞ 設定元素在主軸的對齊方式( justify-content)
        /* 設定子元素在主軸方向的對齊方式 */
            justify-content: flex-start;
            justify-content: flex-end;
            justify-content: center;
            justify-content: space-between;
            justify-content: space-around;

  ☞ 設定元素在側軸的對齊方式 (align-items)
            align-items: flex-start;
            align-items: flex-end;
            align-items: center;

            /* 預設值 */
            align-items: stretch;

  ☞ 設定元素是否換行顯示(flex-wrap)
          1. 在伸縮盒子中所有的元素預設都會在一行上顯示
          2. 如果希望換行:
            flex-wrap: wrap | nowrap;

  ☞ 設定元素換行後的對齊方式( align-content)
            align-content: flex-start;
            align-content: flex-end;
            align-content: center;
            align-content: space-around;
            align-content: space-between;
            /* 換行後的預設值 */
            align-content: stretch;