在web設計中,梯形標簽頁是很常見的一種形式,但是梯形又是一種很難實現的樣式,很多開發者會直接用梯形背景圖片來生成效果,但是采用背景圖片的方式產生了額外的http請求,并不是一種非常理想的方式,這里筆者為大家帶來一種直接用css來實現梯形效果的方法。 
 
以一個簡單的div為例:
| <div class="div">這是一個梯形</div> | 
| .div{ position: relative; display: inline-block; padding: .5em 1em .35em; color: white;}.div::before{ content: ''; /*用偽元素來生成一個矩形*/ position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: -1; background: #58a; transform: scaleY(1.3) perspective(.5em) rotateX(5deg); transform-origin: bottom;} | 
如果我們直接對元素結點進行3D變形,那么元素內的內容也會產生變形,這是一種不理想的效果,所以這里利用偽元素,將變形效果作用到偽元素上,就可以實現理想的效果。在這里,變形的時候,我們固定住了底部,它的高度是會發生變化的,所以通過scaleY(1.3)來補足它在高度上的縮水。讀者可以去掉scaleY(1.3)和transform-origin來對比查看效果,這里筆者將兩種結果都展示出來:
 
  
 
這是沒有scaleY和transform-origin產生的結果
這是上述代碼產生的樣式結果
既然一個梯形標簽產生了,那我們就可以進一步生成多個標簽頁,這里筆者為大家帶來一個簡單的示例。
| <nav> <a href="#">Home</a> <a href="#">Projects</a> <a href="#">About</a></nav> |