按钮上带有尖边的圆角 CSS

Rounded corner with pointy edge on button CSS

我正在考虑在按钮前后使用伪元素来实现这个圆边三角形(旋转)和尖角。查看照片以获得所需的结果。

检查。

.padding { padding: 20px 50px }
.box {
    float: left;
    width: 70px;
    height: 51px;
    background: #aaa;
    color: #FFF;
    position: relative;
    font-size: 12px;
}
.box:before {
    position: absolute;
    top: 4px;
    left: -23px;
    content: "";
    display: block;
    width: 44px;
    height: 43px;
    background: #aaa;
    border-bottom-right-radius: 21px;
    border-top-left-radius: 20px;
    -ms-transform: rotate(45deg) skew(8deg, 8deg);
    -webkit-transform: rotate(45deg) skew(8deg, 8deg);
    transform: rotate(45deg) skew(8deg, 8deg);
}
.box:after {
    position: absolute;
    top: 4px;
    right: -23px;
    content: "";
    display: block;
    width: 44px;
    height: 43px;
    background: #aaa;
    border-bottom-right-radius: 21px;
    border-top-left-radius: 20px;
    -ms-transform: rotate(45deg) skew(8deg, 8deg);
    -webkit-transform: rotate(45deg) skew(8deg, 8deg);
    transform: rotate(45deg) skew(8deg, 8deg);
}
<div class="padding">
<div class="box"></div> 
</div>

您可以尝试这样的操作:

.box {
  width: 300px;
  height: 80px;
  --c: #000;
  position: relative;
  line-height: 80px;
  font-size: 20px;
  text-align: center;
  color: #fff;
  z-index: 0;
}

.box:before,
.box:after {
  content: "";
  position: absolute;
  background:linear-gradient(#000,#000) top/100% 50% no-repeat;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: -1;
}

.box:before {
  border-radius: 60px 60px 0 0;
}

.box:after {
  border-radius: 0 0 60px 60px;
  background-position:bottom;
}
<div class="box">
  Some text
</div>