按钮上带有尖边的圆角 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>
我正在考虑在按钮前后使用伪元素来实现这个圆边三角形(旋转)和尖角。查看照片以获得所需的结果。
检查。
.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>