#### **簡介**
`clip-path`CSS 屬性可以創建一個只有元素的部分區域可以顯示的剪切區域。區域內的部分顯示,區域外的隱藏。剪切區域是被引用內嵌的URL定義的路徑或者外部svg的路徑,或者作為一個形狀。clip-path屬性代替了現在已經棄用的剪切`clip`屬性。
#### **基本圖形**
`inset()`: 定義一個矩形 。注意,定義矩形不是`rect`,而是**`inset`**。
`circle()`: 定義一個圓 。
`ellipse()`: 定義一個橢圓 。
`polygon()` : 定義一個多邊形 。
#### **使用介紹**
### **使用inset():**
//語法
inset( <length-percentage>{1,4} [ round <border-radius> ]? )
//說明
inset()可以傳入5個參數,分別對應top,right,bottom,left的裁剪位置,round radius(可選,圓角)
//示例
clip-path: inset(2em 3em 2em 1em round 2em);
### **使用circle**
//語法
circle( [ <shape-radius> ]? [ at <position> ]? )
//說明
circle()可以傳人2個可選參數;
1. 圓的半徑,默認元素寬高中短的那個為直徑,支持百分比
2. 圓心位置,默認為元素中心點
//示例
clip-path: circle(30% at 150px 120px);
### **使用ellipse**
//語法
ellipse( [ <shape-radius>{2} ]? [ at <position> ]? )
//說明
ellipse()可以傳人3個可選參數;
1. 橢圓的X軸半徑,默認是寬度的一半,支持百分比
2. 橢圓的Y軸半徑,默認是高度的一半,支持百分比
3. 橢圓中心位置,默認是元素的中心點
//示例
clip-path: ellipse(45% 30% at 50% 50%);
### **使用polygon**
//語法
polygon( <fill-rule>? , [ <length-percentage> <length-percentage> ]# )
//說明
<fill-rule>可選,表示填充規則用來確定該多邊形的內部。可能的值有nonzero和evenodd,默認值是nonzero
后面的每對參數表示多邊形的頂點坐標(X,Y),也就是連接點
//示例
clip-path: polygon(50% 0,100% 50%,0 100%);
## **使用示例**
### **圓形裁剪**
```
<style>
.outer{
width:100px;
height: 100px;
background:orange;
-webkit-clip-path: circle(50% at 50% 50%)
}
</style>
<div class="outer"></div>
```
### **橢圓裁剪**
```
<style>
.outer{
width:100px;
height: 100px;
background:orange;
-webkit-clip-path: ellipse(25% 40% at 50% 50%);
}
</style>
<div class="outer"></div>
```
### **矩形裁剪**
```
<style>
.outer{
width:100px;
height: 100px;
background:orange;
-webkit-clip-path: inset(5% 20% 15% 10%);
}
</style>
<div class="outer"></div>
```
### **多邊形裁剪**
#### **三角形**
-webkit-clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
#### **菱形**
-webkit-clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
#### **梯形**
-webkit-clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
#### **平行四邊形**
-webkit-clip-path: polygon(25% 0%, 100% 0%, 75% 100%, 0% 100%);
#### **五邊形**
-webkit-clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
#### **六邊形**
-webkit-clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
#### **七邊形**
-webkit-clip-path: polygon(50% 0%, 90% 20%, 100% 60%, 75% 100%, 25% 100%, 0% 60%, 10% 20%);

#### **八邊形**
-webkit-clip-path: polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%);

### **特殊圖形裁剪**
#### **斜角**
-webkit-clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);

#### **槽口**
-webkit-clip-path: polygon(0% 15%, 15% 15%, 15% 0%, 85% 0%, 85% 15%, 100% 15%, 100% 85%, 85% 85%, 85% 100%, 15% 100%, 15% 85%, 0% 85%);

#### **左箭頭**
-webkit-clip-path: polygon(40% 0%, 40% 20%, 100% 20%, 100% 80%, 40% 80%, 40% 100%, 0% 50%);

#### **右箭頭**
-webkit-clip-path: polygon(0% 20%, 60% 20%, 60% 0%, 100% 50%, 60% 100%, 60% 80%, 0% 80%);
#### **星星**
-webkit-clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%);
#### **十字架**
-webkit-clip-path: polygon(10% 25%, 35% 25%, 35% 0%, 65% 0%, 65% 25%, 90% 25%, 90% 50%, 65% 50%, 65% 100%, 35% 100%, 35% 50%, 10% 50%);

#### **叉號**
-webkit-clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);

#### **對話框**
-webkit-clip-path: polygon(0% 0%, 100% 0%, 100% 75%, 75% 75%, 75% 100%, 50% 75%, 0% 75%);

#### **變形**
clip-path屬性支持transition,但前提是相同的裁剪函數,及相同的參數個數
下面是一個切角效果向正方形的變形過程
```
.outer{
width:100px;
height: 100px;
background:orange;
clip-path: polygon(20% 0%, 80% 0%, 100% 20%, 100% 80%, 80% 100%, 20% 100%, 0% 80%, 0% 20%);
transition:.5s clip-path;
}
.outer:hover{
clip-path:polygon(0 0,0 0,100% 0,100% 0,100% 100%,100% 100%,0 100%,0 100%);
}
<div class="outer"></div>
```