先贴图:
以上这些都是通过mask去实现出来:
<!DOCTYPE html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><body><div class="content"></div><div class="content1"></div><div class="content2"></div><div class="content3"></div><div class="content4"></div><div class="content5"></div><div class="content6"></div><div class="content7"></div></body><style>* {padding: 0;margin: 0;border: none;line-height: 1;}.content {width: 300px;height: 150px;margin: auto;-webkit-mask: radial-gradient(circle at 0, transparent 20px, red 0), radial-gradient(circle at right, transparent 20px, red 0);-webkit-mask-composite: source-in | destination-in ; /*chrome*/mask-composite: intersect; /*Firefox*/background: linear-gradient(45deg, orange, red);}.content1{width: 300px;height: 150px;background: linear-gradient(45deg, orange, red);margin: auto;-webkit-mask: radial-gradient(circle at 0 0, #0000 20px, red 0), radial-gradient(circle at right 0, #0000 20px, red 0), radial-gradient(circle at 0 100%, #0000 20px, red 0), radial-gradient(circle at right 100%, #0000 20px, red 0); /*4个角落各放一个圆*/-webkit-mask-composite: source-in | destination-in ; /*chrome*/mask-composite: intersect; /*Firefox*/}.content2 {width: 300px;height: 150px;margin: auto;background: linear-gradient(45deg, orange, red);-webkit-mask: radial-gradient(circle at 0, transparent 20px, red 0), radial-gradient(circle at right, transparent 20px, red 0);-webkit-mask-size: 51%; /*避免出现缝隙 */-webkit-mask-position: 0, 100%; /*一个居左一个居右 */-webkit-mask-repeat: no-repeat;}.content3{width: 300px;height: 150px;background: linear-gradient(45deg, orange, red);margin: auto;-webkit-mask: radial-gradient(circle at 20px, #0000 20px, red 0); -webkit-mask-position: -20px}.content4{width: 300px;height: 150px;background: linear-gradient(45deg, orange, red);margin: auto;-webkit-mask: radial-gradient(circle at 20px 20px, #0000 20px, red 0); -webkit-mask-position: -20px -20px;-webkit-mask-size: 50%;}.content5{width: 300px;height: 150px;background: linear-gradient(45deg, orange, red);margin: auto;-webkit-mask: radial-gradient(circle at 10px, #0000 10px, red 0); -webkit-mask-position: -10px;-webkit-mask-size: 100% 30px;}.content6{width: 300px;height: 150px;background: linear-gradient(45deg, orange, red);margin: auto;-webkit-mask: radial-gradient( circle at 50%, red 5px, transparent 0) 50% 50% / 100% 20px, radial-gradient(circle at 20px 20px, transparent 20px, red 0) -20px -20px / 50%;-webkit-mask-composite: destination-out;}.content7{width: 300px;height: 150px;background: linear-gradient(45deg, orange, red);margin: auto;-webkit-mask: radial-gradient( circle at 5px, red 5px, #0000 0) -5px 50% / 100% 20px, radial-gradient(circle at 20px 20px, #0000 20px, red 0) -20px -20px / 50%;-webkit-mask-composite: destination-out;}</style></html>
本文思路来源于前端阅文团队