切角效果是一种常见的视觉风格设计。可是如今在CSS里,依然没法简单的生成切角效果。php
使用CSS渐变[linear-parent][1]
能够造成切角风格css
background: #58a; background: linear-gradient(-45deg, transparent 15px, #58a 0);
若是想要四个角都切,则能够spa
background: linear-gradient(135deg, transparent 15px, #58a 0) top left, linear-gradient(-135deg, transparent 15px, #58a 0) top right, linear-gradient(-45deg, transparent 15px, #58a 0) bottomright, linear-gradient(45deg, transparent 15px, #58a 0) bottom left; background-size: 50% 50%; background-repeat: no-repeat;
SVG方案不熟悉,暂时不讨论。原文位于《CSS》揭秘12:切角效果。设计
使用裁切路径能够在裁切任意多边形,下面的代码能够切除和上文同样的效果。其实就是指定了八个顶点。code
clip-path: polygon( 15px 0, calc(100% - 15px) 0, 100% 15px, 100% calc(100% - 15px), calc(100% - 15px) 100%, 15px 100%, 0 calc(100% - 15px), 0 15px );
使用本方案虽然简短,可是维护缺并不方便。改变切角深度时须要同时改变8个地方。使用css与处理器的mixin会方便不少。ip