![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInVGcq5SQnF1NLF0Mwg0TiF3dlNWYyFmMCFUUtEzLcRDM1EzLcVTMwIzLcN3ZvxmYvw1clxWam9CX0xWdhZWZk9CXzVGdpN3LcdzM1ETM3kjM0EjOl1Wa012LchzXxo3MURnMUBjTBFGZrtUNxcDUld3TI9VYj1WOjlnNZlmMN50U2d3bTV2LcVmc1RXdmJXYm9CXuR2YvwVbvNmLzVHbwN2M35SMuR2Yvw1LcpDc0RHaiojIsJye.jpeg)
依據她的以往經驗,這個站點的<code>HTML</code>和<code>CSS</code>是全然在她的能力範圍以内,于是我幫助她完畢了這個效果。顯示<code>nav</code>被裁減的效果是一個不簡單的任務,我看到圖檔的第一反應是建立一個相比對的背景被部分裁剪的圖像。然後把它設定為一個<code>after</code>元素。
問題是,至少要解決響應式問題,而且響應式并不全然可控的。
<code>clip-path</code> 是工作草案的一部分。它是一個通過屏蔽和裁減來隐藏元素的一部分的工具。雖然<code>clip-path</code>沒有被主流的浏覽器支援(包含IE和Firefox),但在<code>webkit</code>浏覽器中,它仍然是一個實作時尚效果的小工具。
注意,在現代浏覽器中須要使用<code>-webkit-</code>字首。
<code>clip-path</code> 簡單的工作原理是提供一系列的<code>X</code>和<code>Y</code>值來建立路徑。
當使用這些值建立一條完整路徑時,就會把圖像依照路徑内部的尺寸進行裁剪。
利用<code>clip-path</code>,我們能夠建立圓形、橢圓和多邊形等不同的形狀,創造力是唯一的限制。
對元素簡單地運用<code>clip-path</code>就能實作上面的效果:
非常像定位屬性,我們須要考慮<code>X</code>值和<code>Y</code>值。
<code>X:0</code>和<code>Y:0</code>表示從元素的左上角開始。并從左上角開始移動。
<code>X:100%</code>指的是元素右邊,<code>Y:100%</code>指的是元素底部。
對于上面建立的路徑,實際是建立了例如以下的點:
這個簡單路徑開始于左下角,水準移動50%,并到達頂部位置,然後又水準移動到100%的位置,垂直向下回究竟部,到達第三個坐标點。三角形就出來了。
在上面的示範樣例中,我們使用<code>polygon</code>來建立一個圖形,并通過多對用逗号(<code>,</code>)分開的<code>X</code>值和<code>Y</code>值定義了一個路徑。然後。我們能夠通過取不同的值來建立不同的圖形。
為了建立圓形。須要給<code>circle</code>傳入三個值:圓心的坐标(X值和Y值)以及半徑。
當定義圓的半徑時。我們能夠用<code>at</code>關鍵字來定義圓心坐标。
非常多時候,你不須要一個簡單的圓,而是一個橢圓。
為了實作橢圓。須要給<code>ellipse</code>提供4個值:橢圓的<code>x</code>軸半徑、<code>y</code>軸半徑、定位橢圓位置的<code>x</code>坐标和<code>y</code>坐标,後面兩個值用<code>at</code>關鍵字和前面兩個值分開。
(在老版本号的chrome中有錯誤)
由于多邊形邊緣銳利,是以它可能不是你想要的東西,你想建立的是圓角矩形,是以我們來看看Inset的值。Inset使用四個值(相應“上 右 下 左”的順序)來設定圓角半徑。
上面的各個值分别相應為:
其簡寫形式:
Circle: circle(radius at x-axis y-axis)
Ellipse: ellipse(x-rad y-rad at x-axis y-axis)
Polygon: polygon(x-axis y-axis, x-axis y-axis, … )
Inset: inset(top right bottom left round top-radius right-radius bottom-radius left-radius)
正如你看到的,原型和圓角圖形被少數幾個值限制了,因而<code>Polygons</code>是建立複雜圖形的最好選擇。
<code>Polygons</code>能定義多組點,同意我們用各種方式去裁圖形。
<a href="http://codepen.io/drewminns/pen/WbXzbb">View the code on codepen</a>
<a href="http://codepen.io/drewminns/pen/zxPWxd">View the code on codepen</a>
如今我們已經了解了各種圖形和怎麼建立它們,那怎麼利用這些圖形建立我們想要的效果呢?
給形狀應用一個<code>hover</code>,并用過渡屬性來建立平滑的效果。
可是須要記住。我們建立的初始預設狀态,必須同全部的<code>hover</code>狀态都使用同樣的坐标系。
<a href="http://codepen.io/drewminns/pen/VYrXvG">View the code on codepen</a>
本文轉自mfrbuaa部落格園部落格,原文連結:http://www.cnblogs.com/mfrbuaa/p/5337949.html,如需轉載請自行聯系原作者