HTML+CSS-前端學習一階段-周3.md

目錄

## 一、定位position

## 二、圓角

## 三、變形 transform

## 四、關鍵幀動畫 

## 五、過渡動畫

## 六、陰影

## 七、三角和箭頭

## 八、透明兼容

## 九、居中技巧

## 十、浮動和定位對比

## 十一、css精靈圖(雪碧圖)

## 十二、PS操作


## 一、定位position

> 佈局方法:文檔流、浮動、層佈局(定位)

- 三種定位:相對定位、絕對定位、固定定位

> 定位元素的層級設置: 設置了定位的元素可以通過z-index屬性調整層級關係,默認值都是0,數字越大層級越高,數字相同,層級跟標籤的順序有關,標籤越靠後層級越高

 

### 1、相對定位(子絕父相)

- position:relative;

- 不脫離文檔流,在文檔中原本的位置依然爲其保留

- 偏移參考位置: 元素本身在文檔流內原本的位置

 

### 2、絕對定位

- position:absolute;

- 脫離文檔流,在文檔中原本的位置不保留

- 偏移參考位置(定位父級): 離絕對定位元素最近的一個帶有position屬性的祖先元素,如果不存在這樣的元素就是參考body定位

 

### 3、固定定位

- position:fixed;

- 固定定位的元素會脫離文檔流,在文檔流中原本的位置不保留

- 偏移參考位置: 瀏覽器的可視區

 

```

定位偏移屬性偏移屬性:

    left :   正右,負左

    right:  正左,負右

    top  :  正下,負上

    bottom: 正上,負下

 

left/top和right/bottom通常使用一個,如果同時使用left/top生效

 

脫離文檔流的元素不會自動佔滿一行,寬度默認是由內容撐開

```

### 4、靜態定位

- position:static; 

- 沒有定位,偏移屬性失效(left/right/top/bottom)

- 層級(z-index)也失效

 

## 二、圓角

- 簡寫屬性:

```

    border-radius:10px;  四個角圓角半徑統一

    border-radius:10px 20px;  左上和右下   右上和左下

    border-radius:10px 20px 30px;  左上   右上和左下   右下

    border-radius:10px 20px 30px 40px;  左上   右上   右下  左下  

    border-radius:50%;---是個圓

```

- 分解屬性

```

    border-top-left-radius: 20px;

    border-top-right-radius: 40px;

    border-bottom-left-radius: 60px;

    border-bottom-right-radius: 80px;

```

 

## 三、變形 transform

```

transform:rotate(-30deg) scale(0.5,2);

```

1、旋轉

-  transform:rotate(30deg); 正數順時針,負數逆時針  

 

2、縮放

-  transform:scale(n);  水平和垂直同時縮放 n 取值 0-1之間縮小 , n>1 就是放大

-  transform:scale(n-x,n-y);  n-x:水平方向的縮放值,n-y垂直縮放值

 

## 四、關鍵幀動畫 

 

1、定義動畫的關鍵幀

```

    @keyframes 動畫名稱{

        0%{  

 

        }

        25%{

 

        }

        50%{

 

        }

        75%{

 

        }

        100%{ 

 

        }

    }

```

 

2、調用動畫

```

 animation: move 3s linear infinite alternate;

```

 

- animation: animation-name animation-duration animation-iteration-count  animation-timing-function  animation-delay  animation-direction;

 - animation-name: 調用的動畫名稱

 - animation-duration:整個動畫過程需要的時間 s(秒)/ms(毫秒)

 - animation-iteration-count:動畫執行的次數 n/infinite(無限次)

 - animation-timing-function: 動畫速度曲線

     - ease  慢-快-慢

     - linear 勻速

     - ease-in 慢-快

     - ease-out 快-慢

     - ease-in-out 慢-快-慢

     - cubic-bezier(.08,.73,.42,.93) 貝塞爾曲線 https://cubic-bezier.com/

 - animation-delay: 動畫延遲時間 s/ms

 - animation-direction: 動畫的方向 alternate(輪流反向)

 - animation-fill-mode: 動畫結束位置 forwards(停在重點)

 

```

關鍵幀動畫: 可自動調用,動畫可設多個節點(狀態),可多次(無限次)運行

過渡動畫:不可自動執行,需僞類觸發,動畫只有兩個狀態,觸發一次運行一次,不會反覆運行

```

## 五、過渡動畫

 

>過渡使用場景:一般用於元素正常狀態和鼠標移入狀態(:hover)屬性變化時,出現平滑過渡效果

```

transition:transition-property transition-duration transition-timing-function transition-delay;

```

```

 transition-property:過渡的屬性名 ,all(所有變化的屬性都過渡)

 transition-duration:過渡的時間  s/ms

 transition-timing-function: 過渡的速度曲線,取值同關鍵幀動畫

 transition-delay:過渡延遲時間 s/ms

 

```

- 多個屬性過渡

```

  transition: width 2s linear,height 4s ease,...;

```

- 示例

``` 

    情況1:

        .box{

            width: 100px;

            transition:all 0.5s linear;   <!-- 鼠標脫離時的過渡 -->

        }

        .box:hover{

            width: 200px;

            transition:all 2s linear;  <!-- 鼠標懸停時的過渡 -->

        }

 

    情況2:

        .box{

            width: 100px;

            <!-- 鼠標脫離時沒有過渡效果 -->

        }

        .box:hover{

            width: 200px;

            transition:all 2s linear;  <!-- 鼠標懸停時的過渡 -->

        }

    情況3:

        .box{

            width: 100px;

            transition:all 0.5s linear;<!-- 鼠標懸停和脫離時都有過渡,並且效果相同 -->

        }

        .box:hover{

            width: 200px;

        } 

```


 

## 六、陰影

 

1、 盒子陰影

```

    box-shadow:x-shadow y-shadow blur spread color inset;

     - x-shadow : 必需,水平陰影位置 ,正數向右偏移,負數向左偏移

     - y-shadow : 必需,垂直陰影位置 ,正數向下偏移,負數向上偏移

     - blur :  可選,陰影的模糊距離

     - spread: 可選,陰影的擴展尺寸

     - color:  可選,陰影的顏色

     - inset:  可選,不設置表示外陰影,設置inset表示內陰影 

    多組陰影:

    box-shadow:x-shadow y-shadow blur spread color inset,x-shadow y-shadow blur spread color inset, ... ;

```

 

2、 文字陰影

 

```

    text-shadow:x-shadow y-shadow blur color;

    - x-shadow : 必需,水平陰影位置 ,正數向右偏移,負數向左偏移

    - y-shadow : 必需,垂直陰影位置 ,正數向下偏移,負數向上偏移

    - blur: 可選,陰影的模糊距離

    - color:可選,陰影的顏色 默認和文字顏色相同

    多組陰影:x-shadow y-shadow blur color,x-shadow y-shadow blur color,...;

```


 

## 七、三角和箭頭

 

1、小三角: 

> 實現思路:把盒子寬高設置爲0,保留一個邊框的顏色,其他邊框設置爲透明

```

        .box{

            width: 0px;

            height: 0px;

            border: 50px solid;

            border-color: turquoise transparent transparent;

        }

```

 

2、小箭頭:

> 實現思路:實現兩個三角,通過定位讓兩個三角部分重疊,上一層三角顏色設置成和背景相同的顏色

```

        <div class="arrow1"></div>

 

        .arrow1{

            position: relative;

            width: 0px;

            height: 0;

            border: 50px solid;

            border-color: turquoise transparent transparent;

            margin-top: 10px;

        }

        .arrow1::after{

            position: absolute;

            left: -50px;

            top: -55px;

            content: '';

            width: 0px;

            height: 0px;

            border: 50px solid;

            border-color: #fff transparent transparent;

        }

```

## 八、透明兼容

 

1、rgba() 模式顏色: 可以給文字和背景設置顏色(IE低版本不兼容)

 > 給元素設置背景透明時,不會影響裏面的內容

 

2、opacity:0-1;  0完全透明,1不透明,0.X半透明(IE低版本不兼容)

 > 元素整體透明,元素本身以及裏面的內容全部透明

 

3、filter:alpha(opacity=50)  IE低版本瀏覽器專用透明濾鏡,效果等同於opacity屬性,0代表完全透明,100代表不透明

 

## 九、居中技巧

 

1、方法一: 父級的尺寸未知,子元素的尺寸已知

 

```

    .outer{

        position:relative;  /*父元素相對定位*/

    }

    .inner{

        width:300px;

        height:200px;

        position:absolute;  /* 子元素絕對定位*/

        left:50%;   /*盒子偏右*/

        top:50%;    /*盒子偏下*/

        margin-left:-150px;   /* 設置爲子元素寬度的一半(負值),往左移*/

        margin-top:-100px;  /* 設置爲子元素高度的一半(負值),往上移*/

    }

```

 

2、方法二: 父級的尺寸和子元素的尺寸都可以未知

 

```

    .outer{

        position:relative;  /*父元素相對定位*/

    }

    .inner{

        position:absolute;

        left:0;

        right:0;

        top:0;

        bottom:0;

        margin:auto;

        width:300px;

        height:200px;

    }

```

 

## 十、浮動和定位對比

 

> 佈局方法:文檔流、浮動、層佈局(定位)

- 文檔流:指的是元素按照本身的屬性進行排列,塊元素從上往下垂直排列,行內元素從左往右

- 浮動(水平佈局): 

    - 通常用來實現水平得多列布局(左右、左中右、四列、五列)

    - 所有元素(塊級、行內、行內塊)都可浮動

    - float:left/right; 會使元素脫離文檔流

    - 浮動的元素會脫離文檔流,不脫離文本流(文字、圖片、表單元素不會被浮動元素覆蓋)

- 定位(層佈局): 

    - 通常用來實現元素之間固定的位置關係,或者有覆蓋關係的

    - 所有元素(塊級、行內、行內塊)都可定位

    - position:absolute/fixed;會使元素脫離文檔流

    - 定位的元素既脫離文檔流,又脫離文本流

 

- 脫離文檔流的元素特點: 

    - 不再區分行內和塊級

    - 默認寬高都是由內容撐開

    - 能設置寬高,所有盒模型屬性


 

## 十一、css精靈圖(雪碧圖)

> 英文叫法 CSS sprites , “css貼圖定位”或“css

圖像拼合”。原理-把一些小圖片拼在一張圖片上,通過背景引入,用背景定位調整顯示的圖標。

適合一些小圖標,不適合大圖背景。

 

- 優點:

   - 1、減少網頁http請求次數,提高頁面的性能

   - 2、減少圖片命名困擾

   - 3、更換風格方便

- 缺點:

   - 1、必須要規定好容器的尺寸,背景定位的值也必須精確計算,相對比較麻煩


 

## 十二、PS操作

```

1、移動工具  :用來定位圖層,或者移動圖層

2、歷史記錄 : 用來返回前面一些操作

  - 撤回  ctrl+z   撤回多步  ctrl+shift+z

  - 直接返回初始狀態  F12

3、吸管工具: 用來取頁面的色值

4、標尺工具:用來量尺寸

5、放大鏡工具: 用來放大或者縮小畫布 

  - ctrl+ 加號  放大

  - ctrl+ 減號  縮小    

  - 按住alt  + 鼠標滾輪 向上滾動放大  向下滾動縮小

6、抓手工具:用來移動整個畫布  

  - 按住空格鍵 + 鼠標左鍵按下拖拽

7、文字工具:添加文字圖層,或者選取文字圖層,查看文本樣式信息

8、保存切片:

 - 存儲爲web所用格式,快捷鍵:ctrl+alt+shift+s

 - 設置切片格式和品質

 - 切片選項:

    - 所有切片(劃分的切片 + 整個頁面剩餘的部分)

    - 用戶切片(指的是自己劃的切片)

    - 選中的切片  (指定部分切片保存)

9、ctrl+T  : 自由變換工具,改變圖層大小

```

```

1、網頁中的常見圖片格式

   - jpg  色彩豐富,文件相對小,有損壓縮,反覆保存質量下降 使用場景-廣告/商品圖/照片

   - gif  支持動圖,文件小 只支持256種顏色 色彩簡單的小圖標icon/動圖

   - png  支持透明,簡單圖尺寸較小 色彩豐富的圖片尺寸大,不支持動圖,適用透明圖片

   - webp 支持透明、動畫,文件小、質量高    瀏覽器兼容性不好 只能在支持它格式的設備上顯示

2、 切透明圖標

- 方法一:

   - 定位到圖層-去掉顯示爲透明、最下面圖層6 layer0也隱藏--

   - 切片-存png24半透明/全透明 png8是全透明

- 方法二:

   - 複製小圖標,新建粘貼 去掉背景即可看透明圖標---ctrl a全選+ctrl c複製+ ctrl n新建時是選擇設置爲透明

3、製作精靈圖

- 複製小圖標(ctrl a +ctrl c) 複製圖層 (ctrl j)--點擊圖層-混合選項-顏色疊加--設置圖標顏色

- 圖層編組 ctrl+G

- 合併圖層 ctrl+E


 

4、靜態大banner圖優化

- 從重要內容使用img標籤,修飾的圖案使用背景圖片這個原則,需要把中間部分切成圖片 ,兩邊剩餘的部分作爲大背景圖

- 中間部分可以再劃分成幾個小切片,爲了防止網絡情況不好大圖請求超時


 

```


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章